From 90f64b685e305384503307f94fe4f81e51071ea3 Mon Sep 17 00:00:00 2001 From: Daniel Valdivia <18384552+dvaldivia@users.noreply.github.com> Date: Thu, 31 Mar 2022 17:06:27 -0700 Subject: [PATCH] Release v0.15.8 (#1786) --- .../base/console-deployment.yaml | 2 +- .../standalone/console-deployment.yaml | 2 +- portal-ui/build/asset-manifest.json | 372 +++++++++--------- portal-ui/build/index.html | 2 +- .../build/static/js/1326.19aa2326.chunk.js | 2 + ...hunk.js.map => 1326.19aa2326.chunk.js.map} | 2 +- .../build/static/js/1326.d157bb06.chunk.js | 2 - .../build/static/js/1434.090dffbc.chunk.js | 2 + .../static/js/1434.090dffbc.chunk.js.map | 1 + ...f273b8.chunk.js => 1581.4eeb1235.chunk.js} | 4 +- ...hunk.js.map => 1581.4eeb1235.chunk.js.map} | 2 +- ...ed48b6.chunk.js => 1687.2710a7fa.chunk.js} | 4 +- ...hunk.js.map => 1687.2710a7fa.chunk.js.map} | 2 +- ...ee609f.chunk.js => 1829.bdec7da8.chunk.js} | 4 +- ...hunk.js.map => 1829.bdec7da8.chunk.js.map} | 2 +- ...648525.chunk.js => 1836.6c654dc4.chunk.js} | 4 +- ...hunk.js.map => 1836.6c654dc4.chunk.js.map} | 2 +- .../build/static/js/191.22ff1445.chunk.js | 2 + .../build/static/js/191.22ff1445.chunk.js.map | 1 + .../build/static/js/191.80e5a168.chunk.js | 2 - .../build/static/js/191.80e5a168.chunk.js.map | 1 - .../build/static/js/1955.229f8589.chunk.js | 2 + .../static/js/1955.229f8589.chunk.js.map | 1 + .../build/static/js/1955.54bd6485.chunk.js | 2 - .../static/js/1955.54bd6485.chunk.js.map | 1 - ...b8bcb6.chunk.js => 2112.d1dc9c18.chunk.js} | 4 +- ...hunk.js.map => 2112.d1dc9c18.chunk.js.map} | 2 +- ...47a792.chunk.js => 2114.fac0126b.chunk.js} | 4 +- ...hunk.js.map => 2114.fac0126b.chunk.js.map} | 2 +- ...62887a.chunk.js => 2249.8bf84c2a.chunk.js} | 4 +- ...hunk.js.map => 2249.8bf84c2a.chunk.js.map} | 2 +- ...79a135.chunk.js => 2338.a23aa141.chunk.js} | 4 +- ...hunk.js.map => 2338.a23aa141.chunk.js.map} | 2 +- .../build/static/js/2434.d3149513.chunk.js | 2 - .../static/js/2434.d3149513.chunk.js.map | 1 - ...b7c3d22.chunk.js => 247.4ea98f6d.chunk.js} | 4 +- ...chunk.js.map => 247.4ea98f6d.chunk.js.map} | 2 +- ...3201d7.chunk.js => 2483.916b80fb.chunk.js} | 4 +- ...hunk.js.map => 2483.916b80fb.chunk.js.map} | 2 +- .../build/static/js/255.c0b2782b.chunk.js | 2 + .../build/static/js/255.c0b2782b.chunk.js.map | 1 + .../build/static/js/2625.86a516d1.chunk.js | 2 - .../static/js/2625.86a516d1.chunk.js.map | 1 - .../build/static/js/2625.db3a430f.chunk.js | 2 + .../static/js/2625.db3a430f.chunk.js.map | 1 + ...53ade1.chunk.js => 2637.24c4f7f2.chunk.js} | 4 +- .../static/js/2637.24c4f7f2.chunk.js.map | 1 + .../static/js/2637.eb53ade1.chunk.js.map | 1 - ...b78190.chunk.js => 2653.99c5025d.chunk.js} | 4 +- ...hunk.js.map => 2653.99c5025d.chunk.js.map} | 2 +- ...5e0aa7.chunk.js => 2661.507d8e55.chunk.js} | 4 +- ...hunk.js.map => 2661.507d8e55.chunk.js.map} | 2 +- .../build/static/js/2684.2357e56a.chunk.js | 2 + .../static/js/2684.2357e56a.chunk.js.map | 1 + .../build/static/js/2684.9b1b9065.chunk.js | 2 - .../static/js/2684.9b1b9065.chunk.js.map | 1 - ...16b11a.chunk.js => 2763.7af4b74e.chunk.js} | 4 +- ...hunk.js.map => 2763.7af4b74e.chunk.js.map} | 2 +- ...39dc73.chunk.js => 2983.fe810bfe.chunk.js} | 4 +- ...hunk.js.map => 2983.fe810bfe.chunk.js.map} | 2 +- .../build/static/js/3096.31031f0d.chunk.js | 2 - .../static/js/3096.31031f0d.chunk.js.map | 1 - .../build/static/js/3096.63d4ac67.chunk.js | 2 + ...hunk.js.map => 3096.63d4ac67.chunk.js.map} | 2 +- ...4ca2352.chunk.js => 312.ece23e44.chunk.js} | 4 +- ...chunk.js.map => 312.ece23e44.chunk.js.map} | 2 +- ...49e498.chunk.js => 3176.eb3dfdff.chunk.js} | 4 +- ...hunk.js.map => 3176.eb3dfdff.chunk.js.map} | 2 +- ...846f8f.chunk.js => 3320.cc8f32b5.chunk.js} | 4 +- ...hunk.js.map => 3320.cc8f32b5.chunk.js.map} | 2 +- ...4d30e6.chunk.js => 3328.c8ee1c0a.chunk.js} | 4 +- ...hunk.js.map => 3328.c8ee1c0a.chunk.js.map} | 2 +- ...1f5dd1.chunk.js => 3543.8ebcd154.chunk.js} | 4 +- ...hunk.js.map => 3543.8ebcd154.chunk.js.map} | 2 +- ...cb1b6a.chunk.js => 3631.8dc2431a.chunk.js} | 4 +- ...hunk.js.map => 3631.8dc2431a.chunk.js.map} | 2 +- ...d48bc8.chunk.js => 3678.783bd42c.chunk.js} | 4 +- ...hunk.js.map => 3678.783bd42c.chunk.js.map} | 2 +- .../build/static/js/380.02c7ec7f.chunk.js | 2 + .../build/static/js/380.02c7ec7f.chunk.js.map | 1 + .../build/static/js/380.1e66f7fb.chunk.js | 2 - .../build/static/js/380.1e66f7fb.chunk.js.map | 1 - ...e5c63f.chunk.js => 3956.4456b432.chunk.js} | 4 +- ...hunk.js.map => 3956.4456b432.chunk.js.map} | 2 +- ...425871a.chunk.js => 402.0d6fb459.chunk.js} | 4 +- ...chunk.js.map => 402.0d6fb459.chunk.js.map} | 2 +- .../build/static/js/4061.4ef26026.chunk.js | 2 + .../static/js/4061.4ef26026.chunk.js.map | 1 + .../build/static/js/4061.72744aa0.chunk.js | 2 - .../static/js/4061.72744aa0.chunk.js.map | 1 - .../build/static/js/4209.67dd1f00.chunk.js | 2 + .../static/js/4209.67dd1f00.chunk.js.map | 1 + ...a02fff.chunk.js => 4335.bce36690.chunk.js} | 4 +- ...hunk.js.map => 4335.bce36690.chunk.js.map} | 2 +- .../build/static/js/4394.bcfbdcbb.chunk.js | 2 + .../static/js/4394.bcfbdcbb.chunk.js.map | 1 + .../build/static/js/4394.dfbbe2b6.chunk.js | 2 - .../static/js/4394.dfbbe2b6.chunk.js.map | 1 - ...34e172.chunk.js => 4414.a9cb8b72.chunk.js} | 4 +- ...hunk.js.map => 4414.a9cb8b72.chunk.js.map} | 2 +- .../build/static/js/4537.51d5373f.chunk.js | 2 + .../static/js/4537.51d5373f.chunk.js.map | 1 + ...ac20914.chunk.js => 455.f7e76ee0.chunk.js} | 4 +- ...chunk.js.map => 455.f7e76ee0.chunk.js.map} | 2 +- ...29e211.chunk.js => 4619.95265a73.chunk.js} | 4 +- ...hunk.js.map => 4619.95265a73.chunk.js.map} | 2 +- ...9dfc48.chunk.js => 4653.7e30a491.chunk.js} | 4 +- ...hunk.js.map => 4653.7e30a491.chunk.js.map} | 2 +- ...3d4a140.chunk.js => 471.45f246bd.chunk.js} | 4 +- ...chunk.js.map => 471.45f246bd.chunk.js.map} | 2 +- .../build/static/js/4874.96b74c82.chunk.js | 2 - .../static/js/4874.96b74c82.chunk.js.map | 1 - .../build/static/js/4874.e9458ae5.chunk.js | 2 + .../static/js/4874.e9458ae5.chunk.js.map | 1 + ...95aa79.chunk.js => 5088.92dee249.chunk.js} | 4 +- ...hunk.js.map => 5088.92dee249.chunk.js.map} | 2 +- ...c7c01a.chunk.js => 5140.9827e93f.chunk.js} | 4 +- ...hunk.js.map => 5140.9827e93f.chunk.js.map} | 2 +- .../build/static/js/5165.311fbd50.chunk.js | 2 - .../static/js/5165.311fbd50.chunk.js.map | 1 - .../build/static/js/5165.d8aefc2f.chunk.js | 2 + .../static/js/5165.d8aefc2f.chunk.js.map | 1 + ...17939d.chunk.js => 5588.e74088bb.chunk.js} | 4 +- ...hunk.js.map => 5588.e74088bb.chunk.js.map} | 2 +- .../build/static/js/5662.19eb0698.chunk.js | 2 + .../static/js/5662.19eb0698.chunk.js.map | 1 + .../build/static/js/5662.d8af2856.chunk.js | 2 - .../static/js/5662.d8af2856.chunk.js.map | 1 - ...ebc955.chunk.js => 5926.780bfa30.chunk.js} | 4 +- ...hunk.js.map => 5926.780bfa30.chunk.js.map} | 2 +- ...f546c3.chunk.js => 6041.b277898c.chunk.js} | 4 +- ...hunk.js.map => 6041.b277898c.chunk.js.map} | 2 +- ...758e88.chunk.js => 6137.1990ccdd.chunk.js} | 4 +- ...hunk.js.map => 6137.1990ccdd.chunk.js.map} | 2 +- .../build/static/js/6144.56aa9aa1.chunk.js | 2 - .../static/js/6144.56aa9aa1.chunk.js.map | 1 - .../build/static/js/6144.aef3ec0e.chunk.js | 2 + .../static/js/6144.aef3ec0e.chunk.js.map | 1 + .../build/static/js/6233.7866b56a.chunk.js | 2 - .../static/js/6233.7866b56a.chunk.js.map | 1 - .../build/static/js/6233.d36db740.chunk.js | 2 + .../static/js/6233.d36db740.chunk.js.map | 1 + .../build/static/js/6496.7d9a792c.chunk.js | 2 + .../static/js/6496.7d9a792c.chunk.js.map | 1 + .../build/static/js/6683.0395331a.chunk.js | 2 - .../static/js/6683.0395331a.chunk.js.map | 1 - .../build/static/js/6683.c02ad0d0.chunk.js | 2 + .../static/js/6683.c02ad0d0.chunk.js.map | 1 + ...6879b4.chunk.js => 6763.e45b988a.chunk.js} | 4 +- ...hunk.js.map => 6763.e45b988a.chunk.js.map} | 2 +- .../build/static/js/6895.461b05f0.chunk.js | 2 + .../static/js/6895.461b05f0.chunk.js.map | 1 + .../build/static/js/6895.4a8032ca.chunk.js | 2 - .../static/js/6895.4a8032ca.chunk.js.map | 1 - .../build/static/js/701.1ac9f080.chunk.js | 2 + ...chunk.js.map => 701.1ac9f080.chunk.js.map} | 2 +- .../build/static/js/701.cf1bff16.chunk.js | 2 - ...fd97fc.chunk.js => 7015.bf19d426.chunk.js} | 4 +- ...hunk.js.map => 7015.bf19d426.chunk.js.map} | 2 +- ...14424c.chunk.js => 7045.1bb98475.chunk.js} | 4 +- ...hunk.js.map => 7045.1bb98475.chunk.js.map} | 2 +- ...196799c.chunk.js => 711.ca4cd5de.chunk.js} | 4 +- ...chunk.js.map => 711.ca4cd5de.chunk.js.map} | 2 +- .../build/static/js/7315.f1bb4245.chunk.js | 2 + .../static/js/7315.f1bb4245.chunk.js.map | 1 + ...fdab74.chunk.js => 7331.dcfe1cee.chunk.js} | 4 +- ...hunk.js.map => 7331.dcfe1cee.chunk.js.map} | 2 +- ...d784e8.chunk.js => 7413.76bdfa63.chunk.js} | 4 +- ...hunk.js.map => 7413.76bdfa63.chunk.js.map} | 2 +- ...07d407.chunk.js => 7524.a91225d5.chunk.js} | 4 +- ...hunk.js.map => 7524.a91225d5.chunk.js.map} | 2 +- .../build/static/js/7585.3e5e7b1c.chunk.js | 2 - .../static/js/7585.3e5e7b1c.chunk.js.map | 1 - .../build/static/js/7585.a8383baa.chunk.js | 2 + .../static/js/7585.a8383baa.chunk.js.map | 1 + ...d8e088.chunk.js => 7659.ff320d87.chunk.js} | 4 +- ...hunk.js.map => 7659.ff320d87.chunk.js.map} | 2 +- ...6360bf6.chunk.js => 770.3758c1a2.chunk.js} | 4 +- ...chunk.js.map => 770.3758c1a2.chunk.js.map} | 2 +- ...77fd71.chunk.js => 7798.56f30c3b.chunk.js} | 4 +- ...hunk.js.map => 7798.56f30c3b.chunk.js.map} | 2 +- .../build/static/js/8138.4370a81f.chunk.js | 2 + .../static/js/8138.4370a81f.chunk.js.map | 1 + .../build/static/js/8138.d72851b8.chunk.js | 2 - .../static/js/8138.d72851b8.chunk.js.map | 1 - .../build/static/js/8183.967577a6.chunk.js | 2 - .../static/js/8183.967577a6.chunk.js.map | 1 - .../build/static/js/8183.9baf7269.chunk.js | 2 + .../static/js/8183.9baf7269.chunk.js.map | 1 + ...69b278.chunk.js => 8350.7cf9e629.chunk.js} | 4 +- ...hunk.js.map => 8350.7cf9e629.chunk.js.map} | 2 +- ...4f375b.chunk.js => 8391.2e0c02db.chunk.js} | 4 +- ...hunk.js.map => 8391.2e0c02db.chunk.js.map} | 2 +- ...57f9ba.chunk.js => 8455.f9a2bdd5.chunk.js} | 4 +- ...hunk.js.map => 8455.f9a2bdd5.chunk.js.map} | 2 +- ...a6aed9.chunk.js => 8833.dfb81217.chunk.js} | 4 +- ...hunk.js.map => 8833.dfb81217.chunk.js.map} | 2 +- ...805d401.chunk.js => 889.1aff762e.chunk.js} | 4 +- ...chunk.js.map => 889.1aff762e.chunk.js.map} | 2 +- ...43f413.chunk.js => 8896.6bce01f2.chunk.js} | 4 +- ...hunk.js.map => 8896.6bce01f2.chunk.js.map} | 2 +- .../build/static/js/8904.9f5a3be3.chunk.js | 2 - .../static/js/8904.9f5a3be3.chunk.js.map | 1 - ...ac79e0.chunk.js => 8990.3d9dba33.chunk.js} | 4 +- ...hunk.js.map => 8990.3d9dba33.chunk.js.map} | 2 +- ...88853e.chunk.js => 9002.6a353edb.chunk.js} | 4 +- ...hunk.js.map => 9002.6a353edb.chunk.js.map} | 2 +- ...cdc267.chunk.js => 9033.7676b10b.chunk.js} | 4 +- ...hunk.js.map => 9033.7676b10b.chunk.js.map} | 2 +- ...fd772c.chunk.js => 9076.7e56fcbe.chunk.js} | 4 +- ...hunk.js.map => 9076.7e56fcbe.chunk.js.map} | 2 +- .../build/static/js/9086.b84a9135.chunk.js | 2 - .../static/js/9086.b84a9135.chunk.js.map | 1 - ...a46e3e.chunk.js => 9088.8760863e.chunk.js} | 4 +- ...hunk.js.map => 9088.8760863e.chunk.js.map} | 2 +- .../build/static/js/9145.018a2c60.chunk.js | 2 + .../static/js/9145.018a2c60.chunk.js.map | 1 + .../build/static/js/9145.6a82a8e7.chunk.js | 2 - .../static/js/9145.6a82a8e7.chunk.js.map | 1 - ...62ef6f.chunk.js => 9221.77cb4472.chunk.js} | 4 +- ...hunk.js.map => 9221.77cb4472.chunk.js.map} | 2 +- .../build/static/js/9299.35956104.chunk.js | 2 - .../static/js/9299.35956104.chunk.js.map | 1 - .../build/static/js/9299.38fdae7f.chunk.js | 2 + .../static/js/9299.38fdae7f.chunk.js.map | 1 + ...7702b7.chunk.js => 9449.bed41472.chunk.js} | 4 +- ...hunk.js.map => 9449.bed41472.chunk.js.map} | 2 +- .../build/static/js/9467.24a0eb41.chunk.js | 2 - .../static/js/9467.24a0eb41.chunk.js.map | 1 - .../build/static/js/9467.f6cb8eef.chunk.js | 2 + .../static/js/9467.f6cb8eef.chunk.js.map | 1 + .../build/static/js/9537.177d91d7.chunk.js | 2 - .../static/js/9537.177d91d7.chunk.js.map | 1 - ...7fdfef.chunk.js => 9605.f8777c0c.chunk.js} | 4 +- ...hunk.js.map => 9605.f8777c0c.chunk.js.map} | 2 +- ...e395c5.chunk.js => 9611.cd281dee.chunk.js} | 4 +- ...hunk.js.map => 9611.cd281dee.chunk.js.map} | 2 +- .../build/static/js/9635.c5a87859.chunk.js | 2 - .../static/js/9635.c5a87859.chunk.js.map | 1 - .../build/static/js/9635.fd7496cc.chunk.js | 2 + .../static/js/9635.fd7496cc.chunk.js.map | 1 + .../build/static/js/9729.2ed96524.chunk.js | 2 - ...a3dc08.chunk.js => 9968.62a297d8.chunk.js} | 4 +- ...hunk.js.map => 9968.62a297d8.chunk.js.map} | 2 +- portal-ui/build/static/js/main.a0780f45.js | 3 - .../build/static/js/main.a0780f45.js.map | 1 - portal-ui/build/static/js/main.c1bfdfdb.js | 3 + ...CENSE.txt => main.c1bfdfdb.js.LICENSE.txt} | 0 .../build/static/js/main.c1bfdfdb.js.map | 1 + .../src/common/SecureComponent/permissions.ts | 2 +- .../Objects/ListObjects/ListObjects.tsx | 4 +- .../Console/Tenants/ListTenants/types.ts | 6 +- .../TenantDetails/Pools/PoolConfiguration.tsx | 3 +- .../src/screens/Console/Tenants/actions.ts | 3 +- .../src/screens/Console/Tenants/reducer.ts | 4 +- 255 files changed, 483 insertions(+), 474 deletions(-) create mode 100644 portal-ui/build/static/js/1326.19aa2326.chunk.js rename portal-ui/build/static/js/{1326.d157bb06.chunk.js.map => 1326.19aa2326.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/1326.d157bb06.chunk.js create mode 100644 portal-ui/build/static/js/1434.090dffbc.chunk.js create mode 100644 portal-ui/build/static/js/1434.090dffbc.chunk.js.map rename portal-ui/build/static/js/{1581.2ff273b8.chunk.js => 1581.4eeb1235.chunk.js} (97%) rename portal-ui/build/static/js/{1581.2ff273b8.chunk.js.map => 1581.4eeb1235.chunk.js.map} (99%) rename portal-ui/build/static/js/{1687.63ed48b6.chunk.js => 1687.2710a7fa.chunk.js} (98%) rename portal-ui/build/static/js/{1687.63ed48b6.chunk.js.map => 1687.2710a7fa.chunk.js.map} (99%) rename portal-ui/build/static/js/{1829.99ee609f.chunk.js => 1829.bdec7da8.chunk.js} (97%) rename portal-ui/build/static/js/{1829.99ee609f.chunk.js.map => 1829.bdec7da8.chunk.js.map} (99%) rename portal-ui/build/static/js/{1836.ea648525.chunk.js => 1836.6c654dc4.chunk.js} (99%) rename portal-ui/build/static/js/{1836.ea648525.chunk.js.map => 1836.6c654dc4.chunk.js.map} (99%) create mode 100644 portal-ui/build/static/js/191.22ff1445.chunk.js create mode 100644 portal-ui/build/static/js/191.22ff1445.chunk.js.map delete mode 100644 portal-ui/build/static/js/191.80e5a168.chunk.js delete mode 100644 portal-ui/build/static/js/191.80e5a168.chunk.js.map create mode 100644 portal-ui/build/static/js/1955.229f8589.chunk.js create mode 100644 portal-ui/build/static/js/1955.229f8589.chunk.js.map delete mode 100644 portal-ui/build/static/js/1955.54bd6485.chunk.js delete mode 100644 portal-ui/build/static/js/1955.54bd6485.chunk.js.map rename portal-ui/build/static/js/{2112.afb8bcb6.chunk.js => 2112.d1dc9c18.chunk.js} (96%) rename portal-ui/build/static/js/{2112.afb8bcb6.chunk.js.map => 2112.d1dc9c18.chunk.js.map} (99%) rename portal-ui/build/static/js/{2114.ac47a792.chunk.js => 2114.fac0126b.chunk.js} (99%) rename portal-ui/build/static/js/{2114.ac47a792.chunk.js.map => 2114.fac0126b.chunk.js.map} (99%) rename portal-ui/build/static/js/{2249.4862887a.chunk.js => 2249.8bf84c2a.chunk.js} (98%) rename portal-ui/build/static/js/{2249.4862887a.chunk.js.map => 2249.8bf84c2a.chunk.js.map} (99%) rename portal-ui/build/static/js/{2338.3c79a135.chunk.js => 2338.a23aa141.chunk.js} (95%) rename portal-ui/build/static/js/{2338.3c79a135.chunk.js.map => 2338.a23aa141.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/2434.d3149513.chunk.js delete mode 100644 portal-ui/build/static/js/2434.d3149513.chunk.js.map rename portal-ui/build/static/js/{247.3b7c3d22.chunk.js => 247.4ea98f6d.chunk.js} (97%) rename portal-ui/build/static/js/{247.3b7c3d22.chunk.js.map => 247.4ea98f6d.chunk.js.map} (99%) rename portal-ui/build/static/js/{2483.363201d7.chunk.js => 2483.916b80fb.chunk.js} (99%) rename portal-ui/build/static/js/{2483.363201d7.chunk.js.map => 2483.916b80fb.chunk.js.map} (99%) create mode 100644 portal-ui/build/static/js/255.c0b2782b.chunk.js create mode 100644 portal-ui/build/static/js/255.c0b2782b.chunk.js.map delete mode 100644 portal-ui/build/static/js/2625.86a516d1.chunk.js delete mode 100644 portal-ui/build/static/js/2625.86a516d1.chunk.js.map create mode 100644 portal-ui/build/static/js/2625.db3a430f.chunk.js create mode 100644 portal-ui/build/static/js/2625.db3a430f.chunk.js.map rename portal-ui/build/static/js/{2637.eb53ade1.chunk.js => 2637.24c4f7f2.chunk.js} (87%) create mode 100644 portal-ui/build/static/js/2637.24c4f7f2.chunk.js.map delete mode 100644 portal-ui/build/static/js/2637.eb53ade1.chunk.js.map rename portal-ui/build/static/js/{2653.98b78190.chunk.js => 2653.99c5025d.chunk.js} (96%) rename portal-ui/build/static/js/{2653.98b78190.chunk.js.map => 2653.99c5025d.chunk.js.map} (99%) rename portal-ui/build/static/js/{2661.3c5e0aa7.chunk.js => 2661.507d8e55.chunk.js} (98%) rename portal-ui/build/static/js/{2661.3c5e0aa7.chunk.js.map => 2661.507d8e55.chunk.js.map} (99%) create mode 100644 portal-ui/build/static/js/2684.2357e56a.chunk.js create mode 100644 portal-ui/build/static/js/2684.2357e56a.chunk.js.map delete mode 100644 portal-ui/build/static/js/2684.9b1b9065.chunk.js delete mode 100644 portal-ui/build/static/js/2684.9b1b9065.chunk.js.map rename portal-ui/build/static/js/{2763.da16b11a.chunk.js => 2763.7af4b74e.chunk.js} (96%) rename portal-ui/build/static/js/{2763.da16b11a.chunk.js.map => 2763.7af4b74e.chunk.js.map} (99%) rename portal-ui/build/static/js/{2983.3a39dc73.chunk.js => 2983.fe810bfe.chunk.js} (99%) rename portal-ui/build/static/js/{2983.3a39dc73.chunk.js.map => 2983.fe810bfe.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/3096.31031f0d.chunk.js delete mode 100644 portal-ui/build/static/js/3096.31031f0d.chunk.js.map create mode 100644 portal-ui/build/static/js/3096.63d4ac67.chunk.js rename portal-ui/build/static/js/{9729.2ed96524.chunk.js.map => 3096.63d4ac67.chunk.js.map} (99%) rename portal-ui/build/static/js/{312.f4ca2352.chunk.js => 312.ece23e44.chunk.js} (96%) rename portal-ui/build/static/js/{312.f4ca2352.chunk.js.map => 312.ece23e44.chunk.js.map} (99%) rename portal-ui/build/static/js/{3176.2549e498.chunk.js => 3176.eb3dfdff.chunk.js} (95%) rename portal-ui/build/static/js/{3176.2549e498.chunk.js.map => 3176.eb3dfdff.chunk.js.map} (99%) rename portal-ui/build/static/js/{3320.5e846f8f.chunk.js => 3320.cc8f32b5.chunk.js} (98%) rename portal-ui/build/static/js/{3320.5e846f8f.chunk.js.map => 3320.cc8f32b5.chunk.js.map} (99%) rename portal-ui/build/static/js/{3328.8f4d30e6.chunk.js => 3328.c8ee1c0a.chunk.js} (99%) rename portal-ui/build/static/js/{3328.8f4d30e6.chunk.js.map => 3328.c8ee1c0a.chunk.js.map} (99%) rename portal-ui/build/static/js/{3543.7f1f5dd1.chunk.js => 3543.8ebcd154.chunk.js} (98%) rename portal-ui/build/static/js/{3543.7f1f5dd1.chunk.js.map => 3543.8ebcd154.chunk.js.map} (99%) rename portal-ui/build/static/js/{3631.23cb1b6a.chunk.js => 3631.8dc2431a.chunk.js} (97%) rename portal-ui/build/static/js/{3631.23cb1b6a.chunk.js.map => 3631.8dc2431a.chunk.js.map} (99%) rename portal-ui/build/static/js/{3678.5bd48bc8.chunk.js => 3678.783bd42c.chunk.js} (94%) rename portal-ui/build/static/js/{3678.5bd48bc8.chunk.js.map => 3678.783bd42c.chunk.js.map} (99%) create mode 100644 portal-ui/build/static/js/380.02c7ec7f.chunk.js create mode 100644 portal-ui/build/static/js/380.02c7ec7f.chunk.js.map delete mode 100644 portal-ui/build/static/js/380.1e66f7fb.chunk.js delete mode 100644 portal-ui/build/static/js/380.1e66f7fb.chunk.js.map rename portal-ui/build/static/js/{3956.cee5c63f.chunk.js => 3956.4456b432.chunk.js} (89%) rename portal-ui/build/static/js/{3956.cee5c63f.chunk.js.map => 3956.4456b432.chunk.js.map} (98%) rename portal-ui/build/static/js/{402.5425871a.chunk.js => 402.0d6fb459.chunk.js} (96%) rename portal-ui/build/static/js/{402.5425871a.chunk.js.map => 402.0d6fb459.chunk.js.map} (99%) create mode 100644 portal-ui/build/static/js/4061.4ef26026.chunk.js create mode 100644 portal-ui/build/static/js/4061.4ef26026.chunk.js.map delete mode 100644 portal-ui/build/static/js/4061.72744aa0.chunk.js delete mode 100644 portal-ui/build/static/js/4061.72744aa0.chunk.js.map create mode 100644 portal-ui/build/static/js/4209.67dd1f00.chunk.js create mode 100644 portal-ui/build/static/js/4209.67dd1f00.chunk.js.map rename portal-ui/build/static/js/{4335.daa02fff.chunk.js => 4335.bce36690.chunk.js} (98%) rename portal-ui/build/static/js/{4335.daa02fff.chunk.js.map => 4335.bce36690.chunk.js.map} (99%) create mode 100644 portal-ui/build/static/js/4394.bcfbdcbb.chunk.js create mode 100644 portal-ui/build/static/js/4394.bcfbdcbb.chunk.js.map delete mode 100644 portal-ui/build/static/js/4394.dfbbe2b6.chunk.js delete mode 100644 portal-ui/build/static/js/4394.dfbbe2b6.chunk.js.map rename portal-ui/build/static/js/{4414.5634e172.chunk.js => 4414.a9cb8b72.chunk.js} (98%) rename portal-ui/build/static/js/{4414.5634e172.chunk.js.map => 4414.a9cb8b72.chunk.js.map} (99%) create mode 100644 portal-ui/build/static/js/4537.51d5373f.chunk.js create mode 100644 portal-ui/build/static/js/4537.51d5373f.chunk.js.map rename portal-ui/build/static/js/{455.0ac20914.chunk.js => 455.f7e76ee0.chunk.js} (96%) rename portal-ui/build/static/js/{455.0ac20914.chunk.js.map => 455.f7e76ee0.chunk.js.map} (99%) rename portal-ui/build/static/js/{4619.ed29e211.chunk.js => 4619.95265a73.chunk.js} (97%) rename portal-ui/build/static/js/{4619.ed29e211.chunk.js.map => 4619.95265a73.chunk.js.map} (99%) rename portal-ui/build/static/js/{4653.c79dfc48.chunk.js => 4653.7e30a491.chunk.js} (98%) rename portal-ui/build/static/js/{4653.c79dfc48.chunk.js.map => 4653.7e30a491.chunk.js.map} (99%) rename portal-ui/build/static/js/{471.13d4a140.chunk.js => 471.45f246bd.chunk.js} (99%) rename portal-ui/build/static/js/{471.13d4a140.chunk.js.map => 471.45f246bd.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/4874.96b74c82.chunk.js delete mode 100644 portal-ui/build/static/js/4874.96b74c82.chunk.js.map create mode 100644 portal-ui/build/static/js/4874.e9458ae5.chunk.js create mode 100644 portal-ui/build/static/js/4874.e9458ae5.chunk.js.map rename portal-ui/build/static/js/{5088.0395aa79.chunk.js => 5088.92dee249.chunk.js} (98%) rename portal-ui/build/static/js/{5088.0395aa79.chunk.js.map => 5088.92dee249.chunk.js.map} (99%) rename portal-ui/build/static/js/{5140.92c7c01a.chunk.js => 5140.9827e93f.chunk.js} (97%) rename portal-ui/build/static/js/{5140.92c7c01a.chunk.js.map => 5140.9827e93f.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/5165.311fbd50.chunk.js delete mode 100644 portal-ui/build/static/js/5165.311fbd50.chunk.js.map create mode 100644 portal-ui/build/static/js/5165.d8aefc2f.chunk.js create mode 100644 portal-ui/build/static/js/5165.d8aefc2f.chunk.js.map rename portal-ui/build/static/js/{5588.0717939d.chunk.js => 5588.e74088bb.chunk.js} (98%) rename portal-ui/build/static/js/{5588.0717939d.chunk.js.map => 5588.e74088bb.chunk.js.map} (99%) create mode 100644 portal-ui/build/static/js/5662.19eb0698.chunk.js create mode 100644 portal-ui/build/static/js/5662.19eb0698.chunk.js.map delete mode 100644 portal-ui/build/static/js/5662.d8af2856.chunk.js delete mode 100644 portal-ui/build/static/js/5662.d8af2856.chunk.js.map rename portal-ui/build/static/js/{5926.6eebc955.chunk.js => 5926.780bfa30.chunk.js} (97%) rename portal-ui/build/static/js/{5926.6eebc955.chunk.js.map => 5926.780bfa30.chunk.js.map} (99%) rename portal-ui/build/static/js/{6041.0bf546c3.chunk.js => 6041.b277898c.chunk.js} (99%) rename portal-ui/build/static/js/{6041.0bf546c3.chunk.js.map => 6041.b277898c.chunk.js.map} (99%) rename portal-ui/build/static/js/{6137.8b758e88.chunk.js => 6137.1990ccdd.chunk.js} (98%) rename portal-ui/build/static/js/{6137.8b758e88.chunk.js.map => 6137.1990ccdd.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/6144.56aa9aa1.chunk.js delete mode 100644 portal-ui/build/static/js/6144.56aa9aa1.chunk.js.map create mode 100644 portal-ui/build/static/js/6144.aef3ec0e.chunk.js create mode 100644 portal-ui/build/static/js/6144.aef3ec0e.chunk.js.map delete mode 100644 portal-ui/build/static/js/6233.7866b56a.chunk.js delete mode 100644 portal-ui/build/static/js/6233.7866b56a.chunk.js.map create mode 100644 portal-ui/build/static/js/6233.d36db740.chunk.js create mode 100644 portal-ui/build/static/js/6233.d36db740.chunk.js.map create mode 100644 portal-ui/build/static/js/6496.7d9a792c.chunk.js create mode 100644 portal-ui/build/static/js/6496.7d9a792c.chunk.js.map delete mode 100644 portal-ui/build/static/js/6683.0395331a.chunk.js delete mode 100644 portal-ui/build/static/js/6683.0395331a.chunk.js.map create mode 100644 portal-ui/build/static/js/6683.c02ad0d0.chunk.js create mode 100644 portal-ui/build/static/js/6683.c02ad0d0.chunk.js.map rename portal-ui/build/static/js/{6763.d86879b4.chunk.js => 6763.e45b988a.chunk.js} (99%) rename portal-ui/build/static/js/{6763.d86879b4.chunk.js.map => 6763.e45b988a.chunk.js.map} (99%) create mode 100644 portal-ui/build/static/js/6895.461b05f0.chunk.js create mode 100644 portal-ui/build/static/js/6895.461b05f0.chunk.js.map delete mode 100644 portal-ui/build/static/js/6895.4a8032ca.chunk.js delete mode 100644 portal-ui/build/static/js/6895.4a8032ca.chunk.js.map create mode 100644 portal-ui/build/static/js/701.1ac9f080.chunk.js rename portal-ui/build/static/js/{701.cf1bff16.chunk.js.map => 701.1ac9f080.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/701.cf1bff16.chunk.js rename portal-ui/build/static/js/{7015.86fd97fc.chunk.js => 7015.bf19d426.chunk.js} (97%) rename portal-ui/build/static/js/{7015.86fd97fc.chunk.js.map => 7015.bf19d426.chunk.js.map} (99%) rename portal-ui/build/static/js/{7045.9d14424c.chunk.js => 7045.1bb98475.chunk.js} (98%) rename portal-ui/build/static/js/{7045.9d14424c.chunk.js.map => 7045.1bb98475.chunk.js.map} (99%) rename portal-ui/build/static/js/{711.4196799c.chunk.js => 711.ca4cd5de.chunk.js} (91%) rename portal-ui/build/static/js/{711.4196799c.chunk.js.map => 711.ca4cd5de.chunk.js.map} (98%) create mode 100644 portal-ui/build/static/js/7315.f1bb4245.chunk.js create mode 100644 portal-ui/build/static/js/7315.f1bb4245.chunk.js.map rename portal-ui/build/static/js/{7331.a4fdab74.chunk.js => 7331.dcfe1cee.chunk.js} (96%) rename portal-ui/build/static/js/{7331.a4fdab74.chunk.js.map => 7331.dcfe1cee.chunk.js.map} (99%) rename portal-ui/build/static/js/{7413.e1d784e8.chunk.js => 7413.76bdfa63.chunk.js} (98%) rename portal-ui/build/static/js/{7413.e1d784e8.chunk.js.map => 7413.76bdfa63.chunk.js.map} (99%) rename portal-ui/build/static/js/{7524.cf07d407.chunk.js => 7524.a91225d5.chunk.js} (96%) rename portal-ui/build/static/js/{7524.cf07d407.chunk.js.map => 7524.a91225d5.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/7585.3e5e7b1c.chunk.js delete mode 100644 portal-ui/build/static/js/7585.3e5e7b1c.chunk.js.map create mode 100644 portal-ui/build/static/js/7585.a8383baa.chunk.js create mode 100644 portal-ui/build/static/js/7585.a8383baa.chunk.js.map rename portal-ui/build/static/js/{7659.cdd8e088.chunk.js => 7659.ff320d87.chunk.js} (99%) rename portal-ui/build/static/js/{7659.cdd8e088.chunk.js.map => 7659.ff320d87.chunk.js.map} (99%) rename portal-ui/build/static/js/{770.f6360bf6.chunk.js => 770.3758c1a2.chunk.js} (99%) rename portal-ui/build/static/js/{770.f6360bf6.chunk.js.map => 770.3758c1a2.chunk.js.map} (99%) rename portal-ui/build/static/js/{7798.e077fd71.chunk.js => 7798.56f30c3b.chunk.js} (99%) rename portal-ui/build/static/js/{7798.e077fd71.chunk.js.map => 7798.56f30c3b.chunk.js.map} (99%) create mode 100644 portal-ui/build/static/js/8138.4370a81f.chunk.js create mode 100644 portal-ui/build/static/js/8138.4370a81f.chunk.js.map delete mode 100644 portal-ui/build/static/js/8138.d72851b8.chunk.js delete mode 100644 portal-ui/build/static/js/8138.d72851b8.chunk.js.map delete mode 100644 portal-ui/build/static/js/8183.967577a6.chunk.js delete mode 100644 portal-ui/build/static/js/8183.967577a6.chunk.js.map create mode 100644 portal-ui/build/static/js/8183.9baf7269.chunk.js create mode 100644 portal-ui/build/static/js/8183.9baf7269.chunk.js.map rename portal-ui/build/static/js/{8350.c469b278.chunk.js => 8350.7cf9e629.chunk.js} (97%) rename portal-ui/build/static/js/{8350.c469b278.chunk.js.map => 8350.7cf9e629.chunk.js.map} (99%) rename portal-ui/build/static/js/{8391.484f375b.chunk.js => 8391.2e0c02db.chunk.js} (97%) rename portal-ui/build/static/js/{8391.484f375b.chunk.js.map => 8391.2e0c02db.chunk.js.map} (99%) rename portal-ui/build/static/js/{8455.b557f9ba.chunk.js => 8455.f9a2bdd5.chunk.js} (97%) rename portal-ui/build/static/js/{8455.b557f9ba.chunk.js.map => 8455.f9a2bdd5.chunk.js.map} (99%) rename portal-ui/build/static/js/{8833.0aa6aed9.chunk.js => 8833.dfb81217.chunk.js} (98%) rename portal-ui/build/static/js/{8833.0aa6aed9.chunk.js.map => 8833.dfb81217.chunk.js.map} (99%) rename portal-ui/build/static/js/{889.4805d401.chunk.js => 889.1aff762e.chunk.js} (98%) rename portal-ui/build/static/js/{889.4805d401.chunk.js.map => 889.1aff762e.chunk.js.map} (99%) rename portal-ui/build/static/js/{8896.7e43f413.chunk.js => 8896.6bce01f2.chunk.js} (96%) rename portal-ui/build/static/js/{8896.7e43f413.chunk.js.map => 8896.6bce01f2.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/8904.9f5a3be3.chunk.js delete mode 100644 portal-ui/build/static/js/8904.9f5a3be3.chunk.js.map rename portal-ui/build/static/js/{8990.56ac79e0.chunk.js => 8990.3d9dba33.chunk.js} (96%) rename portal-ui/build/static/js/{8990.56ac79e0.chunk.js.map => 8990.3d9dba33.chunk.js.map} (99%) rename portal-ui/build/static/js/{9002.c288853e.chunk.js => 9002.6a353edb.chunk.js} (99%) rename portal-ui/build/static/js/{9002.c288853e.chunk.js.map => 9002.6a353edb.chunk.js.map} (99%) rename portal-ui/build/static/js/{9033.c2cdc267.chunk.js => 9033.7676b10b.chunk.js} (98%) rename portal-ui/build/static/js/{9033.c2cdc267.chunk.js.map => 9033.7676b10b.chunk.js.map} (99%) rename portal-ui/build/static/js/{9076.6bfd772c.chunk.js => 9076.7e56fcbe.chunk.js} (88%) rename portal-ui/build/static/js/{9076.6bfd772c.chunk.js.map => 9076.7e56fcbe.chunk.js.map} (98%) delete mode 100644 portal-ui/build/static/js/9086.b84a9135.chunk.js delete mode 100644 portal-ui/build/static/js/9086.b84a9135.chunk.js.map rename portal-ui/build/static/js/{9088.38a46e3e.chunk.js => 9088.8760863e.chunk.js} (97%) rename portal-ui/build/static/js/{9088.38a46e3e.chunk.js.map => 9088.8760863e.chunk.js.map} (99%) create mode 100644 portal-ui/build/static/js/9145.018a2c60.chunk.js create mode 100644 portal-ui/build/static/js/9145.018a2c60.chunk.js.map delete mode 100644 portal-ui/build/static/js/9145.6a82a8e7.chunk.js delete mode 100644 portal-ui/build/static/js/9145.6a82a8e7.chunk.js.map rename portal-ui/build/static/js/{9221.fd62ef6f.chunk.js => 9221.77cb4472.chunk.js} (94%) rename portal-ui/build/static/js/{9221.fd62ef6f.chunk.js.map => 9221.77cb4472.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/9299.35956104.chunk.js delete mode 100644 portal-ui/build/static/js/9299.35956104.chunk.js.map create mode 100644 portal-ui/build/static/js/9299.38fdae7f.chunk.js create mode 100644 portal-ui/build/static/js/9299.38fdae7f.chunk.js.map rename portal-ui/build/static/js/{9449.877702b7.chunk.js => 9449.bed41472.chunk.js} (99%) rename portal-ui/build/static/js/{9449.877702b7.chunk.js.map => 9449.bed41472.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/9467.24a0eb41.chunk.js delete mode 100644 portal-ui/build/static/js/9467.24a0eb41.chunk.js.map create mode 100644 portal-ui/build/static/js/9467.f6cb8eef.chunk.js create mode 100644 portal-ui/build/static/js/9467.f6cb8eef.chunk.js.map delete mode 100644 portal-ui/build/static/js/9537.177d91d7.chunk.js delete mode 100644 portal-ui/build/static/js/9537.177d91d7.chunk.js.map rename portal-ui/build/static/js/{9605.b37fdfef.chunk.js => 9605.f8777c0c.chunk.js} (99%) rename portal-ui/build/static/js/{9605.b37fdfef.chunk.js.map => 9605.f8777c0c.chunk.js.map} (99%) rename portal-ui/build/static/js/{9611.48e395c5.chunk.js => 9611.cd281dee.chunk.js} (95%) rename portal-ui/build/static/js/{9611.48e395c5.chunk.js.map => 9611.cd281dee.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/9635.c5a87859.chunk.js delete mode 100644 portal-ui/build/static/js/9635.c5a87859.chunk.js.map create mode 100644 portal-ui/build/static/js/9635.fd7496cc.chunk.js create mode 100644 portal-ui/build/static/js/9635.fd7496cc.chunk.js.map delete mode 100644 portal-ui/build/static/js/9729.2ed96524.chunk.js rename portal-ui/build/static/js/{9968.4ba3dc08.chunk.js => 9968.62a297d8.chunk.js} (96%) rename portal-ui/build/static/js/{9968.4ba3dc08.chunk.js.map => 9968.62a297d8.chunk.js.map} (99%) delete mode 100644 portal-ui/build/static/js/main.a0780f45.js delete mode 100644 portal-ui/build/static/js/main.a0780f45.js.map create mode 100644 portal-ui/build/static/js/main.c1bfdfdb.js rename portal-ui/build/static/js/{main.a0780f45.js.LICENSE.txt => main.c1bfdfdb.js.LICENSE.txt} (100%) create mode 100644 portal-ui/build/static/js/main.c1bfdfdb.js.map diff --git a/k8s/operator-console/base/console-deployment.yaml b/k8s/operator-console/base/console-deployment.yaml index 3c439e5e9..bc3f1b6fa 100644 --- a/k8s/operator-console/base/console-deployment.yaml +++ b/k8s/operator-console/base/console-deployment.yaml @@ -15,7 +15,7 @@ spec: serviceAccountName: console-sa containers: - name: console - image: 'minio/console:v0.15.7' + image: 'minio/console:v0.15.8' imagePullPolicy: "IfNotPresent" env: - name: CONSOLE_OPERATOR_MODE diff --git a/k8s/operator-console/standalone/console-deployment.yaml b/k8s/operator-console/standalone/console-deployment.yaml index ad708eda9..e6dfef5bd 100644 --- a/k8s/operator-console/standalone/console-deployment.yaml +++ b/k8s/operator-console/standalone/console-deployment.yaml @@ -32,7 +32,7 @@ spec: spec: containers: - name: console - image: 'minio/console:v0.15.7' + image: 'minio/console:v0.15.8' imagePullPolicy: "IfNotPresent" env: - name: CONSOLE_MINIO_SERVER diff --git a/portal-ui/build/asset-manifest.json b/portal-ui/build/asset-manifest.json index ccbefe817..99f47808c 100644 --- a/portal-ui/build/asset-manifest.json +++ b/portal-ui/build/asset-manifest.json @@ -1,116 +1,117 @@ { "files": { "main.css": "./static/css/main.90d417ae.css", - "main.js": "./static/js/main.a0780f45.js", - "static/js/2483.363201d7.chunk.js": "./static/js/2483.363201d7.chunk.js", + "main.js": "./static/js/main.c1bfdfdb.js", + "static/js/2483.916b80fb.chunk.js": "./static/js/2483.916b80fb.chunk.js", "static/js/6914.b2d1846a.chunk.js": "./static/js/6914.b2d1846a.chunk.js", - "static/js/8904.9f5a3be3.chunk.js": "./static/js/8904.9f5a3be3.chunk.js", - "static/js/1829.99ee609f.chunk.js": "./static/js/1829.99ee609f.chunk.js", - "static/js/6041.0bf546c3.chunk.js": "./static/js/6041.0bf546c3.chunk.js", - "static/js/5088.0395aa79.chunk.js": "./static/js/5088.0395aa79.chunk.js", - "static/js/5140.92c7c01a.chunk.js": "./static/js/5140.92c7c01a.chunk.js", - "static/js/2434.d3149513.chunk.js": "./static/js/2434.d3149513.chunk.js", - "static/js/3176.2549e498.chunk.js": "./static/js/3176.2549e498.chunk.js", - "static/js/6137.8b758e88.chunk.js": "./static/js/6137.8b758e88.chunk.js", - "static/js/7045.9d14424c.chunk.js": "./static/js/7045.9d14424c.chunk.js", - "static/js/9635.c5a87859.chunk.js": "./static/js/9635.c5a87859.chunk.js", - "static/js/2338.3c79a135.chunk.js": "./static/js/2338.3c79a135.chunk.js", - "static/js/4335.daa02fff.chunk.js": "./static/js/4335.daa02fff.chunk.js", - "static/js/6144.56aa9aa1.chunk.js": "./static/js/6144.56aa9aa1.chunk.js", - "static/js/6763.d86879b4.chunk.js": "./static/js/6763.d86879b4.chunk.js", - "static/js/3543.7f1f5dd1.chunk.js": "./static/js/3543.7f1f5dd1.chunk.js", - "static/js/4061.72744aa0.chunk.js": "./static/js/4061.72744aa0.chunk.js", - "static/js/2249.4862887a.chunk.js": "./static/js/2249.4862887a.chunk.js", - "static/js/9611.48e395c5.chunk.js": "./static/js/9611.48e395c5.chunk.js", - "static/js/2637.eb53ade1.chunk.js": "./static/js/2637.eb53ade1.chunk.js", + "static/js/4209.67dd1f00.chunk.js": "./static/js/4209.67dd1f00.chunk.js", + "static/js/1829.bdec7da8.chunk.js": "./static/js/1829.bdec7da8.chunk.js", + "static/js/6041.b277898c.chunk.js": "./static/js/6041.b277898c.chunk.js", + "static/js/5088.92dee249.chunk.js": "./static/js/5088.92dee249.chunk.js", + "static/js/5140.9827e93f.chunk.js": "./static/js/5140.9827e93f.chunk.js", + "static/js/1434.090dffbc.chunk.js": "./static/js/1434.090dffbc.chunk.js", + "static/js/3176.eb3dfdff.chunk.js": "./static/js/3176.eb3dfdff.chunk.js", + "static/js/6137.1990ccdd.chunk.js": "./static/js/6137.1990ccdd.chunk.js", + "static/js/7045.1bb98475.chunk.js": "./static/js/7045.1bb98475.chunk.js", + "static/js/9635.fd7496cc.chunk.js": "./static/js/9635.fd7496cc.chunk.js", + "static/js/2338.a23aa141.chunk.js": "./static/js/2338.a23aa141.chunk.js", + "static/js/4335.bce36690.chunk.js": "./static/js/4335.bce36690.chunk.js", + "static/js/6144.aef3ec0e.chunk.js": "./static/js/6144.aef3ec0e.chunk.js", + "static/js/6763.e45b988a.chunk.js": "./static/js/6763.e45b988a.chunk.js", + "static/js/3543.8ebcd154.chunk.js": "./static/js/3543.8ebcd154.chunk.js", + "static/js/4061.4ef26026.chunk.js": "./static/js/4061.4ef26026.chunk.js", + "static/js/2249.8bf84c2a.chunk.js": "./static/js/2249.8bf84c2a.chunk.js", + "static/js/9611.cd281dee.chunk.js": "./static/js/9611.cd281dee.chunk.js", + "static/js/2637.24c4f7f2.chunk.js": "./static/js/2637.24c4f7f2.chunk.js", "static/css/380.f0806840.chunk.css": "./static/css/380.f0806840.chunk.css", - "static/js/380.1e66f7fb.chunk.js": "./static/js/380.1e66f7fb.chunk.js", - "static/js/5926.6eebc955.chunk.js": "./static/js/5926.6eebc955.chunk.js", - "static/js/701.cf1bff16.chunk.js": "./static/js/701.cf1bff16.chunk.js", + "static/js/380.02c7ec7f.chunk.js": "./static/js/380.02c7ec7f.chunk.js", + "static/js/5926.780bfa30.chunk.js": "./static/js/5926.780bfa30.chunk.js", + "static/js/701.1ac9f080.chunk.js": "./static/js/701.1ac9f080.chunk.js", "static/js/7821.4a20efe4.chunk.js": "./static/js/7821.4a20efe4.chunk.js", - "static/js/2625.86a516d1.chunk.js": "./static/js/2625.86a516d1.chunk.js", + "static/js/2625.db3a430f.chunk.js": "./static/js/2625.db3a430f.chunk.js", "static/css/9033.f0806840.chunk.css": "./static/css/9033.f0806840.chunk.css", - "static/js/9033.c2cdc267.chunk.js": "./static/js/9033.c2cdc267.chunk.js", + "static/js/9033.7676b10b.chunk.js": "./static/js/9033.7676b10b.chunk.js", "static/css/9299.f0806840.chunk.css": "./static/css/9299.f0806840.chunk.css", - "static/js/9299.35956104.chunk.js": "./static/js/9299.35956104.chunk.js", - "static/js/191.80e5a168.chunk.js": "./static/js/191.80e5a168.chunk.js", - "static/js/7585.3e5e7b1c.chunk.js": "./static/js/7585.3e5e7b1c.chunk.js", - "static/js/1836.ea648525.chunk.js": "./static/js/1836.ea648525.chunk.js", - "static/js/4653.c79dfc48.chunk.js": "./static/js/4653.c79dfc48.chunk.js", - "static/js/4394.dfbbe2b6.chunk.js": "./static/js/4394.dfbbe2b6.chunk.js", + "static/js/9299.38fdae7f.chunk.js": "./static/js/9299.38fdae7f.chunk.js", + "static/js/191.22ff1445.chunk.js": "./static/js/191.22ff1445.chunk.js", + "static/js/7585.a8383baa.chunk.js": "./static/js/7585.a8383baa.chunk.js", + "static/js/1836.6c654dc4.chunk.js": "./static/js/1836.6c654dc4.chunk.js", + "static/js/4653.7e30a491.chunk.js": "./static/js/4653.7e30a491.chunk.js", + "static/js/255.c0b2782b.chunk.js": "./static/js/255.c0b2782b.chunk.js", + "static/js/4394.bcfbdcbb.chunk.js": "./static/js/4394.bcfbdcbb.chunk.js", "static/js/4781.f665cf2a.chunk.js": "./static/js/4781.f665cf2a.chunk.js", "static/js/9478.a31d099b.chunk.js": "./static/js/9478.a31d099b.chunk.js", "static/js/7164.a370b455.chunk.js": "./static/js/7164.a370b455.chunk.js", - "static/js/4414.5634e172.chunk.js": "./static/js/4414.5634e172.chunk.js", - "static/js/7798.e077fd71.chunk.js": "./static/js/7798.e077fd71.chunk.js", - "static/js/8833.0aa6aed9.chunk.js": "./static/js/8833.0aa6aed9.chunk.js", - "static/js/471.13d4a140.chunk.js": "./static/js/471.13d4a140.chunk.js", + "static/js/4414.a9cb8b72.chunk.js": "./static/js/4414.a9cb8b72.chunk.js", + "static/js/7798.56f30c3b.chunk.js": "./static/js/7798.56f30c3b.chunk.js", + "static/js/8833.dfb81217.chunk.js": "./static/js/8833.dfb81217.chunk.js", + "static/js/471.45f246bd.chunk.js": "./static/js/471.45f246bd.chunk.js", "static/js/483.dae2ef37.chunk.js": "./static/js/483.dae2ef37.chunk.js", - "static/js/9467.24a0eb41.chunk.js": "./static/js/9467.24a0eb41.chunk.js", - "static/js/6895.4a8032ca.chunk.js": "./static/js/6895.4a8032ca.chunk.js", - "static/js/6233.7866b56a.chunk.js": "./static/js/6233.7866b56a.chunk.js", - "static/js/5588.0717939d.chunk.js": "./static/js/5588.0717939d.chunk.js", - "static/js/4874.96b74c82.chunk.js": "./static/js/4874.96b74c82.chunk.js", + "static/js/9467.f6cb8eef.chunk.js": "./static/js/9467.f6cb8eef.chunk.js", + "static/js/6895.461b05f0.chunk.js": "./static/js/6895.461b05f0.chunk.js", + "static/js/6233.d36db740.chunk.js": "./static/js/6233.d36db740.chunk.js", + "static/js/5588.e74088bb.chunk.js": "./static/js/5588.e74088bb.chunk.js", + "static/js/4874.e9458ae5.chunk.js": "./static/js/4874.e9458ae5.chunk.js", "static/css/1955.f0806840.chunk.css": "./static/css/1955.f0806840.chunk.css", - "static/js/1955.54bd6485.chunk.js": "./static/js/1955.54bd6485.chunk.js", - "static/js/2653.98b78190.chunk.js": "./static/js/2653.98b78190.chunk.js", - "static/js/3956.cee5c63f.chunk.js": "./static/js/3956.cee5c63f.chunk.js", - "static/js/7015.86fd97fc.chunk.js": "./static/js/7015.86fd97fc.chunk.js", - "static/js/7524.cf07d407.chunk.js": "./static/js/7524.cf07d407.chunk.js", + "static/js/1955.229f8589.chunk.js": "./static/js/1955.229f8589.chunk.js", + "static/js/2653.99c5025d.chunk.js": "./static/js/2653.99c5025d.chunk.js", + "static/js/3956.4456b432.chunk.js": "./static/js/3956.4456b432.chunk.js", + "static/js/7015.bf19d426.chunk.js": "./static/js/7015.bf19d426.chunk.js", + "static/js/7524.a91225d5.chunk.js": "./static/js/7524.a91225d5.chunk.js", "static/js/8771.db2b98f1.chunk.js": "./static/js/8771.db2b98f1.chunk.js", - "static/js/9076.6bfd772c.chunk.js": "./static/js/9076.6bfd772c.chunk.js", - "static/js/9221.fd62ef6f.chunk.js": "./static/js/9221.fd62ef6f.chunk.js", - "static/js/8896.7e43f413.chunk.js": "./static/js/8896.7e43f413.chunk.js", - "static/js/7413.e1d784e8.chunk.js": "./static/js/7413.e1d784e8.chunk.js", + "static/js/9076.7e56fcbe.chunk.js": "./static/js/9076.7e56fcbe.chunk.js", + "static/js/9221.77cb4472.chunk.js": "./static/js/9221.77cb4472.chunk.js", + "static/js/8896.6bce01f2.chunk.js": "./static/js/8896.6bce01f2.chunk.js", + "static/js/7413.76bdfa63.chunk.js": "./static/js/7413.76bdfa63.chunk.js", "static/js/9134.8cc50bc9.chunk.js": "./static/js/9134.8cc50bc9.chunk.js", "static/css/8138.f0806840.chunk.css": "./static/css/8138.f0806840.chunk.css", - "static/js/8138.d72851b8.chunk.js": "./static/js/8138.d72851b8.chunk.js", - "static/js/8183.967577a6.chunk.js": "./static/js/8183.967577a6.chunk.js", - "static/js/9145.6a82a8e7.chunk.js": "./static/js/9145.6a82a8e7.chunk.js", - "static/js/9537.177d91d7.chunk.js": "./static/js/9537.177d91d7.chunk.js", - "static/js/7331.a4fdab74.chunk.js": "./static/js/7331.a4fdab74.chunk.js", - "static/js/9605.b37fdfef.chunk.js": "./static/js/9605.b37fdfef.chunk.js", + "static/js/8138.4370a81f.chunk.js": "./static/js/8138.4370a81f.chunk.js", + "static/js/8183.9baf7269.chunk.js": "./static/js/8183.9baf7269.chunk.js", + "static/js/9145.018a2c60.chunk.js": "./static/js/9145.018a2c60.chunk.js", + "static/js/4537.51d5373f.chunk.js": "./static/js/4537.51d5373f.chunk.js", + "static/js/7331.dcfe1cee.chunk.js": "./static/js/7331.dcfe1cee.chunk.js", + "static/js/9605.f8777c0c.chunk.js": "./static/js/9605.f8777c0c.chunk.js", "static/js/426.fc1a9166.chunk.js": "./static/js/426.fc1a9166.chunk.js", "static/js/2878.aa37c6f9.chunk.js": "./static/js/2878.aa37c6f9.chunk.js", "static/js/8495.b664f242.chunk.js": "./static/js/8495.b664f242.chunk.js", "static/js/4934.8bb784c0.chunk.js": "./static/js/4934.8bb784c0.chunk.js", "static/js/3518.c30eac83.chunk.js": "./static/js/3518.c30eac83.chunk.js", - "static/js/2684.9b1b9065.chunk.js": "./static/js/2684.9b1b9065.chunk.js", - "static/js/6683.0395331a.chunk.js": "./static/js/6683.0395331a.chunk.js", - "static/js/8350.c469b278.chunk.js": "./static/js/8350.c469b278.chunk.js", + "static/js/2684.2357e56a.chunk.js": "./static/js/2684.2357e56a.chunk.js", + "static/js/6683.c02ad0d0.chunk.js": "./static/js/6683.c02ad0d0.chunk.js", + "static/js/8350.7cf9e629.chunk.js": "./static/js/8350.7cf9e629.chunk.js", "static/js/2676.977e5329.chunk.js": "./static/js/2676.977e5329.chunk.js", - "static/js/9449.877702b7.chunk.js": "./static/js/9449.877702b7.chunk.js", - "static/js/7659.cdd8e088.chunk.js": "./static/js/7659.cdd8e088.chunk.js", - "static/js/9968.4ba3dc08.chunk.js": "./static/js/9968.4ba3dc08.chunk.js", + "static/js/9449.bed41472.chunk.js": "./static/js/9449.bed41472.chunk.js", + "static/js/7659.ff320d87.chunk.js": "./static/js/7659.ff320d87.chunk.js", + "static/js/9968.62a297d8.chunk.js": "./static/js/9968.62a297d8.chunk.js", "static/js/2180.5910a383.chunk.js": "./static/js/2180.5910a383.chunk.js", "static/js/8253.a8e8b608.chunk.js": "./static/js/8253.a8e8b608.chunk.js", - "static/js/3328.8f4d30e6.chunk.js": "./static/js/3328.8f4d30e6.chunk.js", + "static/js/3328.c8ee1c0a.chunk.js": "./static/js/3328.c8ee1c0a.chunk.js", "static/js/1440.735f3ff6.chunk.js": "./static/js/1440.735f3ff6.chunk.js", - "static/js/9002.c288853e.chunk.js": "./static/js/9002.c288853e.chunk.js", - "static/js/2114.ac47a792.chunk.js": "./static/js/2114.ac47a792.chunk.js", - "static/js/711.4196799c.chunk.js": "./static/js/711.4196799c.chunk.js", + "static/js/9002.6a353edb.chunk.js": "./static/js/9002.6a353edb.chunk.js", + "static/js/2114.fac0126b.chunk.js": "./static/js/2114.fac0126b.chunk.js", + "static/js/711.ca4cd5de.chunk.js": "./static/js/711.ca4cd5de.chunk.js", "static/js/6901.0ba9ddfc.chunk.js": "./static/js/6901.0ba9ddfc.chunk.js", - "static/js/3678.5bd48bc8.chunk.js": "./static/js/3678.5bd48bc8.chunk.js", + "static/js/3678.783bd42c.chunk.js": "./static/js/3678.783bd42c.chunk.js", "static/css/3320.f0806840.chunk.css": "./static/css/3320.f0806840.chunk.css", - "static/js/3320.5e846f8f.chunk.js": "./static/js/3320.5e846f8f.chunk.js", - "static/js/312.f4ca2352.chunk.js": "./static/js/312.f4ca2352.chunk.js", - "static/js/2112.afb8bcb6.chunk.js": "./static/js/2112.afb8bcb6.chunk.js", - "static/js/4619.ed29e211.chunk.js": "./static/js/4619.ed29e211.chunk.js", - "static/js/8990.56ac79e0.chunk.js": "./static/js/8990.56ac79e0.chunk.js", - "static/js/8455.b557f9ba.chunk.js": "./static/js/8455.b557f9ba.chunk.js", + "static/js/3320.cc8f32b5.chunk.js": "./static/js/3320.cc8f32b5.chunk.js", + "static/js/312.ece23e44.chunk.js": "./static/js/312.ece23e44.chunk.js", + "static/js/2112.d1dc9c18.chunk.js": "./static/js/2112.d1dc9c18.chunk.js", + "static/js/4619.95265a73.chunk.js": "./static/js/4619.95265a73.chunk.js", + "static/js/8990.3d9dba33.chunk.js": "./static/js/8990.3d9dba33.chunk.js", + "static/js/8455.f9a2bdd5.chunk.js": "./static/js/8455.f9a2bdd5.chunk.js", "static/css/3631.f0806840.chunk.css": "./static/css/3631.f0806840.chunk.css", - "static/js/3631.23cb1b6a.chunk.js": "./static/js/3631.23cb1b6a.chunk.js", + "static/js/3631.8dc2431a.chunk.js": "./static/js/3631.8dc2431a.chunk.js", "static/js/1604.69a0fc07.chunk.js": "./static/js/1604.69a0fc07.chunk.js", - "static/js/8391.484f375b.chunk.js": "./static/js/8391.484f375b.chunk.js", - "static/js/402.5425871a.chunk.js": "./static/js/402.5425871a.chunk.js", + "static/js/8391.2e0c02db.chunk.js": "./static/js/8391.2e0c02db.chunk.js", + "static/js/402.0d6fb459.chunk.js": "./static/js/402.0d6fb459.chunk.js", "static/js/1705.0e30ff48.chunk.js": "./static/js/1705.0e30ff48.chunk.js", - "static/js/1581.2ff273b8.chunk.js": "./static/js/1581.2ff273b8.chunk.js", - "static/js/455.0ac20914.chunk.js": "./static/js/455.0ac20914.chunk.js", - "static/js/2661.3c5e0aa7.chunk.js": "./static/js/2661.3c5e0aa7.chunk.js", - "static/js/889.4805d401.chunk.js": "./static/js/889.4805d401.chunk.js", - "static/js/9088.38a46e3e.chunk.js": "./static/js/9088.38a46e3e.chunk.js", - "static/js/247.3b7c3d22.chunk.js": "./static/js/247.3b7c3d22.chunk.js", - "static/js/2763.da16b11a.chunk.js": "./static/js/2763.da16b11a.chunk.js", + "static/js/1581.4eeb1235.chunk.js": "./static/js/1581.4eeb1235.chunk.js", + "static/js/455.f7e76ee0.chunk.js": "./static/js/455.f7e76ee0.chunk.js", + "static/js/2661.507d8e55.chunk.js": "./static/js/2661.507d8e55.chunk.js", + "static/js/889.1aff762e.chunk.js": "./static/js/889.1aff762e.chunk.js", + "static/js/9088.8760863e.chunk.js": "./static/js/9088.8760863e.chunk.js", + "static/js/247.4ea98f6d.chunk.js": "./static/js/247.4ea98f6d.chunk.js", + "static/js/2763.7af4b74e.chunk.js": "./static/js/2763.7af4b74e.chunk.js", "static/js/3772.8f7b248e.chunk.js": "./static/js/3772.8f7b248e.chunk.js", "static/js/5171.dc54a6db.chunk.js": "./static/js/5171.dc54a6db.chunk.js", "static/js/2442.c325186c.chunk.js": "./static/js/2442.c325186c.chunk.js", @@ -129,134 +130,135 @@ "static/js/8354.e837d480.chunk.js": "./static/js/8354.e837d480.chunk.js", "static/js/5221.b26ebb60.chunk.js": "./static/js/5221.b26ebb60.chunk.js", "static/js/6172.dd44d76e.chunk.js": "./static/js/6172.dd44d76e.chunk.js", + "static/js/7315.f1bb4245.chunk.js": "./static/js/7315.f1bb4245.chunk.js", "static/js/532.19dd5663.chunk.js": "./static/js/532.19dd5663.chunk.js", "static/js/592.ec821e13.chunk.js": "./static/js/592.ec821e13.chunk.js", "static/js/2076.e7bf07b8.chunk.js": "./static/js/2076.e7bf07b8.chunk.js", - "static/js/1326.d157bb06.chunk.js": "./static/js/1326.d157bb06.chunk.js", + "static/js/1326.19aa2326.chunk.js": "./static/js/1326.19aa2326.chunk.js", "static/js/7142.957288ed.chunk.js": "./static/js/7142.957288ed.chunk.js", "static/js/7931.9fe0101a.chunk.js": "./static/js/7931.9fe0101a.chunk.js", "static/js/9362.63d03757.chunk.js": "./static/js/9362.63d03757.chunk.js", "static/js/2879.69834509.chunk.js": "./static/js/2879.69834509.chunk.js", - "static/js/3096.31031f0d.chunk.js": "./static/js/3096.31031f0d.chunk.js", - "static/js/9729.2ed96524.chunk.js": "./static/js/9729.2ed96524.chunk.js", - "static/js/2983.3a39dc73.chunk.js": "./static/js/2983.3a39dc73.chunk.js", - "static/js/770.f6360bf6.chunk.js": "./static/js/770.f6360bf6.chunk.js", - "static/js/5662.d8af2856.chunk.js": "./static/js/5662.d8af2856.chunk.js", - "static/js/5165.311fbd50.chunk.js": "./static/js/5165.311fbd50.chunk.js", - "static/js/9086.b84a9135.chunk.js": "./static/js/9086.b84a9135.chunk.js", - "static/js/1687.63ed48b6.chunk.js": "./static/js/1687.63ed48b6.chunk.js", + "static/js/3096.63d4ac67.chunk.js": "./static/js/3096.63d4ac67.chunk.js", + "static/js/2983.fe810bfe.chunk.js": "./static/js/2983.fe810bfe.chunk.js", + "static/js/770.3758c1a2.chunk.js": "./static/js/770.3758c1a2.chunk.js", + "static/js/5662.19eb0698.chunk.js": "./static/js/5662.19eb0698.chunk.js", + "static/js/5165.d8aefc2f.chunk.js": "./static/js/5165.d8aefc2f.chunk.js", + "static/js/6496.7d9a792c.chunk.js": "./static/js/6496.7d9a792c.chunk.js", + "static/js/1687.2710a7fa.chunk.js": "./static/js/1687.2710a7fa.chunk.js", "index.html": "./index.html", "main.90d417ae.css.map": "./static/css/main.90d417ae.css.map", - "main.a0780f45.js.map": "./static/js/main.a0780f45.js.map", - "2483.363201d7.chunk.js.map": "./static/js/2483.363201d7.chunk.js.map", + "main.c1bfdfdb.js.map": "./static/js/main.c1bfdfdb.js.map", + "2483.916b80fb.chunk.js.map": "./static/js/2483.916b80fb.chunk.js.map", "6914.b2d1846a.chunk.js.map": "./static/js/6914.b2d1846a.chunk.js.map", - "8904.9f5a3be3.chunk.js.map": "./static/js/8904.9f5a3be3.chunk.js.map", - "1829.99ee609f.chunk.js.map": "./static/js/1829.99ee609f.chunk.js.map", - "6041.0bf546c3.chunk.js.map": "./static/js/6041.0bf546c3.chunk.js.map", - "5088.0395aa79.chunk.js.map": "./static/js/5088.0395aa79.chunk.js.map", - "5140.92c7c01a.chunk.js.map": "./static/js/5140.92c7c01a.chunk.js.map", - "2434.d3149513.chunk.js.map": "./static/js/2434.d3149513.chunk.js.map", - "3176.2549e498.chunk.js.map": "./static/js/3176.2549e498.chunk.js.map", - "6137.8b758e88.chunk.js.map": "./static/js/6137.8b758e88.chunk.js.map", - "7045.9d14424c.chunk.js.map": "./static/js/7045.9d14424c.chunk.js.map", - "9635.c5a87859.chunk.js.map": "./static/js/9635.c5a87859.chunk.js.map", - "2338.3c79a135.chunk.js.map": "./static/js/2338.3c79a135.chunk.js.map", - "4335.daa02fff.chunk.js.map": "./static/js/4335.daa02fff.chunk.js.map", - "6144.56aa9aa1.chunk.js.map": "./static/js/6144.56aa9aa1.chunk.js.map", - "6763.d86879b4.chunk.js.map": "./static/js/6763.d86879b4.chunk.js.map", - "3543.7f1f5dd1.chunk.js.map": "./static/js/3543.7f1f5dd1.chunk.js.map", - "4061.72744aa0.chunk.js.map": "./static/js/4061.72744aa0.chunk.js.map", - "2249.4862887a.chunk.js.map": "./static/js/2249.4862887a.chunk.js.map", - "9611.48e395c5.chunk.js.map": "./static/js/9611.48e395c5.chunk.js.map", - "2637.eb53ade1.chunk.js.map": "./static/js/2637.eb53ade1.chunk.js.map", + "4209.67dd1f00.chunk.js.map": "./static/js/4209.67dd1f00.chunk.js.map", + "1829.bdec7da8.chunk.js.map": "./static/js/1829.bdec7da8.chunk.js.map", + "6041.b277898c.chunk.js.map": "./static/js/6041.b277898c.chunk.js.map", + "5088.92dee249.chunk.js.map": "./static/js/5088.92dee249.chunk.js.map", + "5140.9827e93f.chunk.js.map": "./static/js/5140.9827e93f.chunk.js.map", + "1434.090dffbc.chunk.js.map": "./static/js/1434.090dffbc.chunk.js.map", + "3176.eb3dfdff.chunk.js.map": "./static/js/3176.eb3dfdff.chunk.js.map", + "6137.1990ccdd.chunk.js.map": "./static/js/6137.1990ccdd.chunk.js.map", + "7045.1bb98475.chunk.js.map": "./static/js/7045.1bb98475.chunk.js.map", + "9635.fd7496cc.chunk.js.map": "./static/js/9635.fd7496cc.chunk.js.map", + "2338.a23aa141.chunk.js.map": "./static/js/2338.a23aa141.chunk.js.map", + "4335.bce36690.chunk.js.map": "./static/js/4335.bce36690.chunk.js.map", + "6144.aef3ec0e.chunk.js.map": "./static/js/6144.aef3ec0e.chunk.js.map", + "6763.e45b988a.chunk.js.map": "./static/js/6763.e45b988a.chunk.js.map", + "3543.8ebcd154.chunk.js.map": "./static/js/3543.8ebcd154.chunk.js.map", + "4061.4ef26026.chunk.js.map": "./static/js/4061.4ef26026.chunk.js.map", + "2249.8bf84c2a.chunk.js.map": "./static/js/2249.8bf84c2a.chunk.js.map", + "9611.cd281dee.chunk.js.map": "./static/js/9611.cd281dee.chunk.js.map", + "2637.24c4f7f2.chunk.js.map": "./static/js/2637.24c4f7f2.chunk.js.map", "380.f0806840.chunk.css.map": "./static/css/380.f0806840.chunk.css.map", - "380.1e66f7fb.chunk.js.map": "./static/js/380.1e66f7fb.chunk.js.map", - "5926.6eebc955.chunk.js.map": "./static/js/5926.6eebc955.chunk.js.map", - "701.cf1bff16.chunk.js.map": "./static/js/701.cf1bff16.chunk.js.map", + "380.02c7ec7f.chunk.js.map": "./static/js/380.02c7ec7f.chunk.js.map", + "5926.780bfa30.chunk.js.map": "./static/js/5926.780bfa30.chunk.js.map", + "701.1ac9f080.chunk.js.map": "./static/js/701.1ac9f080.chunk.js.map", "7821.4a20efe4.chunk.js.map": "./static/js/7821.4a20efe4.chunk.js.map", - "2625.86a516d1.chunk.js.map": "./static/js/2625.86a516d1.chunk.js.map", + "2625.db3a430f.chunk.js.map": "./static/js/2625.db3a430f.chunk.js.map", "9033.f0806840.chunk.css.map": "./static/css/9033.f0806840.chunk.css.map", - "9033.c2cdc267.chunk.js.map": "./static/js/9033.c2cdc267.chunk.js.map", + "9033.7676b10b.chunk.js.map": "./static/js/9033.7676b10b.chunk.js.map", "9299.f0806840.chunk.css.map": "./static/css/9299.f0806840.chunk.css.map", - "9299.35956104.chunk.js.map": "./static/js/9299.35956104.chunk.js.map", - "191.80e5a168.chunk.js.map": "./static/js/191.80e5a168.chunk.js.map", - "7585.3e5e7b1c.chunk.js.map": "./static/js/7585.3e5e7b1c.chunk.js.map", - "1836.ea648525.chunk.js.map": "./static/js/1836.ea648525.chunk.js.map", - "4653.c79dfc48.chunk.js.map": "./static/js/4653.c79dfc48.chunk.js.map", - "4394.dfbbe2b6.chunk.js.map": "./static/js/4394.dfbbe2b6.chunk.js.map", + "9299.38fdae7f.chunk.js.map": "./static/js/9299.38fdae7f.chunk.js.map", + "191.22ff1445.chunk.js.map": "./static/js/191.22ff1445.chunk.js.map", + "7585.a8383baa.chunk.js.map": "./static/js/7585.a8383baa.chunk.js.map", + "1836.6c654dc4.chunk.js.map": "./static/js/1836.6c654dc4.chunk.js.map", + "4653.7e30a491.chunk.js.map": "./static/js/4653.7e30a491.chunk.js.map", + "255.c0b2782b.chunk.js.map": "./static/js/255.c0b2782b.chunk.js.map", + "4394.bcfbdcbb.chunk.js.map": "./static/js/4394.bcfbdcbb.chunk.js.map", "4781.f665cf2a.chunk.js.map": "./static/js/4781.f665cf2a.chunk.js.map", "9478.a31d099b.chunk.js.map": "./static/js/9478.a31d099b.chunk.js.map", "7164.a370b455.chunk.js.map": "./static/js/7164.a370b455.chunk.js.map", - "4414.5634e172.chunk.js.map": "./static/js/4414.5634e172.chunk.js.map", - "7798.e077fd71.chunk.js.map": "./static/js/7798.e077fd71.chunk.js.map", - "8833.0aa6aed9.chunk.js.map": "./static/js/8833.0aa6aed9.chunk.js.map", - "471.13d4a140.chunk.js.map": "./static/js/471.13d4a140.chunk.js.map", + "4414.a9cb8b72.chunk.js.map": "./static/js/4414.a9cb8b72.chunk.js.map", + "7798.56f30c3b.chunk.js.map": "./static/js/7798.56f30c3b.chunk.js.map", + "8833.dfb81217.chunk.js.map": "./static/js/8833.dfb81217.chunk.js.map", + "471.45f246bd.chunk.js.map": "./static/js/471.45f246bd.chunk.js.map", "483.dae2ef37.chunk.js.map": "./static/js/483.dae2ef37.chunk.js.map", - "9467.24a0eb41.chunk.js.map": "./static/js/9467.24a0eb41.chunk.js.map", - "6895.4a8032ca.chunk.js.map": "./static/js/6895.4a8032ca.chunk.js.map", - "6233.7866b56a.chunk.js.map": "./static/js/6233.7866b56a.chunk.js.map", - "5588.0717939d.chunk.js.map": "./static/js/5588.0717939d.chunk.js.map", - "4874.96b74c82.chunk.js.map": "./static/js/4874.96b74c82.chunk.js.map", + "9467.f6cb8eef.chunk.js.map": "./static/js/9467.f6cb8eef.chunk.js.map", + "6895.461b05f0.chunk.js.map": "./static/js/6895.461b05f0.chunk.js.map", + "6233.d36db740.chunk.js.map": "./static/js/6233.d36db740.chunk.js.map", + "5588.e74088bb.chunk.js.map": "./static/js/5588.e74088bb.chunk.js.map", + "4874.e9458ae5.chunk.js.map": "./static/js/4874.e9458ae5.chunk.js.map", "1955.f0806840.chunk.css.map": "./static/css/1955.f0806840.chunk.css.map", - "1955.54bd6485.chunk.js.map": "./static/js/1955.54bd6485.chunk.js.map", - "2653.98b78190.chunk.js.map": "./static/js/2653.98b78190.chunk.js.map", - "3956.cee5c63f.chunk.js.map": "./static/js/3956.cee5c63f.chunk.js.map", - "7015.86fd97fc.chunk.js.map": "./static/js/7015.86fd97fc.chunk.js.map", - "7524.cf07d407.chunk.js.map": "./static/js/7524.cf07d407.chunk.js.map", + "1955.229f8589.chunk.js.map": "./static/js/1955.229f8589.chunk.js.map", + "2653.99c5025d.chunk.js.map": "./static/js/2653.99c5025d.chunk.js.map", + "3956.4456b432.chunk.js.map": "./static/js/3956.4456b432.chunk.js.map", + "7015.bf19d426.chunk.js.map": "./static/js/7015.bf19d426.chunk.js.map", + "7524.a91225d5.chunk.js.map": "./static/js/7524.a91225d5.chunk.js.map", "8771.db2b98f1.chunk.js.map": "./static/js/8771.db2b98f1.chunk.js.map", - "9076.6bfd772c.chunk.js.map": "./static/js/9076.6bfd772c.chunk.js.map", - "9221.fd62ef6f.chunk.js.map": "./static/js/9221.fd62ef6f.chunk.js.map", - "8896.7e43f413.chunk.js.map": "./static/js/8896.7e43f413.chunk.js.map", - "7413.e1d784e8.chunk.js.map": "./static/js/7413.e1d784e8.chunk.js.map", + "9076.7e56fcbe.chunk.js.map": "./static/js/9076.7e56fcbe.chunk.js.map", + "9221.77cb4472.chunk.js.map": "./static/js/9221.77cb4472.chunk.js.map", + "8896.6bce01f2.chunk.js.map": "./static/js/8896.6bce01f2.chunk.js.map", + "7413.76bdfa63.chunk.js.map": "./static/js/7413.76bdfa63.chunk.js.map", "9134.8cc50bc9.chunk.js.map": "./static/js/9134.8cc50bc9.chunk.js.map", "8138.f0806840.chunk.css.map": "./static/css/8138.f0806840.chunk.css.map", - "8138.d72851b8.chunk.js.map": "./static/js/8138.d72851b8.chunk.js.map", - "8183.967577a6.chunk.js.map": "./static/js/8183.967577a6.chunk.js.map", - "9145.6a82a8e7.chunk.js.map": "./static/js/9145.6a82a8e7.chunk.js.map", - "9537.177d91d7.chunk.js.map": "./static/js/9537.177d91d7.chunk.js.map", - "7331.a4fdab74.chunk.js.map": "./static/js/7331.a4fdab74.chunk.js.map", - "9605.b37fdfef.chunk.js.map": "./static/js/9605.b37fdfef.chunk.js.map", + "8138.4370a81f.chunk.js.map": "./static/js/8138.4370a81f.chunk.js.map", + "8183.9baf7269.chunk.js.map": "./static/js/8183.9baf7269.chunk.js.map", + "9145.018a2c60.chunk.js.map": "./static/js/9145.018a2c60.chunk.js.map", + "4537.51d5373f.chunk.js.map": "./static/js/4537.51d5373f.chunk.js.map", + "7331.dcfe1cee.chunk.js.map": "./static/js/7331.dcfe1cee.chunk.js.map", + "9605.f8777c0c.chunk.js.map": "./static/js/9605.f8777c0c.chunk.js.map", "426.fc1a9166.chunk.js.map": "./static/js/426.fc1a9166.chunk.js.map", "2878.aa37c6f9.chunk.js.map": "./static/js/2878.aa37c6f9.chunk.js.map", "8495.b664f242.chunk.js.map": "./static/js/8495.b664f242.chunk.js.map", "4934.8bb784c0.chunk.js.map": "./static/js/4934.8bb784c0.chunk.js.map", "3518.c30eac83.chunk.js.map": "./static/js/3518.c30eac83.chunk.js.map", - "2684.9b1b9065.chunk.js.map": "./static/js/2684.9b1b9065.chunk.js.map", - "6683.0395331a.chunk.js.map": "./static/js/6683.0395331a.chunk.js.map", - "8350.c469b278.chunk.js.map": "./static/js/8350.c469b278.chunk.js.map", + "2684.2357e56a.chunk.js.map": "./static/js/2684.2357e56a.chunk.js.map", + "6683.c02ad0d0.chunk.js.map": "./static/js/6683.c02ad0d0.chunk.js.map", + "8350.7cf9e629.chunk.js.map": "./static/js/8350.7cf9e629.chunk.js.map", "2676.977e5329.chunk.js.map": "./static/js/2676.977e5329.chunk.js.map", - "9449.877702b7.chunk.js.map": "./static/js/9449.877702b7.chunk.js.map", - "7659.cdd8e088.chunk.js.map": "./static/js/7659.cdd8e088.chunk.js.map", - "9968.4ba3dc08.chunk.js.map": "./static/js/9968.4ba3dc08.chunk.js.map", + "9449.bed41472.chunk.js.map": "./static/js/9449.bed41472.chunk.js.map", + "7659.ff320d87.chunk.js.map": "./static/js/7659.ff320d87.chunk.js.map", + "9968.62a297d8.chunk.js.map": "./static/js/9968.62a297d8.chunk.js.map", "2180.5910a383.chunk.js.map": "./static/js/2180.5910a383.chunk.js.map", "8253.a8e8b608.chunk.js.map": "./static/js/8253.a8e8b608.chunk.js.map", - "3328.8f4d30e6.chunk.js.map": "./static/js/3328.8f4d30e6.chunk.js.map", + "3328.c8ee1c0a.chunk.js.map": "./static/js/3328.c8ee1c0a.chunk.js.map", "1440.735f3ff6.chunk.js.map": "./static/js/1440.735f3ff6.chunk.js.map", - "9002.c288853e.chunk.js.map": "./static/js/9002.c288853e.chunk.js.map", - "2114.ac47a792.chunk.js.map": "./static/js/2114.ac47a792.chunk.js.map", - "711.4196799c.chunk.js.map": "./static/js/711.4196799c.chunk.js.map", + "9002.6a353edb.chunk.js.map": "./static/js/9002.6a353edb.chunk.js.map", + "2114.fac0126b.chunk.js.map": "./static/js/2114.fac0126b.chunk.js.map", + "711.ca4cd5de.chunk.js.map": "./static/js/711.ca4cd5de.chunk.js.map", "6901.0ba9ddfc.chunk.js.map": "./static/js/6901.0ba9ddfc.chunk.js.map", - "3678.5bd48bc8.chunk.js.map": "./static/js/3678.5bd48bc8.chunk.js.map", + "3678.783bd42c.chunk.js.map": "./static/js/3678.783bd42c.chunk.js.map", "3320.f0806840.chunk.css.map": "./static/css/3320.f0806840.chunk.css.map", - "3320.5e846f8f.chunk.js.map": "./static/js/3320.5e846f8f.chunk.js.map", - "312.f4ca2352.chunk.js.map": "./static/js/312.f4ca2352.chunk.js.map", - "2112.afb8bcb6.chunk.js.map": "./static/js/2112.afb8bcb6.chunk.js.map", - "4619.ed29e211.chunk.js.map": "./static/js/4619.ed29e211.chunk.js.map", - "8990.56ac79e0.chunk.js.map": "./static/js/8990.56ac79e0.chunk.js.map", - "8455.b557f9ba.chunk.js.map": "./static/js/8455.b557f9ba.chunk.js.map", + "3320.cc8f32b5.chunk.js.map": "./static/js/3320.cc8f32b5.chunk.js.map", + "312.ece23e44.chunk.js.map": "./static/js/312.ece23e44.chunk.js.map", + "2112.d1dc9c18.chunk.js.map": "./static/js/2112.d1dc9c18.chunk.js.map", + "4619.95265a73.chunk.js.map": "./static/js/4619.95265a73.chunk.js.map", + "8990.3d9dba33.chunk.js.map": "./static/js/8990.3d9dba33.chunk.js.map", + "8455.f9a2bdd5.chunk.js.map": "./static/js/8455.f9a2bdd5.chunk.js.map", "3631.f0806840.chunk.css.map": "./static/css/3631.f0806840.chunk.css.map", - "3631.23cb1b6a.chunk.js.map": "./static/js/3631.23cb1b6a.chunk.js.map", + "3631.8dc2431a.chunk.js.map": "./static/js/3631.8dc2431a.chunk.js.map", "1604.69a0fc07.chunk.js.map": "./static/js/1604.69a0fc07.chunk.js.map", - "8391.484f375b.chunk.js.map": "./static/js/8391.484f375b.chunk.js.map", - "402.5425871a.chunk.js.map": "./static/js/402.5425871a.chunk.js.map", + "8391.2e0c02db.chunk.js.map": "./static/js/8391.2e0c02db.chunk.js.map", + "402.0d6fb459.chunk.js.map": "./static/js/402.0d6fb459.chunk.js.map", "1705.0e30ff48.chunk.js.map": "./static/js/1705.0e30ff48.chunk.js.map", - "1581.2ff273b8.chunk.js.map": "./static/js/1581.2ff273b8.chunk.js.map", - "455.0ac20914.chunk.js.map": "./static/js/455.0ac20914.chunk.js.map", - "2661.3c5e0aa7.chunk.js.map": "./static/js/2661.3c5e0aa7.chunk.js.map", - "889.4805d401.chunk.js.map": "./static/js/889.4805d401.chunk.js.map", - "9088.38a46e3e.chunk.js.map": "./static/js/9088.38a46e3e.chunk.js.map", - "247.3b7c3d22.chunk.js.map": "./static/js/247.3b7c3d22.chunk.js.map", - "2763.da16b11a.chunk.js.map": "./static/js/2763.da16b11a.chunk.js.map", + "1581.4eeb1235.chunk.js.map": "./static/js/1581.4eeb1235.chunk.js.map", + "455.f7e76ee0.chunk.js.map": "./static/js/455.f7e76ee0.chunk.js.map", + "2661.507d8e55.chunk.js.map": "./static/js/2661.507d8e55.chunk.js.map", + "889.1aff762e.chunk.js.map": "./static/js/889.1aff762e.chunk.js.map", + "9088.8760863e.chunk.js.map": "./static/js/9088.8760863e.chunk.js.map", + "247.4ea98f6d.chunk.js.map": "./static/js/247.4ea98f6d.chunk.js.map", + "2763.7af4b74e.chunk.js.map": "./static/js/2763.7af4b74e.chunk.js.map", "3772.8f7b248e.chunk.js.map": "./static/js/3772.8f7b248e.chunk.js.map", "5171.dc54a6db.chunk.js.map": "./static/js/5171.dc54a6db.chunk.js.map", "2442.c325186c.chunk.js.map": "./static/js/2442.c325186c.chunk.js.map", @@ -275,25 +277,25 @@ "8354.e837d480.chunk.js.map": "./static/js/8354.e837d480.chunk.js.map", "5221.b26ebb60.chunk.js.map": "./static/js/5221.b26ebb60.chunk.js.map", "6172.dd44d76e.chunk.js.map": "./static/js/6172.dd44d76e.chunk.js.map", + "7315.f1bb4245.chunk.js.map": "./static/js/7315.f1bb4245.chunk.js.map", "532.19dd5663.chunk.js.map": "./static/js/532.19dd5663.chunk.js.map", "592.ec821e13.chunk.js.map": "./static/js/592.ec821e13.chunk.js.map", "2076.e7bf07b8.chunk.js.map": "./static/js/2076.e7bf07b8.chunk.js.map", - "1326.d157bb06.chunk.js.map": "./static/js/1326.d157bb06.chunk.js.map", + "1326.19aa2326.chunk.js.map": "./static/js/1326.19aa2326.chunk.js.map", "7142.957288ed.chunk.js.map": "./static/js/7142.957288ed.chunk.js.map", "7931.9fe0101a.chunk.js.map": "./static/js/7931.9fe0101a.chunk.js.map", "9362.63d03757.chunk.js.map": "./static/js/9362.63d03757.chunk.js.map", "2879.69834509.chunk.js.map": "./static/js/2879.69834509.chunk.js.map", - "3096.31031f0d.chunk.js.map": "./static/js/3096.31031f0d.chunk.js.map", - "9729.2ed96524.chunk.js.map": "./static/js/9729.2ed96524.chunk.js.map", - "2983.3a39dc73.chunk.js.map": "./static/js/2983.3a39dc73.chunk.js.map", - "770.f6360bf6.chunk.js.map": "./static/js/770.f6360bf6.chunk.js.map", - "5662.d8af2856.chunk.js.map": "./static/js/5662.d8af2856.chunk.js.map", - "5165.311fbd50.chunk.js.map": "./static/js/5165.311fbd50.chunk.js.map", - "9086.b84a9135.chunk.js.map": "./static/js/9086.b84a9135.chunk.js.map", - "1687.63ed48b6.chunk.js.map": "./static/js/1687.63ed48b6.chunk.js.map" + "3096.63d4ac67.chunk.js.map": "./static/js/3096.63d4ac67.chunk.js.map", + "2983.fe810bfe.chunk.js.map": "./static/js/2983.fe810bfe.chunk.js.map", + "770.3758c1a2.chunk.js.map": "./static/js/770.3758c1a2.chunk.js.map", + "5662.19eb0698.chunk.js.map": "./static/js/5662.19eb0698.chunk.js.map", + "5165.d8aefc2f.chunk.js.map": "./static/js/5165.d8aefc2f.chunk.js.map", + "6496.7d9a792c.chunk.js.map": "./static/js/6496.7d9a792c.chunk.js.map", + "1687.2710a7fa.chunk.js.map": "./static/js/1687.2710a7fa.chunk.js.map" }, "entrypoints": [ "static/css/main.90d417ae.css", - "static/js/main.a0780f45.js" + "static/js/main.c1bfdfdb.js" ] } \ No newline at end of file diff --git a/portal-ui/build/index.html b/portal-ui/build/index.html index 2fb1aa7c6..9afa5db4a 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/1326.19aa2326.chunk.js b/portal-ui/build/static/js/1326.19aa2326.chunk.js new file mode 100644 index 000000000..85fea0427 --- /dev/null +++ b/portal-ui/build/static/js/1326.19aa2326.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1326,8760,9362,2879,3096],{26759:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),a=(0,r.default)((0,i.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=a},70366:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),a=(0,r.default)((0,i.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=a},93385:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),a=(0,r.default)((0,i.jsx)("path",{d:"M6.23 20.23 8 22l10-10L8 2 6.23 3.77 14.46 12z"}),"ArrowForwardIos");t.Z=a},29823:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),a=(0,r.default)((0,i.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");t.Z=a},97911:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),a=(0,r.default)((0,i.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=a},32686:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),a=(0,r.default)((0,i.jsx)("path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"}),"WatchLater");t.Z=a},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return k}});var o=n(4942),r=n(63366),i=n(87462),a=n(72791),c=n(90767),s=n(12065),l=n(97278),d=n(76189),u=n(80184),p=(0,d.Z)((0,u.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),v=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),f=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox"),m=n(14036),Z=n(93736),h=n(47630),b=n(95159);function x(e){return(0,b.Z)("MuiCheckbox",e)}var g=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),S=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],z=(0,h.ZP)(l.Z,{shouldForwardProp:function(e){return(0,h.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.indeterminate&&t.indeterminate,"default"!==n.color&&t["color".concat((0,m.Z)(n.color))]]}})((function(e){var t,n=e.theme,r=e.ownerState;return(0,i.Z)({color:n.palette.text.secondary},!r.disableRipple&&{"&:hover":{backgroundColor:(0,s.Fq)("default"===r.color?n.palette.action.active:n.palette[r.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==r.color&&(t={},(0,o.Z)(t,"&.".concat(g.checked,", &.").concat(g.indeterminate),{color:n.palette[r.color].main}),(0,o.Z)(t,"&.".concat(g.disabled),{color:n.palette.action.disabled}),t))})),w=(0,u.jsx)(v,{}),j=(0,u.jsx)(p,{}),y=(0,u.jsx)(f,{}),k=a.forwardRef((function(e,t){var n,o,s=(0,Z.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,d=void 0===l?w:l,p=s.color,v=void 0===p?"primary":p,f=s.icon,h=void 0===f?j:f,b=s.indeterminate,g=void 0!==b&&b,k=s.indeterminateIcon,P=void 0===k?y:k,M=s.inputProps,C=s.size,E=void 0===C?"medium":C,I=(0,r.Z)(s,S),L=g?P:h,A=g?P:d,R=(0,i.Z)({},s,{color:v,indeterminate:g,size:E}),H=function(e){var t=e.classes,n=e.indeterminate,o=e.color,r={root:["root",n&&"indeterminate","color".concat((0,m.Z)(o))]},a=(0,c.Z)(r,x,t);return(0,i.Z)({},t,a)}(R);return(0,u.jsx)(z,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":g},M),icon:a.cloneElement(L,{fontSize:null!=(n=L.props.fontSize)?n:E}),checkedIcon:a.cloneElement(A,{fontSize:null!=(o=A.props.fontSize)?o:E}),ownerState:R,ref:t},I,{classes:H}))}))},97123:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var o=n(63366),r=n(87462),i=n(72791),a=n(28182),c=n(90767),s=n(47630),l=n(93736),d=n(95159);function u(e){return(0,d.Z)("MuiDialogActions",e)}(0,n(30208).Z)("MuiDialogActions",["root","spacing"]);var p=n(80184),v=["className","disableSpacing"],f=(0,s.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(:first-of-type)":{marginLeft:8}})})),m=i.forwardRef((function(e,t){var n=(0,l.Z)({props:e,name:"MuiDialogActions"}),i=n.className,s=n.disableSpacing,d=void 0!==s&&s,m=(0,o.Z)(n,v),Z=(0,r.Z)({},n,{disableSpacing:d}),h=function(e){var t=e.classes,n={root:["root",!e.disableSpacing&&"spacing"]};return(0,c.Z)(n,u,t)}(Z);return(0,p.jsx)(f,(0,r.Z)({className:(0,a.Z)(h.root,i),ownerState:Z,ref:t},m))}))},63466:function(e,t,n){"use strict";n.d(t,{Z:function(){return z}});var o=n(4942),r=n(63366),i=n(87462),a=n(72791),c=n(28182),s=n(90767),l=n(14036),d=n(20890),u=n(93840),p=n(52930),v=n(47630),f=n(95159);function m(e){return(0,f.Z)("MuiInputAdornment",e)}var Z,h=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),b=n(93736),x=n(80184),g=["children","className","component","disablePointerEvents","disableTypography","position","variant"],S=(0,v.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["position".concat((0,l.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.palette.action.active},"filled"===n.variant&&(0,o.Z)({},"&.".concat(h.positionStart,"&:not(.").concat(h.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),z=a.forwardRef((function(e,t){var n=(0,b.Z)({props:e,name:"MuiInputAdornment"}),o=n.children,v=n.className,f=n.component,h=void 0===f?"div":f,z=n.disablePointerEvents,w=void 0!==z&&z,j=n.disableTypography,y=void 0!==j&&j,k=n.position,P=n.variant,M=(0,r.Z)(n,g),C=(0,p.Z)()||{},E=P;P&&C.variant,C&&!E&&(E=C.variant);var I=(0,i.Z)({},n,{hiddenLabel:C.hiddenLabel,size:C.size,disablePointerEvents:w,position:k,variant:E}),L=function(e){var t=e.classes,n=e.disablePointerEvents,o=e.hiddenLabel,r=e.position,i=e.size,a=e.variant,c={root:["root",n&&"disablePointerEvents",r&&"position".concat((0,l.Z)(r)),a,o&&"hiddenLabel",i&&"size".concat((0,l.Z)(i))]};return(0,s.Z)(c,m,t)}(I);return(0,x.jsx)(u.Z.Provider,{value:null,children:(0,x.jsx)(S,(0,i.Z)({as:h,ownerState:I,className:(0,c.Z)(L.root,v),ref:t},M,{children:"string"!==typeof o||y?(0,x.jsxs)(a.Fragment,{children:["start"===k?Z||(Z=(0,x.jsx)("span",{className:"notranslate",children:"\u200b"})):null,o]}):(0,x.jsx)(d.Z,{color:"text.secondary",children:o})}))})}))},26769:function(e,t,n){var o=n(39066),r=n(93629),i=n(43141);e.exports=function(e){return"string"==typeof e||!r(e)&&i(e)&&"[object String]"==o(e)}},45987:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var o=n(63366);function r(e,t){if(null==e)return{};var n,r,i=(0,o.Z)(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}}}]); +//# sourceMappingURL=1326.19aa2326.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1326.d157bb06.chunk.js.map b/portal-ui/build/static/js/1326.19aa2326.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/1326.d157bb06.chunk.js.map rename to portal-ui/build/static/js/1326.19aa2326.chunk.js.map index 41fe8be5b..4f1e73ac6 100644 --- a/portal-ui/build/static/js/1326.d157bb06.chunk.js.map +++ b/portal-ui/build/static/js/1326.19aa2326.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1326.d157bb06.chunk.js","mappings":"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","sources":["../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ArrowForwardIos.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/icons-material/WatchLater.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/DialogActions/dialogActionsClasses.js","../node_modules/@mui/material/DialogActions/DialogActions.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/lodash/isString.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"],"sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6.23 20.23 8 22l10-10L8 2 6.23 3.77 14.46 12z\"\n}), 'ArrowForwardIos');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z\"\n}), 'WatchLater');\n\nexports.default = _default;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDialogActionsUtilityClass(slot) {\n return generateUtilityClass('MuiDialogActions', slot);\n}\nconst dialogActionsClasses = generateUtilityClasses('MuiDialogActions', ['root', 'spacing']);\nexport default dialogActionsClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disableSpacing\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDialogActionsUtilityClass } from './dialogActionsClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableSpacing\n } = ownerState;\n const slots = {\n root: ['root', !disableSpacing && 'spacing']\n };\n return composeClasses(slots, getDialogActionsUtilityClass, classes);\n};\n\nconst DialogActionsRoot = styled('div', {\n name: 'MuiDialogActions',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableSpacing && styles.spacing];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'flex-end',\n flex: '0 0 auto'\n}, !ownerState.disableSpacing && {\n '& > :not(:first-of-type)': {\n marginLeft: 8\n }\n}));\nconst DialogActions = /*#__PURE__*/React.forwardRef(function DialogActions(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogActions'\n });\n\n const {\n className,\n disableSpacing = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n disableSpacing\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogActionsRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogActions.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the actions do not have additional margin.\n * @default false\n */\n disableSpacing: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogActions;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\n\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: theme.palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ?\n /* notranslate needed while Google Translate will not fix zero-width space issue */\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}"],"names":["_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","createSvgIcon","_jsx","getCheckboxUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CheckboxRoot","styled","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","name","overridesResolver","props","styles","ownerState","root","indeterminate","color","capitalize","theme","_extends","palette","text","secondary","disableRipple","backgroundColor","alpha","action","active","main","hoverOpacity","checkboxClasses","disabled","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","React","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","other","_objectWithoutPropertiesLoose","classes","slots","composedClasses","composeClasses","useUtilityClasses","type","fontSize","getDialogActionsUtilityClass","DialogActionsRoot","disableSpacing","spacing","display","alignItems","padding","justifyContent","flex","marginLeft","className","clsx","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","position","disablePointerEvents","variant","height","maxHeight","whiteSpace","inputAdornmentClasses","marginTop","marginRight","pointerEvents","children","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","value","as","_jsxs","Typography","baseGetTag","isArray","isObjectLike","module","_objectWithoutProperties","source","excluded","key","i","target","Object","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","prototype","propertyIsEnumerable","call"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1326.19aa2326.chunk.js","mappings":"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","sources":["../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ArrowForwardIos.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/icons-material/WatchLater.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/DialogActions/dialogActionsClasses.js","../node_modules/@mui/material/DialogActions/DialogActions.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/lodash/isString.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"],"sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6.23 20.23 8 22l10-10L8 2 6.23 3.77 14.46 12z\"\n}), 'ArrowForwardIos');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z\"\n}), 'WatchLater');\n\nexports.default = _default;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getDialogActionsUtilityClass(slot) {\n return generateUtilityClass('MuiDialogActions', slot);\n}\nconst dialogActionsClasses = generateUtilityClasses('MuiDialogActions', ['root', 'spacing']);\nexport default dialogActionsClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"disableSpacing\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDialogActionsUtilityClass } from './dialogActionsClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableSpacing\n } = ownerState;\n const slots = {\n root: ['root', !disableSpacing && 'spacing']\n };\n return composeClasses(slots, getDialogActionsUtilityClass, classes);\n};\n\nconst DialogActionsRoot = styled('div', {\n name: 'MuiDialogActions',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableSpacing && styles.spacing];\n }\n})(({\n ownerState\n}) => _extends({\n display: 'flex',\n alignItems: 'center',\n padding: 8,\n justifyContent: 'flex-end',\n flex: '0 0 auto'\n}, !ownerState.disableSpacing && {\n '& > :not(:first-of-type)': {\n marginLeft: 8\n }\n}));\nconst DialogActions = /*#__PURE__*/React.forwardRef(function DialogActions(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDialogActions'\n });\n\n const {\n className,\n disableSpacing = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n disableSpacing\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DialogActionsRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? DialogActions.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * If `true`, the actions do not have additional margin.\n * @default false\n */\n disableSpacing: PropTypes.bool,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default DialogActions;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\n\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: theme.palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ?\n /* notranslate needed while Google Translate will not fix zero-width space issue */\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}"],"names":["_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","createSvgIcon","_jsx","getCheckboxUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CheckboxRoot","styled","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","name","overridesResolver","props","styles","ownerState","root","indeterminate","color","capitalize","theme","_extends","palette","text","secondary","disableRipple","backgroundColor","alpha","action","active","main","hoverOpacity","checkboxClasses","disabled","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","React","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","size","other","_objectWithoutPropertiesLoose","classes","slots","composedClasses","composeClasses","useUtilityClasses","type","fontSize","getDialogActionsUtilityClass","DialogActionsRoot","disableSpacing","spacing","display","alignItems","padding","justifyContent","flex","marginLeft","className","clsx","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","position","disablePointerEvents","variant","height","maxHeight","whiteSpace","inputAdornmentClasses","marginTop","marginRight","pointerEvents","children","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","value","as","_jsxs","Typography","baseGetTag","isArray","isObjectLike","module","_objectWithoutProperties","source","excluded","key","i","target","Object","getOwnPropertySymbols","sourceSymbolKeys","length","indexOf","prototype","propertyIsEnumerable","call"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1326.d157bb06.chunk.js b/portal-ui/build/static/js/1326.d157bb06.chunk.js deleted file mode 100644 index dbe389027..000000000 --- a/portal-ui/build/static/js/1326.d157bb06.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1326,8760,9362,2879,3096,9729],{26759:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),a=(0,r.default)((0,i.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=a},70366:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),a=(0,r.default)((0,i.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=a},93385:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),a=(0,r.default)((0,i.jsx)("path",{d:"M6.23 20.23 8 22l10-10L8 2 6.23 3.77 14.46 12z"}),"ArrowForwardIos");t.Z=a},29823:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),a=(0,r.default)((0,i.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");t.Z=a},97911:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),a=(0,r.default)((0,i.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=a},32686:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),i=n(80184),a=(0,r.default)((0,i.jsx)("path",{d:"M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2zm4.2 14.2L11 13V7h1.5v5.2l4.5 2.7-.8 1.3z"}),"WatchLater");t.Z=a},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return k}});var o=n(4942),r=n(63366),i=n(87462),a=n(72791),c=n(90767),s=n(12065),l=n(97278),d=n(76189),u=n(80184),p=(0,d.Z)((0,u.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),v=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),f=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox"),m=n(14036),Z=n(93736),h=n(47630),b=n(95159);function x(e){return(0,b.Z)("MuiCheckbox",e)}var g=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),S=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],z=(0,h.ZP)(l.Z,{shouldForwardProp:function(e){return(0,h.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.indeterminate&&t.indeterminate,"default"!==n.color&&t["color".concat((0,m.Z)(n.color))]]}})((function(e){var t,n=e.theme,r=e.ownerState;return(0,i.Z)({color:n.palette.text.secondary},!r.disableRipple&&{"&:hover":{backgroundColor:(0,s.Fq)("default"===r.color?n.palette.action.active:n.palette[r.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==r.color&&(t={},(0,o.Z)(t,"&.".concat(g.checked,", &.").concat(g.indeterminate),{color:n.palette[r.color].main}),(0,o.Z)(t,"&.".concat(g.disabled),{color:n.palette.action.disabled}),t))})),w=(0,u.jsx)(v,{}),j=(0,u.jsx)(p,{}),y=(0,u.jsx)(f,{}),k=a.forwardRef((function(e,t){var n,o,s=(0,Z.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,d=void 0===l?w:l,p=s.color,v=void 0===p?"primary":p,f=s.icon,h=void 0===f?j:f,b=s.indeterminate,g=void 0!==b&&b,k=s.indeterminateIcon,P=void 0===k?y:k,M=s.inputProps,C=s.size,E=void 0===C?"medium":C,I=(0,r.Z)(s,S),L=g?P:h,A=g?P:d,R=(0,i.Z)({},s,{color:v,indeterminate:g,size:E}),H=function(e){var t=e.classes,n=e.indeterminate,o=e.color,r={root:["root",n&&"indeterminate","color".concat((0,m.Z)(o))]},a=(0,c.Z)(r,x,t);return(0,i.Z)({},t,a)}(R);return(0,u.jsx)(z,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":g},M),icon:a.cloneElement(L,{fontSize:null!=(n=L.props.fontSize)?n:E}),checkedIcon:a.cloneElement(A,{fontSize:null!=(o=A.props.fontSize)?o:E}),ownerState:R,ref:t},I,{classes:H}))}))},97123:function(e,t,n){"use strict";n.d(t,{Z:function(){return m}});var o=n(63366),r=n(87462),i=n(72791),a=n(28182),c=n(90767),s=n(47630),l=n(93736),d=n(95159);function u(e){return(0,d.Z)("MuiDialogActions",e)}(0,n(30208).Z)("MuiDialogActions",["root","spacing"]);var p=n(80184),v=["className","disableSpacing"],f=(0,s.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(:first-of-type)":{marginLeft:8}})})),m=i.forwardRef((function(e,t){var n=(0,l.Z)({props:e,name:"MuiDialogActions"}),i=n.className,s=n.disableSpacing,d=void 0!==s&&s,m=(0,o.Z)(n,v),Z=(0,r.Z)({},n,{disableSpacing:d}),h=function(e){var t=e.classes,n={root:["root",!e.disableSpacing&&"spacing"]};return(0,c.Z)(n,u,t)}(Z);return(0,p.jsx)(f,(0,r.Z)({className:(0,a.Z)(h.root,i),ownerState:Z,ref:t},m))}))},63466:function(e,t,n){"use strict";n.d(t,{Z:function(){return z}});var o=n(4942),r=n(63366),i=n(87462),a=n(72791),c=n(28182),s=n(90767),l=n(14036),d=n(20890),u=n(93840),p=n(52930),v=n(47630),f=n(95159);function m(e){return(0,f.Z)("MuiInputAdornment",e)}var Z,h=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),b=n(93736),x=n(80184),g=["children","className","component","disablePointerEvents","disableTypography","position","variant"],S=(0,v.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["position".concat((0,l.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.palette.action.active},"filled"===n.variant&&(0,o.Z)({},"&.".concat(h.positionStart,"&:not(.").concat(h.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),z=a.forwardRef((function(e,t){var n=(0,b.Z)({props:e,name:"MuiInputAdornment"}),o=n.children,v=n.className,f=n.component,h=void 0===f?"div":f,z=n.disablePointerEvents,w=void 0!==z&&z,j=n.disableTypography,y=void 0!==j&&j,k=n.position,P=n.variant,M=(0,r.Z)(n,g),C=(0,p.Z)()||{},E=P;P&&C.variant,C&&!E&&(E=C.variant);var I=(0,i.Z)({},n,{hiddenLabel:C.hiddenLabel,size:C.size,disablePointerEvents:w,position:k,variant:E}),L=function(e){var t=e.classes,n=e.disablePointerEvents,o=e.hiddenLabel,r=e.position,i=e.size,a=e.variant,c={root:["root",n&&"disablePointerEvents",r&&"position".concat((0,l.Z)(r)),a,o&&"hiddenLabel",i&&"size".concat((0,l.Z)(i))]};return(0,s.Z)(c,m,t)}(I);return(0,x.jsx)(u.Z.Provider,{value:null,children:(0,x.jsx)(S,(0,i.Z)({as:h,ownerState:I,className:(0,c.Z)(L.root,v),ref:t},M,{children:"string"!==typeof o||y?(0,x.jsxs)(a.Fragment,{children:["start"===k?Z||(Z=(0,x.jsx)("span",{className:"notranslate",children:"\u200b"})):null,o]}):(0,x.jsx)(d.Z,{color:"text.secondary",children:o})}))})}))},26769:function(e,t,n){var o=n(39066),r=n(93629),i=n(43141);e.exports=function(e){return"string"==typeof e||!r(e)&&i(e)&&"[object String]"==o(e)}},45987:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var o=n(63366);function r(e,t){if(null==e)return{};var n,r,i=(0,o.Z)(e,t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}}}]); -//# sourceMappingURL=1326.d157bb06.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1434.090dffbc.chunk.js b/portal-ui/build/static/js/1434.090dffbc.chunk.js new file mode 100644 index 000000000..e94bbd2aa --- /dev/null +++ b/portal-ui/build/static/js/1434.090dffbc.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1434,7015],{23804:function(e,t,n){n(72791);var a=n(11135),r=n(25787),s=n(61889),i=n(80184);t.Z=(0,r.Z)((function(e){return(0,a.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var t=e.classes,n=e.iconComponent,a=e.title,r=e.help;return(0,i.jsx)("div",{className:t.root,children:(0,i.jsxs)(s.ZP,{container:!0,children:[(0,i.jsxs)(s.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,a]}),(0,i.jsx)(s.ZP,{item:!0,xs:12,className:t.helpText,children:r})]})})}))},40603:function(e,t,n){var a=n(1413),r=n(45987),s=(n(72791),n(85531)),i=n(72455),o=n(80184),l=["onClick","text","disabled","tooltip","icon","className"],c=(0,i.Z)((function(e){return{root:{padding:"7px",color:function(t){return function(t){var n=t.variant,a=t.color,r=e.palette.primary.main;return"primary"===a&&"contained"===n?r=e.palette.primary.contrastText:"primary"===a&&"outlined"===n?r=e.palette.primary.main:"secondary"===a&&(r=e.palette.secondary.main),r}(t)},borderColor:function(t){return"secondary"===t.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));t.Z=function(e){var t=c(e),n=e.onClick,i=e.text,d=void 0===i?"":i,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,g=e.icon,f=void 0===g?null:g,h=e.className,x=void 0===h?"":h,y=(0,r.Z)(e,l);return(0,o.jsxs)(s.Z,(0,a.Z)((0,a.Z)({className:x,classes:t,tooltip:p||d,variant:"outlined",onClick:n,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},y),{},{children:[(0,o.jsx)("span",{children:d})," ",f]}))}},85531:function(e,t,n){var a=n(1413),r=n(4942),s=n(45987),i=(n(72791),n(11135)),o=n(25787),l=n(13400),c=n(20068),d=n(28182),u=n(80184),m=["classes","children","variant","tooltip"];t.Z=(0,o.Z)((function(e){return(0,i.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var t=e.classes,n=e.children,i=e.variant,o=void 0===i?"outlined":i,p=e.tooltip,g=(0,s.Z)(e,m),f=(0,u.jsx)(l.Z,(0,a.Z)((0,a.Z)({},g),{},{className:(0,d.Z)(t.root,(0,r.Z)({},t.contained,"contained"===o)),children:n}));return p&&""!==p?(0,u.jsx)(c.Z,{title:p,children:(0,u.jsx)("span",{children:f})}):f}))},37798:function(e,t,n){n.r(t),n.d(t,{default:function(){return Z}});var a=n(1413),r=n(72791),s=n(26181),i=n.n(s),o=n(11135),l=n(25787),c=n(56028),d=n(61889),u=n(77196),m=n(63466),p=n(85531),g=n(78029),f=n.n(g),h=n(13048),x=n(23814),y=n(80184),v=(0,l.Z)((function(e){return(0,o.Z)({container:{display:"flex",flexFlow:"column",padding:"20px 0 8px 0"},inputWithCopy:{"& .MuiInputBase-root ":{width:"100%",background:"#FBFAFA","& .MuiInputBase-input":{height:".8rem"},"& .MuiInputAdornment-positionEnd":{marginRight:".5rem","& .MuiButtonBase-root":{height:"2rem"}}},"& .MuiButtonBase-root .min-icon":{width:".8rem",height:".8rem"}},inputLabel:(0,a.Z)((0,a.Z)({},x.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var t=e.label,n=void 0===t?"":t,a=e.value,r=void 0===a?"":a,s=e.classes,i=void 0===s?{}:s;return(0,y.jsxs)("div",{className:i.container,children:[(0,y.jsxs)("div",{className:i.inputLabel,children:[n,":"]}),(0,y.jsx)("div",{className:i.inputWithCopy,children:(0,y.jsx)(u.Z,{value:r,readOnly:!0,endAdornment:(0,y.jsx)(m.Z,{position:"end",children:(0,y.jsx)(f(),{text:r,children:(0,y.jsx)(p.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,y.jsx)(h.TI,{})})})})})})]})})),C=n(89357),S=n(40603),j=function(e,t){var n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(t)),n.setAttribute("download",e),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)},Z=(0,l.Z)((function(e){return(0,o.Z)({warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}},credentialTitle:{padding:".8rem 0 0 0",fontWeight:600,fontSize:".9rem"},buttonContainer:{textAlign:"right",marginTop:"1rem"},credentialsPanel:{overflowY:"auto",maxHeight:350},promptTitle:{display:"flex",alignItems:"center"},buttonSpacer:{marginRight:".9rem"},promptIcon:{marginRight:".1rem",display:"flex",alignItems:"center",height:"2rem",width:"2rem"}})}))((function(e){var t=e.classes,n=e.newServiceAccount,s=e.open,o=e.closeModal,l=e.entity;if(!n)return null;var u=i()(n,"console",null),m=i()(n,"idp",!1);return(0,y.jsx)(c.Z,{modalOpen:s,onClose:function(){o()},title:(0,y.jsx)("div",{className:t.promptTitle,children:(0,y.jsxs)("div",{children:["New ",l," Created"]})}),titleIcon:(0,y.jsx)(h.tV,{}),children:(0,y.jsxs)(d.ZP,{container:!0,children:[(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:t.formScrollable,children:["A new ",l," has been created with the following details:",!m&&u&&(0,y.jsx)(r.Fragment,{children:(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:t.credentialsPanel,children:[(0,y.jsx)("div",{className:t.credentialTitle,children:"Console Credentials"}),Array.isArray(u)&&u.map((function(e,t){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(v,{label:"Access Key",value:e.accessKey}),(0,y.jsx)(v,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(u)&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(v,{label:"Access Key",value:u.accessKey}),(0,y.jsx)(v,{label:"Secret Key",value:u.secretKey})]})]})}),m?(0,y.jsx)("div",{className:t.warningBlock,children:"Please Login via the configured external identity provider."}):(0,y.jsxs)("div",{className:t.warningBlock,children:[(0,y.jsx)(C.Z,{}),(0,y.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:t.buttonContainer,children:!m&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(S.Z,{id:"download-button",tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",text:"Download for import",className:t.buttonSpacer,onClick:function(){var e={};u&&(e=Array.isArray(u)?u.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:u.url,accessKey:u.accessKey,secretKey:u.secretKey,api:"s3v4",path:"auto"});j("credentials.json",JSON.stringify((0,a.Z)({},e)))},icon:(0,y.jsx)(h._8,{}),variant:"contained",color:"primary"}),Array.isArray(u)&&u.length>1&&(0,y.jsx)(S.Z,{id:"download-all-button",tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",text:"Download all access credentials",className:t.buttonSpacer,onClick:function(){var e={};u&&(e=u.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));j("all_credentials.json",JSON.stringify((0,a.Z)({},e)))},icon:(0,y.jsx)(h._8,{}),variant:"contained",color:"primary"})]})})]})})}))},54639:function(e,t,n){n.d(t,{Z:function(){return C}});var a=n(70885),r=n(1413),s=n(72791),i=n(26181),o=n.n(i),l=n(61889),c=n(30829),d=n(20068),u=n(13400),m=n(99663),p=n(86711),g=n(11135),f=n(25787),h=n(23814),x=n(84570),y=n(22512),v=n(80184),C=(0,f.Z)((function(e){return(0,g.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},h.YI),h.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},h.bV),{},{inputLabel:(0,r.Z)((0,r.Z)({},h.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,r.Z)((0,r.Z)({},h.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var t=e.label,n=e.classes,r=e.onChange,i=e.id,g=e.name,f=e.disabled,h=void 0!==f&&f,C=e.tooltip,S=void 0===C?"":C,j=e.required,Z=e.error,b=void 0===Z?"":Z,_=e.accept,N=void 0===_?"":_,A=e.value,I=void 0===A?"":A,P=(0,s.useState)(!1),k=(0,a.Z)(P,2),T=k[0],w=k[1];return(0,v.jsx)(s.Fragment,{children:(0,v.jsxs)(l.ZP,{item:!0,xs:12,className:"".concat(n.fileInputField," ").concat(n.fieldBottom," ").concat(n.fieldContainer," ").concat(""!==b?n.errorInField:""),children:[""!==t&&(0,v.jsxs)(c.Z,{htmlFor:i,className:"".concat(""!==b?n.fieldLabelError:""," ").concat(n.inputLabel),children:[(0,v.jsxs)("span",{children:[t,j?"*":""]}),""!==S&&(0,v.jsx)("div",{className:n.tooltipContainer,children:(0,v.jsx)(d.Z,{title:S,placement:"top-start",children:(0,v.jsx)("div",{className:n.tooltip,children:(0,v.jsx)(x.Z,{})})})})]}),T||""===I?(0,v.jsxs)("div",{className:n.textBoxContainer,children:[(0,v.jsx)("input",{type:"file",name:g,onChange:function(e){var t=o()(e,"target.files[0].name","");!function(e,t){var n=e.target.files[0],a=new FileReader;a.readAsDataURL(n),a.onload=function(){var e=a.result;if(e){var n=e.toString().split("base64,");2===n.length&&t(n[1])}}}(e,(function(e){r(e,t)}))},accept:N,required:j,disabled:h,className:n.fileInputField}),""!==I&&(0,v.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){w(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,v.jsx)(p.Z,{})}),""!==b&&(0,v.jsx)(y.Z,{errorMessage:b})]}):(0,v.jsxs)("div",{className:n.fileReselect,children:[(0,v.jsx)("div",{className:n.valueString,children:I}),(0,v.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){w(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,v.jsx)(m.Z,{})})]})]})})}))},23508:function(e,t,n){var a=n(1413),r=n(72791),s=n(5574),i=n(65661),o=n(39157),l=n(97123),c=n(36151),d=n(59860),u=n(13400),m=n(29823),p=n(11135),g=n(25787),f=n(23814),h=n(80184);t.Z=(0,g.Z)((function(e){return(0,p.Z)((0,a.Z)({},f.Qw))}))((function(e){var t=e.isOpen,n=void 0!==t&&t,p=e.onClose,g=e.onCancel,f=e.onConfirm,x=e.classes,y=void 0===x?{}:x,v=e.title,C=void 0===v?"":v,S=e.isLoading,j=e.confirmationContent,Z=e.cancelText,b=void 0===Z?"Cancel":Z,_=e.confirmText,N=void 0===_?"Confirm":_,A=e.confirmButtonProps,I=void 0===A?{}:A,P=e.cancelButtonProps,k=void 0===P?{}:P,T=e.titleIcon,w=void 0===T?null:T;return(0,h.jsxs)(s.Z,{open:n,onClose:function(e,t){"backdropClick"!==t&&p()},className:y.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(i.Z,{className:y.title,children:[(0,h.jsxs)("div",{className:y.titleText,children:[w," ",C]}),(0,h.jsx)("div",{className:y.closeContainer,children:(0,h.jsx)(u.Z,{"aria-label":"close",className:y.closeButton,onClick:p,disableRipple:!0,size:"small",children:(0,h.jsx)(m.Z,{})})})]}),(0,h.jsx)(o.Z,{className:y.content,children:j}),(0,h.jsxs)(l.Z,{className:y.actions,children:[(0,h.jsx)(c.Z,(0,a.Z)((0,a.Z)({className:y.cancelButton,onClick:g||p,disabled:S,type:"button"},k),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:b})),(0,h.jsx)(d.Z,(0,a.Z)((0,a.Z)({className:y.confirmButton,type:"button",onClick:f,loading:S,disabled:S,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(r.Fragment,{}),autoFocus:!0,id:"confirm-ok"},I),{},{children:N}))]})]})}))},56028:function(e,t,n){var a=n(70885),r=n(1413),s=n(72791),i=n(60364),o=n(13400),l=n(55646),c=n(5574),d=n(65661),u=n(39157),m=n(11135),p=n(25787),g=n(23814),f=n(42649),h=n(29823),x=n(28057),y=n(80184),v=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:f.MK});t.Z=(0,p.Z)((function(e){return(0,m.Z)((0,r.Z)((0,r.Z)({},g.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},g.sN))}))(v((function(e){var t=e.onClose,n=e.modalOpen,i=e.title,m=e.children,p=e.classes,g=e.wideLimit,f=void 0===g||g,v=e.modalSnackMessage,C=e.noContentPadding,S=e.setModalSnackMessage,j=e.titleIcon,Z=void 0===j?null:j,b=(0,s.useState)(!1),_=(0,a.Z)(b,2),N=_[0],A=_[1];(0,s.useEffect)((function(){S("")}),[S]),(0,s.useEffect)((function(){if(v){if(""===v.message)return void A(!1);"error"!==v.type&&A(!0)}}),[v]);var I=f?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},P="";return v&&(P=v.detailedErrorMsg,(""===v.detailedErrorMsg||v.detailedErrorMsg.length<5)&&(P=v.message)),(0,y.jsxs)(c.Z,(0,r.Z)((0,r.Z)({open:n,classes:p},I),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:p.root,children:[(0,y.jsxs)(d.Z,{className:p.title,children:[(0,y.jsxs)("div",{className:p.titleText,children:[Z," ",i]}),(0,y.jsx)("div",{className:p.closeContainer,children:(0,y.jsx)(o.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,y.jsx)(h.Z,{})})})]}),(0,y.jsx)(x.Z,{isModal:!0}),(0,y.jsx)(l.Z,{open:N,className:p.snackBarModal,onClose:function(){A(!1),S("")},message:P,ContentProps:{className:"".concat(p.snackBar," ").concat(v&&"error"===v.type?p.errorSnackBar:"")},autoHideDuration:v&&"error"===v.type?1e4:5e3}),(0,y.jsx)(u.Z,{className:C?"":p.content,children:m})]}))})))},91434:function(e,t,n){n.r(t),n.d(t,{default:function(){return Te}});var a=n(70885),r=n(1413),s=n(72791),i=n(26181),o=n.n(i),l=n(60364),c=n(61889),d=n(40986),u=n(11135),m=n(25787),p=n(23814),g=n(81207),f=n(45248),h=n(28371),x=n(42649),y=n(76256),v=n(37798),C=n(75460),S=n(42982),j=n(10703),Z=n(84741),b=n(40968),_=n(37516),N=n(21435),A=n(80184),I=(0,l.$j)((function(e){return{exposeMinIO:e.tenants.createTenant.fields.configure.exposeMinIO,exposeConsole:e.tenants.createTenant.fields.configure.exposeConsole,tenantCustom:e.tenants.createTenant.fields.configure.tenantCustom,tenantSecurityContext:e.tenants.createTenant.fields.configure.tenantSecurityContext}}),{updateAddField:C.HM,isPageValid:C.NO}),P=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},tenantCustomizationFields:{marginLeft:30,width:"88%",margin:"auto"},containerItem:{marginRight:15},fieldGroup:(0,r.Z)((0,r.Z)({},p.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},fieldSpaceTop:{marginTop:15}},p.oO),p.AK))}))(I((function(e){var t=e.classes,n=e.exposeMinIO,i=e.exposeConsole,o=e.tenantCustom,l=e.updateAddField,d=e.isPageValid,u=e.tenantSecurityContext,m=(0,s.useState)({}),p=(0,a.Z)(m,2),g=p[0],f=p[1],h=(0,s.useCallback)((function(e,t){l("configure",e,t)}),[l]);(0,s.useEffect)((function(){var e=[];o&&(e=[].concat((0,S.Z)(e),[{fieldKey:"tenant_securityContext_runAsUser",required:!0,value:u.runAsUser,customValidation:""===u.runAsUser||parseInt(u.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"tenant_securityContext_runAsGroup",required:!0,value:u.runAsGroup,customValidation:""===u.runAsGroup||parseInt(u.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"tenant_securityContext_fsGroup",required:!0,value:u.fsGroup,customValidation:""===u.fsGroup||parseInt(u.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]));var t=(0,b.R)(e);d("configure",0===Object.keys(t).length),f(t)}),[d,o,u]);var x=function(e){f((0,Z.h)(g,e))};return(0,A.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,A.jsxs)("div",{className:t.headerElement,children:[(0,A.jsx)("h3",{className:t.h3Section,children:"Configure"}),(0,A.jsx)("span",{className:t.descriptionText,children:"Basic configurations for tenant management"})]}),(0,A.jsxs)("div",{className:t.headerElement,children:[(0,A.jsx)("h3",{className:t.h3Section,children:"Services"}),(0,A.jsx)("span",{className:t.descriptionText,children:"Whether the tenant's services should request an external IP via LoadBalancer service type."})]}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,A.jsx)(_.Z,{value:"expose_minio",id:"expose_minio",name:"expose_minio",checked:n,onChange:function(e){var t=e.target.checked;h("exposeMinIO",t)},label:"Expose MiniO Service"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,A.jsx)(_.Z,{value:"expose_console",id:"expose_console",name:"expose_console",checked:i,onChange:function(e){var t=e.target.checked;h("exposeConsole",t)},label:"Expose Console Service"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,A.jsx)(_.Z,{value:"tenantConfig",id:"tenant_configuration",name:"tenant_configuration",checked:o,onChange:function(e){var t=e.target.checked;h("tenantCustom",t)},label:"Security Context"})}),o&&(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.tenantCustomizationFields,children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"SecurityContext for MinIO"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:"".concat(t.configSectionItem),children:(0,A.jsxs)("div",{className:"".concat(t.multiContainer," ").concat(t.responsiveSectionItem),children:[(0,A.jsx)("div",{className:t.containerItem,children:(0,A.jsx)(N.Z,{type:"number",id:"tenant_securityContext_runAsUser",name:"tenant_securityContext_runAsUser",onChange:function(e){h("tenantSecurityContext",(0,r.Z)((0,r.Z)({},u),{},{runAsUser:e.target.value})),x("tenant_securityContext_runAsUser")},label:"Run As User",value:u.runAsUser,required:!0,error:g.tenant_securityContext_runAsUser||"",min:"0"})}),(0,A.jsx)("div",{className:t.containerItem,children:(0,A.jsx)(N.Z,{type:"number",id:"tenant_securityContext_runAsGroup",name:"tenant_securityContext_runAsGroup",onChange:function(e){h("tenantSecurityContext",(0,r.Z)((0,r.Z)({},u),{},{runAsGroup:e.target.value})),x("tenant_securityContext_runAsGroup")},label:"Run As Group",value:u.runAsGroup,required:!0,error:g.tenant_securityContext_runAsGroup||"",min:"0"})}),(0,A.jsx)("div",{className:t.containerItem,children:(0,A.jsx)(N.Z,{type:"number",id:"tenant_securityContext_fsGroup",name:"tenant_securityContext_fsGroup",onChange:function(e){h("tenantSecurityContext",(0,r.Z)((0,r.Z)({},u),{},{fsGroup:e.target.value})),x("tenant_securityContext_fsGroup")},label:"FsGroup",value:u.fsGroup,required:!0,error:g.tenant_securityContext_fsGroup||"",min:"0"})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,A.jsx)("div",{className:t.multiContainer,children:(0,A.jsx)(_.Z,{value:"tenantSecurityContextRunAsNonRoot",id:"tenant_securityContext_runAsNonRoot",name:"tenant_securityContext_runAsNonRoot",checked:u.runAsNonRoot,onChange:function(e){var t=e.target.checked;h("tenantSecurityContext",(0,r.Z)((0,r.Z)({},u),{},{runAsNonRoot:t}))},label:"Do not run as Root"})})})]})})]})}))),k=n(20068),T=n(13400),w=n(20890),R=n(22918),D=n(27247),F=n(83679),E=n(42419),K=n(51979),z=(0,l.$j)((function(e){return{idpSelection:e.tenants.createTenant.fields.identityProvider.idpSelection,accessKeys:e.tenants.createTenant.fields.identityProvider.accessKeys,secretKeys:e.tenants.createTenant.fields.identityProvider.secretKeys,openIDConfigurationURL:e.tenants.createTenant.fields.identityProvider.openIDConfigurationURL,openIDClientID:e.tenants.createTenant.fields.identityProvider.openIDClientID,openIDSecretID:e.tenants.createTenant.fields.identityProvider.openIDSecretID,openIDCallbackURL:e.tenants.createTenant.fields.identityProvider.openIDCallbackURL,openIDClaimName:e.tenants.createTenant.fields.identityProvider.openIDClaimName,openIDScopes:e.tenants.createTenant.fields.identityProvider.openIDScopes,ADURL:e.tenants.createTenant.fields.identityProvider.ADURL,ADSkipTLS:e.tenants.createTenant.fields.identityProvider.ADSkipTLS,ADServerInsecure:e.tenants.createTenant.fields.identityProvider.ADServerInsecure,ADGroupSearchBaseDN:e.tenants.createTenant.fields.identityProvider.ADGroupSearchBaseDN,ADGroupSearchFilter:e.tenants.createTenant.fields.identityProvider.ADGroupSearchFilter,ADUserDNs:e.tenants.createTenant.fields.identityProvider.ADUserDNs,ADLookupBindDN:e.tenants.createTenant.fields.identityProvider.ADLookupBindDN,ADLookupBindPassword:e.tenants.createTenant.fields.identityProvider.ADLookupBindPassword,ADUserDNSearchBaseDN:e.tenants.createTenant.fields.identityProvider.ADUserDNSearchBaseDN,ADUserDNSearchFilter:e.tenants.createTenant.fields.identityProvider.ADUserDNSearchFilter,ADServerStartTLS:e.tenants.createTenant.fields.identityProvider.ADServerStartTLS}}),{updateAddField:C.HM,isPageValid:C.NO}),G=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({shortened:{gridTemplateColumns:"auto auto 50px 50px",display:"grid",gridGap:15,marginBottom:10,"& input":{fontWeight:400}},buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},protocolRadioOptions:{display:"flex",flexFlow:"column",marginBottom:10,"& label":{fontSize:14},"& div":{display:"flex",flexFlow:"column",alignItems:"baseline"}},adUserDnRows:{display:"flex"}},p.QV),p.DF),p.oO),p.AK))}))(z((function(e){var t=e.classes,n=e.idpSelection,r=e.accessKeys,i=e.secretKeys,o=e.openIDConfigurationURL,l=e.openIDClientID,d=e.openIDSecretID,u=e.openIDCallbackURL,m=e.openIDClaimName,p=e.openIDScopes,g=e.ADURL,f=e.ADSkipTLS,h=e.ADServerInsecure,x=e.ADGroupSearchBaseDN,y=e.ADGroupSearchFilter,v=e.ADUserDNs,C=e.ADLookupBindDN,I=e.ADLookupBindPassword,P=e.ADUserDNSearchBaseDN,z=e.ADUserDNSearchFilter,G=e.ADServerStartTLS,U=e.updateAddField,L=e.isPageValid,M=(0,s.useState)({}),q=(0,a.Z)(M,2),V=q[0],B=q[1],O=(0,s.useCallback)((function(e,t){U("identityProvider",e,t)}),[U]),W=function(e,t){var n=(0,S.Z)(r);n[e]=t,O("accessKeys",n)},$=function(e,t){var n=(0,S.Z)(i);n[e]=t,O("secretKeys",n)},H=function(e,t){var n=(0,S.Z)(v);n[e]=t,O("ADUserDNs",n)},Q=function(e){B((0,Z.h)(V,e))};(0,s.useEffect)((function(){var e=[];if("Built-in"===n){e=(0,S.Z)(e);for(var t=0;t1&&(r.splice(n,1),i.splice(n,1),W(r.length-1,r[r.length-1]))},children:(0,A.jsx)(K.Z,{})})})}),(0,A.jsx)(k.Z,{title:"Randomize Credentials","aria-label":"add",children:(0,A.jsx)("div",{className:t.overlayAction,children:(0,A.jsx)(T.Z,{onClick:function(){W(n,(0,Z.z)(16)),$(n,(0,Z.z)(32))},size:"small",children:(0,A.jsx)(R.Z,{})})})})]})]})},"identityField-".concat(n.toString()))}))),"AD"===n&&(Y=v.map((function(e,n){return(0,A.jsx)(s.Fragment,{children:(0,A.jsxs)("div",{className:t.adUserDnRows,children:[(0,A.jsx)(N.Z,{id:"ad-userdn-".concat(n.toString()),label:"",placeholder:"",name:"ad-userdn-".concat(n.toString()),value:v[n],onChange:function(e){H(n,e.target.value),Q("ad-userdn-".concat(n.toString()))},index:n,error:V["ad-userdn-".concat(n.toString())]||""},"csv-ad-userdn-".concat(n.toString())),(0,A.jsxs)("div",{className:t.buttonTray,children:[(0,A.jsx)(k.Z,{title:"Add User","aria-label":"add",children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){v.push(""),H(v.length-1,"")},children:(0,A.jsx)(E.Z,{})})}),(0,A.jsx)(k.Z,{title:"Remove","aria-label":"add",children:(0,A.jsx)(T.Z,{size:"small",style:{marginLeft:16},onClick:function(){v.length>1&&(v.splice(n,1),W(v.length-1,v[v.length-1]))},children:(0,A.jsx)(D.Z,{})})})]})]})},"identityField-".concat(n.toString()))}))),(0,A.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,A.jsxs)("div",{className:t.headerElement,children:[(0,A.jsx)("h3",{className:t.h3Section,children:"Identity Provider"}),(0,A.jsx)("span",{className:t.descriptionText,children:"Access to the tenant can be controlled via an external Identity Manager."})]}),(0,A.jsxs)(c.ZP,{item:!0,xs:12,className:t.protocolRadioOptions,children:[(0,A.jsx)("label",{children:"Protocol"}),(0,A.jsx)(F.Z,{currentSelection:n,id:"idp-options",name:"idp-options",label:" ",onChange:function(e){O("idpSelection",e.target.value)},selectorOptions:[{label:"Built-in",value:"Built-in"},{label:"OpenID",value:"OpenID"},{label:"Active Directory",value:"AD"}]})]}),"Built-in"===n&&(0,A.jsxs)(s.Fragment,{children:["Add additional users",Y]}),"OpenID"===n&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"openID_CONFIGURATION_URL",name:"openID_CONFIGURATION_URL",onChange:function(e){O("openIDConfigurationURL",e.target.value),Q("openID_CONFIGURATION_URL")},label:"Configuration URL",value:o,placeholder:"https://your-identity-provider.com/.well-known/openid-configuration",error:V.openID_CONFIGURATION_URL||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"openID_clientID",name:"openID_clientID",onChange:function(e){O("openIDClientID",e.target.value),Q("openID_clientID")},label:"Client ID",value:l,error:V.openID_clientID||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"openID_secretID",name:"openID_secretID",onChange:function(e){O("openIDSecretID",e.target.value),Q("openID_secretID")},label:"Secret ID",value:d,error:V.openID_secretID||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"openID_callbackURL",name:"openID_callbackURL",onChange:function(e){O("openIDCallbackURL",e.target.value),Q("openID_callbackURL")},label:"Callback URL",value:u,placeholder:"https://your-console-endpoint:9443/oauth_callback",error:V.openID_callbackURL||""})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"openID_claimName",name:"openID_claimName",onChange:function(e){O("openIDClaimName",e.target.value),Q("openID_claimName")},label:"Claim Name",value:m,error:V.openID_claimName||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"openID_scopes",name:"openID_scopes",onChange:function(e){O("openIDScopes",e.target.value),Q("openID_scopes")},label:"Scopes",value:p})})]}),"AD"===n&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"AD_URL",name:"AD_URL",onChange:function(e){O("ADURL",e.target.value),Q("AD_URL")},label:"LDAP Server Address",value:g,placeholder:"ldap-server:636",error:V.AD_URL||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(_.Z,{value:"ad_skipTLS",id:"ad_skipTLS",name:"ad_skipTLS",checked:f,onChange:function(e){var t=e.target.checked;O("ADSkipTLS",t)},label:"Skip TLS Verification"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(_.Z,{value:"ad_serverInsecure",id:"ad_serverInsecure",name:"ad_serverInsecure",checked:h,onChange:function(e){var t=e.target.checked;O("ADServerInsecure",t)},label:"Server Insecure"})}),h?(0,A.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,A.jsx)(w.Z,{className:t.error,variant:"caption",display:"block",gutterBottom:!0,children:"Warning: All traffic with Active Directory will be unencrypted"}),(0,A.jsx)("br",{})]}):null,(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(_.Z,{value:"ad_serverStartTLS",id:"ad_serverStartTLS",name:"ad_serverStartTLS",checked:G,onChange:function(e){var t=e.target.checked;O("ADServerStartTLS",t)},label:"Start TLS connection to AD/LDAP server"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"ad_lookupBindDN",name:"ad_lookupBindDN",onChange:function(e){O("ADLookupBindDN",e.target.value),Q("ad_lookupBindDN")},label:"Lookup Bind DN",value:C,placeholder:"cn=admin,dc=min,dc=io",error:V.ad_lookupBindDN||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"ad_lookupBindPassword",name:"ad_lookupBindPassword",onChange:function(e){O("ADLookupBindPassword",e.target.value)},label:"Lookup Bind Password",value:I,placeholder:"admin"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"ad_userDNSearchBaseDN",name:"ad_userDNSearchBaseDN",onChange:function(e){O("ADUserDNSearchBaseDN",e.target.value)},label:"User DN Search Base DN",value:P,placeholder:"dc=min,dc=io"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"ad_userDNSearchFilter",name:"ad_userDNSearchFilter",onChange:function(e){O("ADUserDNSearchFilter",e.target.value)},label:"User DN Search Filter",value:z,placeholder:"(sAMAcountName=%s)"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"ad_groupSearchBaseDN",name:"ad_groupSearchBaseDN",onChange:function(e){O("ADGroupSearchBaseDN",e.target.value)},label:"Group Search Base DN",value:x,placeholder:"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"ad_groupSearchFilter",name:"ad_groupSearchFilter",onChange:function(e){O("ADGroupSearchFilter",e.target.value)},label:"Group Search Filter",value:y,placeholder:"(&(objectclass=groupOfNames)(member=%s))"})}),(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"List of user DNs (Distinguished Names) to be Tenant Administrators"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:Y})]})]})]})}))),U=n(54639),L=n(47919),M=(0,l.$j)((function(e){return{enableTLS:e.tenants.createTenant.fields.security.enableTLS,enableAutoCert:e.tenants.createTenant.fields.security.enableAutoCert,enableCustomCerts:e.tenants.createTenant.fields.security.enableCustomCerts,minioCertificates:e.tenants.createTenant.certificates.minioCertificates,caCertificates:e.tenants.createTenant.certificates.caCertificates}}),{updateAddField:C.HM,isPageValid:C.NO,addFileToCaCertificates:C.Eq,deleteCaCertificate:C.IG,addCaCertificate:C.fK,addKeyPair:C.Mg,addFileToKeyPair:C.aN,deleteKeyPair:C.XX}),q=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)({minioCertificateRows:{display:"flex",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","&:last-child":{borderBottom:0},"@media (max-width: 900px)":{flex:1}},fileItem:{marginRight:10,display:"flex","& div label":{minWidth:50},"@media (max-width: 900px)":{flexFlow:"column"}},minioCertsContainer:{marginBottom:15},minioCACertsRow:{display:"flex",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","&:last-child":{borderBottom:0},"@media (max-width: 900px)":{flex:1,"& div label":{minWidth:50}}},rowActions:{display:"flex",justifyContent:"flex-end","@media (max-width: 900px)":{flex:1}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},p.QV),p.oO),p.AK))}))(M((function(e){var t=e.classes,n=e.enableTLS,a=e.enableAutoCert,r=e.enableCustomCerts,i=e.minioCertificates,o=e.caCertificates,l=e.updateAddField,d=e.isPageValid,u=e.addFileToCaCertificates,m=e.deleteCaCertificate,p=e.addCaCertificate,g=e.addKeyPair,f=e.addFileToKeyPair,h=e.deleteKeyPair,x=(0,s.useCallback)((function(e,t){l("security",e,t)}),[l]);return(0,s.useEffect)((function(){d("security",!n||(!!a||!!r))}),[n,a,r,d]),(0,A.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,A.jsx)("div",{className:t.headerElement,children:(0,A.jsx)("h3",{className:t.h3Section,children:"Security"})}),(0,A.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,A.jsx)(_.Z,{value:"enableTLS",id:"enableTLS",name:"enableTLS",checked:n,onChange:function(e){var t=e.target.checked;x("enableTLS",t)},label:"Enable TLS"}),"Enable TLS for the tenant, this is required for Encryption Configuration",n&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)("br",{}),(0,A.jsx)("br",{}),(0,A.jsx)(w.Z,{variant:"caption",display:"block",gutterBottom:!0,children:"AutoCert: MinIO Operator will generate all TLS certificates automatically"}),(0,A.jsx)(w.Z,{variant:"caption",display:"block",gutterBottom:!0,children:"Custom certificates: Allow user to provide your own certificates"}),(0,A.jsx)("br",{})]})]}),n&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,A.jsx)(_.Z,{value:"enableAutoCert",id:"enableAutoCert",name:"enableAutoCert",checked:a,onChange:function(e){var t=e.target.checked;x("enableAutoCert",t)},label:"Enable AutoCert"}),(0,A.jsx)(_.Z,{value:"enableCustomCerts",id:"enableCustomCerts",name:"enableCustomCerts",checked:r,onChange:function(e){var t=e.target.checked;x("enableCustomCerts",t)},label:"Custom Certificates"})]}),r&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{container:!0,children:(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.minioCertsContainer,children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"MinIO Certificates"}),i.map((function(e){return(0,A.jsxs)(c.ZP,{item:!0,xs:12,className:t.minioCertificateRows,children:[(0,A.jsxs)(c.ZP,{item:!0,xs:10,className:t.fileItem,children:[(0,A.jsx)(U.Z,{onChange:function(t,n){f(e.id,"cert",n,t)},accept:".cer,.crt,.cert,.pem",id:"tlsCert",name:"tlsCert",label:"Cert",value:e.cert}),(0,A.jsx)(U.Z,{onChange:function(t,n){f(e.id,"key",n,t)},accept:".key,.pem",id:"tlsKey",name:"tlsKey",label:"Key",value:e.key})]}),(0,A.jsxs)(c.ZP,{item:!0,xs:2,className:t.rowActions,children:[(0,A.jsx)("div",{className:t.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:g,children:(0,A.jsx)(L.Z,{})})}),(0,A.jsx)("div",{className:t.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){h(e.id)},children:(0,A.jsx)(K.Z,{})})})]})]},"minio-certs-".concat(e.id))}))]})})}),(0,A.jsx)(c.ZP,{container:!0,children:(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.minioCertsContainer,children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"MinIO CA Certificates"}),o.map((function(e){return(0,A.jsxs)(c.ZP,{item:!0,xs:12,className:t.minioCACertsRow,children:[(0,A.jsx)(c.ZP,{item:!0,xs:6,children:(0,A.jsx)(U.Z,{onChange:function(t,n){u(e.id,"cert",n,t)},accept:".cer,.crt,.cert,.pem",id:"tlsCert",name:"tlsCert",label:"Cert",value:e.cert})}),(0,A.jsx)(c.ZP,{item:!0,xs:6,children:(0,A.jsxs)("div",{className:t.rowActions,children:[(0,A.jsx)("div",{className:t.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:p,children:(0,A.jsx)(L.Z,{})})}),(0,A.jsx)("div",{className:t.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){m(e.id)},children:(0,A.jsx)(K.Z,{})})})]})})]},"minio-CA-certs-".concat(e.id))}))]})})})]})]})]})}))),V=(0,l.$j)((function(e){return{replicas:e.tenants.createTenant.fields.encryption.replicas,enableEncryption:e.tenants.createTenant.fields.encryption.enableEncryption,encryptionType:e.tenants.createTenant.fields.encryption.encryptionType,gemaltoEndpoint:e.tenants.createTenant.fields.encryption.gemaltoEndpoint,gemaltoToken:e.tenants.createTenant.fields.encryption.gemaltoToken,gemaltoDomain:e.tenants.createTenant.fields.encryption.gemaltoDomain,gemaltoRetry:e.tenants.createTenant.fields.encryption.gemaltoRetry,awsEndpoint:e.tenants.createTenant.fields.encryption.awsEndpoint,awsRegion:e.tenants.createTenant.fields.encryption.awsRegion,awsKMSKey:e.tenants.createTenant.fields.encryption.awsKMSKey,awsAccessKey:e.tenants.createTenant.fields.encryption.awsAccessKey,awsSecretKey:e.tenants.createTenant.fields.encryption.awsSecretKey,awsToken:e.tenants.createTenant.fields.encryption.awsToken,vaultEndpoint:e.tenants.createTenant.fields.encryption.vaultEndpoint,vaultEngine:e.tenants.createTenant.fields.encryption.vaultEngine,vaultNamespace:e.tenants.createTenant.fields.encryption.vaultNamespace,vaultPrefix:e.tenants.createTenant.fields.encryption.vaultPrefix,vaultAppRoleEngine:e.tenants.createTenant.fields.encryption.vaultAppRoleEngine,vaultId:e.tenants.createTenant.fields.encryption.vaultId,vaultSecret:e.tenants.createTenant.fields.encryption.vaultSecret,vaultRetry:e.tenants.createTenant.fields.encryption.vaultRetry,vaultPing:e.tenants.createTenant.fields.encryption.vaultPing,azureEndpoint:e.tenants.createTenant.fields.encryption.azureEndpoint,azureTenantID:e.tenants.createTenant.fields.encryption.azureTenantID,azureClientID:e.tenants.createTenant.fields.encryption.azureClientID,azureClientSecret:e.tenants.createTenant.fields.encryption.azureClientSecret,gcpProjectID:e.tenants.createTenant.fields.encryption.gcpProjectID,gcpEndpoint:e.tenants.createTenant.fields.encryption.gcpEndpoint,gcpClientEmail:e.tenants.createTenant.fields.encryption.gcpClientEmail,gcpClientID:e.tenants.createTenant.fields.encryption.gcpClientID,gcpPrivateKeyID:e.tenants.createTenant.fields.encryption.gcpPrivateKeyID,gcpPrivateKey:e.tenants.createTenant.fields.encryption.gcpPrivateKey,enableCustomCertsForKES:e.tenants.createTenant.fields.encryption.enableCustomCertsForKES,enableAutoCert:e.tenants.createTenant.fields.security.enableAutoCert,enableTLS:e.tenants.createTenant.fields.security.enableTLS,minioCertificates:e.tenants.createTenant.certificates.minioCertificates,serverCertificate:e.tenants.createTenant.certificates.serverCertificate,clientCertificate:e.tenants.createTenant.certificates.clientCertificate,vaultCertificate:e.tenants.createTenant.certificates.vaultCertificate,vaultCA:e.tenants.createTenant.certificates.vaultCA,gemaltoCA:e.tenants.createTenant.certificates.gemaltoCA,enableCustomCerts:e.tenants.createTenant.fields.security.enableCustomCerts,kesSecurityContext:e.tenants.createTenant.fields.encryption.kesSecurityContext}}),{updateAddField:C.HM,isPageValid:C.NO,addFileServerCert:C.$1,addFileClientCert:C.BI,addFileVaultCert:C.cl,addFileVaultCa:C.fk,addFileGemaltoCa:C.MX}),B=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({encryptionTypeOptions:{marginBottom:15},mutualTlsConfig:{marginTop:15,"& fieldset":{flex:1}},rightSpacer:{marginRight:15},responsiveContainer:{"@media (max-width: 900px)":{display:"flex",flexFlow:"column"}}},p.QV),p.DF),p.oO),p.AK))}))(V((function(e){var t=e.classes,n=e.updateAddField,i=e.isPageValid,o=e.addFileServerCert,l=e.addFileClientCert,d=e.addFileVaultCert,u=e.addFileVaultCa,m=e.addFileGemaltoCa,p=e.enableEncryption,g=e.enableCustomCerts,f=e.encryptionType,h=e.gemaltoEndpoint,x=e.gemaltoToken,y=e.gemaltoDomain,v=e.gemaltoRetry,C=e.awsEndpoint,I=e.awsRegion,P=e.awsKMSKey,k=e.awsAccessKey,T=e.awsSecretKey,w=e.awsToken,R=e.vaultEndpoint,D=e.vaultEngine,E=e.vaultNamespace,K=e.vaultPrefix,z=e.vaultAppRoleEngine,G=e.vaultId,L=e.vaultSecret,M=e.vaultRetry,q=e.vaultPing,V=e.azureEndpoint,B=e.azureTenantID,O=e.azureClientID,W=e.azureClientSecret,$=e.gcpProjectID,H=e.gcpEndpoint,Q=e.gcpClientEmail,Y=e.gcpClientID,J=e.gcpPrivateKeyID,X=e.gcpPrivateKey,ee=e.enableCustomCertsForKES,te=e.enableAutoCert,ne=e.enableTLS,ae=e.minioCertificates,re=e.serverCertificate,se=e.clientCertificate,ie=e.vaultCertificate,oe=e.vaultCA,le=e.gemaltoCA,ce=e.kesSecurityContext,de=e.replicas,ue=(0,s.useState)({}),me=(0,a.Z)(ue,2),pe=me[0],ge=me[1],fe=!1;ne&&(te||ae&&ae.filter((function(e){return e.encoded_key&&e.encoded_cert})).length>0)&&(fe=!0);var he=(0,s.useCallback)((function(e,t){n("encryption",e,t)}),[n]),xe=function(e){ge((0,Z.h)(pe,e))};return(0,s.useEffect)((function(){var e=[];p&&(e=[].concat((0,S.Z)(e),[{fieldKey:"replicas",required:!0,value:de,customValidation:parseInt(de)<1,customValidationMessage:"Replicas needs to be 1 or greater"},{fieldKey:"kes_securityContext_runAsUser",required:!0,value:ce.runAsUser,customValidation:""===ce.runAsUser||parseInt(ce.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"kes_securityContext_runAsGroup",required:!0,value:ce.runAsGroup,customValidation:""===ce.runAsGroup||parseInt(ce.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"kes_securityContext_fsGroup",required:!0,value:ce.fsGroup,customValidation:""===ce.fsGroup||parseInt(ce.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]),g&&(e=[].concat((0,S.Z)(e),[{fieldKey:"serverKey",required:!te,value:re.encoded_key},{fieldKey:"serverCert",required:!te,value:re.encoded_cert},{fieldKey:"clientKey",required:!te,value:se.encoded_key},{fieldKey:"clientCert",required:!te,value:se.encoded_cert}])),"vault"===f&&(e=[].concat((0,S.Z)(e),[{fieldKey:"vault_endpoint",required:!0,value:R},{fieldKey:"vault_id",required:!0,value:G},{fieldKey:"vault_secret",required:!0,value:L},{fieldKey:"vault_ping",required:!1,value:q,customValidation:parseInt(q)<0,customValidationMessage:"Value needs to be 0 or greater"},{fieldKey:"vault_retry",required:!1,value:M,customValidation:parseInt(M)<0,customValidationMessage:"Value needs to be 0 or greater"}])),"aws"===f&&(e=[].concat((0,S.Z)(e),[{fieldKey:"aws_endpoint",required:!0,value:C},{fieldKey:"aws_region",required:!0,value:I},{fieldKey:"aws_accessKey",required:!0,value:k},{fieldKey:"aws_secretKey",required:!0,value:T}])),"gemalto"===f&&(e=[].concat((0,S.Z)(e),[{fieldKey:"gemalto_endpoint",required:!0,value:h},{fieldKey:"gemalto_token",required:!0,value:x},{fieldKey:"gemalto_domain",required:!0,value:y},{fieldKey:"gemalto_retry",required:!1,value:v,customValidation:parseInt(v)<0,customValidationMessage:"Value needs to be 0 or greater"}])),"azure"===f&&(e=[].concat((0,S.Z)(e),[{fieldKey:"azure_endpoint",required:!0,value:V},{fieldKey:"azure_tenant_id",required:!0,value:B},{fieldKey:"azure_client_id",required:!0,value:O},{fieldKey:"azure_client_secret",required:!0,value:W}])));var t=(0,b.R)(e);i("encryption",0===Object.keys(t).length),ge(t)}),[p,f,R,D,G,L,q,M,C,I,T,k,h,x,y,v,$,H,Q,Y,J,X,V,B,O,W,i,te,g,re.encoded_key,re.encoded_cert,se.encoded_key,se.encoded_cert,ce,de]),(0,A.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,A.jsxs)("div",{className:t.headerElement,children:[(0,A.jsx)("h3",{className:t.h3Section,children:"Encryption"}),(0,A.jsx)("span",{className:t.descriptionText,children:"How would you like to encrypt the information at rest."})]}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(_.Z,{value:"enableEncryption",id:"enableEncryption",name:"enableEncryption",checked:p,onChange:function(e){var t=e.target.checked;he("enableEncryption",t)},label:"Enable Server Side Encryption",disabled:!fe})}),p&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.encryptionTypeOptions,children:(0,A.jsx)(F.Z,{currentSelection:f,id:"encryptionType",name:"encryptionType",label:"Encryption Options",onChange:function(e){he("encryptionType",e.target.value)},selectorOptions:[{label:"Vault",value:"vault"},{label:"AWS",value:"aws"},{label:"Gemalto",value:"gemalto"},{label:"GCP",value:"gcp"},{label:"Azure",value:"azure"}]})}),"vault"===f&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"vault_endpoint",name:"vault_endpoint",onChange:function(e){he("vaultEndpoint",e.target.value),xe("vault_endpoint")},label:"Endpoint",value:R,error:pe.vault_endpoint||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"vault_engine",name:"vault_engine",onChange:function(e){he("vaultEngine",e.target.value),xe("vault_engine")},label:"Engine",value:D})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"vault_namespace",name:"vault_namespace",onChange:function(e){he("vaultNamespace",e.target.value)},label:"Namespace",value:E})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"vault_prefix",name:"vault_prefix",onChange:function(e){he("vaultPrefix",e.target.value)},label:"Prefix",value:K})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"App Role"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"vault_approle_engine",name:"vault_approle_engine",onChange:function(e){he("vaultAppRoleEngine",e.target.value)},label:"Engine",value:z})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"vault_id",name:"vault_id",onChange:function(e){he("vaultId",e.target.value),xe("vault_id")},label:"AppRole ID",value:G,error:pe.vault_id||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"vault_secret",name:"vault_secret",onChange:function(e){he("vaultSecret",e.target.value),xe("vault_secret")},label:"AppRole Secret",value:L,error:pe.vault_secret||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{type:"number",min:"0",id:"vault_retry",name:"vault_retry",onChange:function(e){he("vaultRetry",e.target.value),xe("vault_retry")},label:"Retry (Seconds)",value:M,error:pe.vault_retry||""})})]})}),(0,A.jsx)(c.ZP,{container:!0,className:t.mutualTlsConfig,children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"Mutual TLS authentication (optional)"}),(0,A.jsx)(U.Z,{onChange:function(e,t){d("key",t,e),xe("vault_key")},accept:".key,.pem",id:"vault_key",name:"vault_key",label:"Key",value:ie.key}),(0,A.jsx)(U.Z,{onChange:function(e,t){d("cert",t,e),xe("vault_cert")},accept:".cer,.crt,.cert,.pem",id:"vault_cert",name:"vault_cert",label:"Cert",value:ie.cert}),(0,A.jsx)(U.Z,{onChange:function(e,t){u(t,e),xe("vault_ca")},accept:".cer,.crt,.cert,.pem",id:"vault_ca",name:"vault_ca",label:"CA",value:oe.cert})]})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,style:{marginTop:15},children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"Status"}),(0,A.jsx)(N.Z,{type:"number",min:"0",id:"vault_ping",name:"vault_ping",onChange:function(e){he("vaultPing",e.target.value),xe("vault_ping")},label:"Ping (Seconds)",value:q,error:pe.vault_ping||""})]})})]}),"azure"===f&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"azure_endpoint",name:"azure_endpoint",onChange:function(e){he("azureEndpoint",e.target.value),xe("azure_endpoint")},label:"Endpoint",value:V,error:pe.azure_endpoint||""})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"Credentials"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"azure_tenant_id",name:"azure_tenant_id",onChange:function(e){he("azureTenantID",e.target.value),xe("azure_tenant_id")},label:"Tenant ID",value:B,error:pe.azure_tenant_id||""})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"azure_client_id",name:"azure_client_id",onChange:function(e){he("azureClientID",e.target.value),xe("azure_client_id")},label:"Client ID",value:O,error:pe.azure_client_id||""})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"azure_client_secret",name:"azure_client_secret",onChange:function(e){he("azureClientSecret",e.target.value),xe("azure_client_secret")},label:"Client Secret",value:W,error:pe.azure_client_secret||""})})]})})]}),"gcp"===f&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"gcp_project_id",name:"gcp_project_id",onChange:function(e){he("gcpProjectID",e.target.value)},label:"Project ID",value:$})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"gcp_endpoint",name:"gcp_endpoint",onChange:function(e){he("gcpEndpoint",e.target.value)},label:"Endpoint",value:H})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"Credentials"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"gcp_client_email",name:"gcp_client_email",onChange:function(e){he("gcpClientEmail",e.target.value)},label:"Client Email",value:Q})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"gcp_client_id",name:"gcp_client_id",onChange:function(e){he("gcpClientID",e.target.value)},label:"Client ID",value:Y})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"gcp_private_key_id",name:"gcp_private_key_id",onChange:function(e){he("gcpPrivateKeyID",e.target.value)},label:"Private Key ID",value:J})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"gcp_private_key",name:"gcp_private_key",onChange:function(e){he("gcpPrivateKey",e.target.value)},label:"Private Key",value:X})})]})})]}),"aws"===f&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"aws_endpoint",name:"aws_endpoint",onChange:function(e){he("awsEndpoint",e.target.value),xe("aws_endpoint")},label:"Endpoint",value:C,error:pe.aws_endpoint||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"aws_region",name:"aws_region",onChange:function(e){he("awsRegion",e.target.value),xe("aws_region")},label:"Region",value:I,error:pe.aws_region||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"aws_kmsKey",name:"aws_kmsKey",onChange:function(e){he("awsKMSKey",e.target.value)},label:"KMS Key",value:P})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"Credentials"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"aws_accessKey",name:"aws_accessKey",onChange:function(e){he("awsAccessKey",e.target.value),xe("aws_accessKey")},label:"Access Key",value:k,error:pe.aws_accessKey||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"aws_secretKey",name:"aws_secretKey",onChange:function(e){he("awsSecretKey",e.target.value),xe("aws_secretKey")},label:"Secret Key",value:T,error:pe.aws_secretKey||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"aws_token",name:"aws_token",onChange:function(e){he("awsToken",e.target.value)},label:"Token",value:w})})]})})]}),"gemalto"===f&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"gemalto_endpoint",name:"gemalto_endpoint",onChange:function(e){he("gemaltoEndpoint",e.target.value),xe("gemalto_endpoint")},label:"Endpoint",value:h,error:pe.gemalto_endpoint||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"Credentials"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"gemalto_token",name:"gemalto_token",onChange:function(e){he("gemaltoToken",e.target.value),xe("gemalto_token")},label:"Token",value:x,error:pe.gemalto_token||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"gemalto_domain",name:"gemalto_domain",onChange:function(e){he("gemaltoDomain",e.target.value),xe("gemalto_domain")},label:"Domain",value:y,error:pe.gemalto_domain||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{type:"number",min:"0",id:"gemalto_retry",name:"gemalto_retry",onChange:function(e){he("gemaltoRetry",e.target.value),xe("gemalto_retry")},label:"Retry (seconds)",value:v,error:pe.gemalto_retry||""})})]})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"Custom CA Root certificate verification"}),(0,A.jsx)(U.Z,{onChange:function(e,t){m(t,e),xe("gemalto_ca")},accept:".cer,.crt,.cert,.pem",id:"gemalto_ca",name:"gemalto_ca",label:"CA",value:le.cert})]})})]}),(0,A.jsx)("div",{className:t.headerElement,children:(0,A.jsx)("h4",{className:t.h3Section,children:"Additional Configurations"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(_.Z,{value:"enableCustomCertsForKES",id:"enableCustomCertsForKES",name:"enableCustomCertsForKES",checked:ee||!te,onChange:function(e){var t=e.target.checked;he("enableCustomCertsForKES",t)},label:"Custom Certificates",disabled:!te})}),(ee||!te)&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{container:!0,children:(0,A.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"Encryption Service Certificates"}),(0,A.jsx)(U.Z,{onChange:function(e,t){o("key",t,e),xe("serverKey")},accept:".key,.pem",id:"serverKey",name:"serverKey",label:"Key",error:pe.serverKey||"",value:re.key,required:!te}),(0,A.jsx)(U.Z,{onChange:function(e,t){o("cert",t,e),xe("serverCert")},accept:".cer,.crt,.cert,.pem",id:"serverCert",name:"serverCert",label:"Cert",error:pe.serverCert||"",value:re.cert,required:!te})]})})}),(0,A.jsx)(c.ZP,{container:!0,style:{marginBottom:15},children:(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"Mutual TLS authentication with MinIO"}),(0,A.jsx)(U.Z,{onChange:function(e,t){l("key",t,e),xe("clientKey")},accept:".key,.pem",id:"clientKey",name:"clientKey",label:"Key",error:pe.clientKey||"",value:se.key,required:!te}),(0,A.jsx)(U.Z,{onChange:function(e,t){l("cert",t,e),xe("clientCert")},accept:".cer,.crt,.cert,.pem",id:"clientCert",name:"clientCert",label:"Cert",error:pe.clientCert||"",value:se.cert,required:!te})]})})})]}),(0,A.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,classes:t.formFieldRow,children:(0,A.jsx)(N.Z,{type:"number",min:"1",id:"replicas",name:"replicas",onChange:function(e){he("replicas",e.target.value),xe("replicas")},label:"Replicas",value:de,required:!0,error:pe.replicas||""})}),(0,A.jsxs)("fieldset",{className:t.fieldGroup,style:{marginTop:15},children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"SecurityContext for KES pods"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.kesSecurityContext,children:(0,A.jsxs)("div",{className:"".concat(t.multiContainer," ").concat(t.responsiveContainer),children:[(0,A.jsx)("div",{className:"".concat(t.formFieldRow," ").concat(t.rightSpacer),children:(0,A.jsx)(N.Z,{type:"number",id:"kes_securityContext_runAsUser",name:"kes_securityContext_runAsUser",onChange:function(e){he("kesSecurityContext",(0,r.Z)((0,r.Z)({},ce),{},{runAsUser:e.target.value})),xe("kes_securityContext_runAsUser")},label:"Run As User",value:ce.runAsUser,required:!0,error:pe.kes_securityContext_runAsUser||"",min:"0"})}),(0,A.jsx)("div",{className:"".concat(t.formFieldRow," ").concat(t.rightSpacer),children:(0,A.jsx)(N.Z,{type:"number",id:"kes_securityContext_runAsGroup",name:"kes_securityContext_runAsGroup",onChange:function(e){he("kesSecurityContext",(0,r.Z)((0,r.Z)({},ce),{},{runAsGroup:e.target.value})),xe("kes_securityContext_runAsGroup")},label:"Run As Group",value:ce.runAsGroup,required:!0,error:pe.kes_securityContext_runAsGroup||"",min:"0"})}),(0,A.jsx)("div",{className:"".concat(t.formFieldRow," ").concat(t.rightSpacer),children:(0,A.jsx)(N.Z,{type:"number",id:"kes_securityContext_fsGroup",name:"kes_securityContext_fsGroup",onChange:function(e){he("kesSecurityContext",(0,r.Z)((0,r.Z)({},ce),{},{fsGroup:e.target.value})),xe("kes_securityContext_fsGroup")},label:"FsGroup",value:ce.fsGroup,required:!0,error:pe.kes_securityContext_fsGroup||"",min:"0"})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("div",{className:t.multiContainer,children:(0,A.jsx)(_.Z,{value:"kesSecurityContextRunAsNonRoot",id:"kes_securityContext_runAsNonRoot",name:"kes_securityContext_runAsNonRoot",checked:ce.runAsNonRoot,onChange:function(e){var t=e.target.checked;he("kesSecurityContext",(0,r.Z)((0,r.Z)({},ce),{},{runAsNonRoot:t}))},label:"Do not run as Root"})})})]})]})]})]})}))),O=n(4942),W=n(90673),$=n(45660),H=(0,l.$j)((function(e){var t=e.tenants.createTenant;return{podAffinity:t.fields.affinity.podAffinity,nodeSelectorLabels:t.fields.affinity.nodeSelectorLabels,withPodAntiAffinity:t.fields.affinity.withPodAntiAffinity,keyValuePairs:t.nodeSelectorPairs,tolerations:t.tolerations}}),{setModalErrorSnackMessage:x.zb,updateAddField:C.HM,isPageValid:C.NO,setKeyValuePairs:C.i$,setTolerationInfo:C.iU,addNewToleration:C.ly,removeToleration:C.JX}),Q=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},affinityConfigField:{display:"flex"},affinityFieldLabel:{display:"flex",flexFlow:"column",flex:1},radioField:{display:"flex",alignItems:"flex-start",marginTop:10,"& div:first-child":{display:"flex",flexFlow:"column",alignItems:"baseline",textAlign:"left !important"}},affinityLabelKey:{"& div:first-child":{marginBottom:0}},affinityLabelValue:{marginLeft:10,"& div:first-child":{marginBottom:0}},rowActions:{display:"flex",alignItems:"center"},fieldContainer:{marginBottom:0},affinityRow:{marginBottom:10,display:"flex"}},p.oO),p.AK))}))(H((function(e){var t=e.classes,n=e.podAffinity,i=e.nodeSelectorLabels,o=e.withPodAntiAffinity,l=e.setModalErrorSnackMessage,d=e.updateAddField,u=e.keyValuePairs,m=e.setKeyValuePairs,p=e.isPageValid,f=e.tolerations,h=e.setTolerationInfo,x=e.addNewToleration,y=e.removeToleration,v=(0,s.useState)({}),C=(0,a.Z)(v,2),Z=C[0],I=C[1],P=(0,s.useState)(!0),k=(0,a.Z)(P,2),w=k[0],R=k[1],D=(0,s.useState)({}),E=(0,a.Z)(D,2),z=E[0],G=E[1],U=(0,s.useState)([]),M=(0,a.Z)(U,2),q=M[0],V=M[1],B=(0,s.useCallback)((function(e,t){d("affinity",e,t)}),[d]);(0,s.useEffect)((function(){w&&g.Z.invoke("GET","/api/v1/nodes/labels").then((function(e){R(!1),G(e);var t=[];for(var n in e)t.push({label:n,value:n});V(t)})).catch((function(e){R(!1),l(e),G({})}))}),[l,w]),(0,s.useEffect)((function(){if(u){var e=u.filter((function(e){return""!==e.key})).map((function(e){return"".concat(e.key,"=").concat(e.value)})).filter((function(e,t,n){return n.indexOf(e)===t})).join("&");B("nodeSelectorLabels",e)}}),[u,B]),(0,s.useEffect)((function(){var e=[];if("nodeSelector"===n){var t=!0,a=i.split("&");1===a.length&&""===a[0]&&(t=!1),a.forEach((function(e,n){var r=e.split("=");2!==r.length&&(t=!1),n+1!==a.length&&(""!==r[0]&&""!==r[1]||(t=!1))})),e=[].concat((0,S.Z)(e),[{fieldKey:"labels",required:!0,value:i,customValidation:!t,customValidationMessage:"You need to add at least one label key-pair"}])}var r=(0,b.R)(e);p("affinity",0===Object.keys(r).length),I(r)}),[p,n,i]);var H=function(e,t,n){var a=(0,r.Z)((0,r.Z)({},f[e]),{},(0,O.Z)({},t,n));h(e,a)};return(0,A.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,A.jsxs)("div",{className:t.headerElement,children:[(0,A.jsx)("h3",{className:t.h3Section,children:"Pod Placement"}),(0,A.jsx)("span",{className:t.descriptionText,children:"Configure how pods will be assigned to nodes"})]}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.affinityConfigField,children:(0,A.jsxs)(c.ZP,{item:!0,className:t.affinityFieldLabel,children:[(0,A.jsx)("div",{className:t.label,children:"Type"}),(0,A.jsx)("div",{className:"".concat(t.descriptionText," ").concat(t.affinityHelpText),children:"MinIO supports multiple configurations for Pod Affinity"}),(0,A.jsx)(c.ZP,{item:!0,className:t.radioField,children:(0,A.jsx)(F.Z,{currentSelection:n,id:"affinity-options",name:"affinity-options",label:" ",onChange:function(e){B("podAffinity",e.target.value)},selectorOptions:[{label:"None",value:"none"},{label:"Default (Pod Anti-Affinnity)",value:"default"},{label:"Node Selector",value:"nodeSelector"}]})})]})}),"nodeSelector"===n&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(_.Z,{value:"with_pod_anti_affinity",id:"with_pod_anti_affinity",name:"with_pod_anti_affinity",checked:o,onChange:function(e){var t=e.target.checked;B("withPodAntiAffinity",t)},label:"With Pod Anti-Affinity"})}),(0,A.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,A.jsx)("h3",{children:"Labels"}),(0,A.jsx)("span",{className:t.error,children:Z.labels}),(0,A.jsx)(c.ZP,{container:!0,children:u&&u.map((function(e,n){return(0,A.jsxs)(c.ZP,{item:!0,xs:12,className:t.affinityRow,children:[(0,A.jsxs)(c.ZP,{item:!0,xs:5,className:t.affinityLabelKey,children:[q.length>0&&(0,A.jsx)(W.Z,{onChange:function(e){var t=e.target.value,a=Object.assign([],u);a[n].key=e.target.value,a[n].value=z[t][0],m(a)},id:"select-access-policy",name:"select-access-policy",label:"",value:e.key,options:q}),0===q.length&&(0,A.jsx)(N.Z,{id:"nodeselector-key-".concat(n.toString()),label:"",name:"nodeselector-".concat(n.toString()),value:e.key,onChange:function(e){var t=Object.assign([],u);t[n].key=e.target.value,m(t)},index:n,placeholder:"Key"})]}),(0,A.jsxs)(c.ZP,{item:!0,xs:5,className:t.affinityLabelValue,children:[q.length>0&&(0,A.jsx)(W.Z,{onChange:function(e){var t=Object.assign([],u);t[n].value=e.target.value,m(t)},id:"select-access-policy",name:"select-access-policy",label:"",value:e.value,options:z[e.key]?z[e.key].map((function(e){return{label:e,value:e}})):[]}),0===q.length&&(0,A.jsx)(N.Z,{id:"nodeselector-value-".concat(n.toString()),label:"",name:"nodeselector-".concat(n.toString()),value:e.value,onChange:function(e){var t=Object.assign([],u);t[n].value=e.target.value,m(t)},index:n,placeholder:"value"})]}),(0,A.jsxs)(c.ZP,{item:!0,xs:2,className:t.rowActions,children:[(0,A.jsx)("div",{className:t.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){var e=Object.assign([],u);q.length>0?e.push({key:q[0].value,value:z[q[0].value][0]}):e.push({key:"",value:""}),m(e)},children:(0,A.jsx)(L.Z,{})})}),u.length>1&&(0,A.jsx)("div",{className:t.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){var e=u.filter((function(e,t){return t!==n}));m(e)},children:(0,A.jsx)(K.Z,{})})})]})]},"affinity-keyVal-".concat(n.toString()))}))})]})]}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.affinityConfigField,children:(0,A.jsxs)(c.ZP,{item:!0,className:t.affinityFieldLabel,children:[(0,A.jsx)("h3",{children:"Tolerations"}),(0,A.jsx)("span",{className:t.error,children:Z.tolerations}),(0,A.jsx)(c.ZP,{container:!0,children:f&&f.map((function(e,n){var a;return(0,A.jsxs)(c.ZP,{item:!0,xs:12,className:t.affinityRow,children:[(0,A.jsx)($.Z,{effect:e.effect,onEffectChange:function(e){H(n,"effect",e)},tolerationKey:e.key,onTolerationKeyChange:function(e){H(n,"key",e)},operator:e.operator,onOperatorChange:function(e){H(n,"operator",e)},value:e.value,onValueChange:function(e){H(n,"value",e)},tolerationSeconds:(null===(a=e.tolerationSeconds)||void 0===a?void 0:a.seconds)||0,onSecondsChange:function(e){H(n,"tolerationSeconds",{seconds:e})},index:n}),(0,A.jsx)("div",{className:t.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:x,disabled:n!==f.length-1,children:(0,A.jsx)(L.Z,{})})}),(0,A.jsx)("div",{className:t.overlayAction,children:(0,A.jsx)(T.Z,{size:"small",onClick:function(){return y(n)},disabled:f.length<=1,children:(0,A.jsx)(K.Z,{})})})]},"affinity-keyVal-".concat(n.toString()))}))})]})})]})}))),Y=n(32291),J=n(62666),X=(0,l.$j)((function(e){return{storageClasses:e.tenants.createTenant.storageClasses,customImage:e.tenants.createTenant.fields.configure.customImage,imageName:e.tenants.createTenant.fields.configure.imageName,customDockerhub:e.tenants.createTenant.fields.configure.customDockerhub,imageRegistry:e.tenants.createTenant.fields.configure.imageRegistry,imageRegistryUsername:e.tenants.createTenant.fields.configure.imageRegistryUsername,imageRegistryPassword:e.tenants.createTenant.fields.configure.imageRegistryPassword,exposeMinIO:e.tenants.createTenant.fields.configure.exposeMinIO,exposeConsole:e.tenants.createTenant.fields.configure.exposeConsole,prometheusCustom:e.tenants.createTenant.fields.configure.prometheusEnabled,tenantCustom:e.tenants.createTenant.fields.configure.tenantCustom,logSearchCustom:e.tenants.createTenant.fields.configure.logSearchEnabled,logSearchVolumeSize:e.tenants.createTenant.fields.configure.logSearchVolumeSize,logSearchSizeFactor:e.tenants.createTenant.fields.configure.logSearchSizeFactor,prometheusVolumeSize:e.tenants.createTenant.fields.configure.prometheusVolumeSize,prometheusSizeFactor:e.tenants.createTenant.fields.configure.prometheusSizeFactor,logSearchSelectedStorageClass:e.tenants.createTenant.fields.configure.logSearchSelectedStorageClass,logSearchImage:e.tenants.createTenant.fields.configure.logSearchImage,kesImage:e.tenants.createTenant.fields.configure.kesImage,logSearchPostgresImage:e.tenants.createTenant.fields.configure.logSearchPostgresImage,logSearchPostgresInitImage:e.tenants.createTenant.fields.configure.logSearchPostgresInitImage,prometheusSelectedStorageClass:e.tenants.createTenant.fields.configure.prometheusSelectedStorageClass,prometheusImage:e.tenants.createTenant.fields.configure.prometheusImage,prometheusSidecarImage:e.tenants.createTenant.fields.configure.prometheusSidecarImage,prometheusInitImage:e.tenants.createTenant.fields.configure.prometheusInitImage,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass}}),{updateAddField:C.HM,isPageValid:C.NO}),ee=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},p.DF),p.oO),p.AK))}))(X((function(e){var t=e.classes,n=(e.storageClasses,e.customImage),r=e.imageName,i=e.customDockerhub,o=e.imageRegistry,l=e.imageRegistryUsername,d=e.imageRegistryPassword,u=(e.exposeMinIO,e.exposeConsole,e.prometheusCustom),m=e.tenantCustom,p=e.logSearchCustom,g=e.logSearchVolumeSize,f=(e.logSearchSizeFactor,e.logSearchImage),h=e.kesImage,x=e.logSearchPostgresImage,y=e.logSearchPostgresInitImage,v=e.prometheusVolumeSize,C=(e.prometheusSizeFactor,e.logSearchSelectedStorageClass),I=e.prometheusSelectedStorageClass,P=e.prometheusImage,k=e.prometheusSidecarImage,T=e.prometheusInitImage,w=e.updateAddField,R=e.isPageValid,D=(e.selectedStorageClass,(0,s.useState)({})),F=(0,a.Z)(D,2),E=F[0],K=F[1],z=(0,s.useCallback)((function(e,t){w("configure",e,t)}),[w]);(0,s.useEffect)((function(){var e=[];u&&(e=[].concat((0,S.Z)(e),[{fieldKey:"prometheus_storage_class",required:!0,value:I,customValidation:""===I,customValidationMessage:"Field cannot be empty"},{fieldKey:"prometheus_volume_size",required:!0,value:v,customValidation:""===v||parseInt(v)<=0,customValidationMessage:"Volume size must be present and be greatter than 0"}])),p&&(e=[].concat((0,S.Z)(e),[{fieldKey:"log_search_storage_class",required:!0,value:C,customValidation:""===C,customValidationMessage:"Field cannot be empty"},{fieldKey:"log_search_volume_size",required:!0,value:g,customValidation:""===g||parseInt(g)<=0,customValidationMessage:"Volume size must be present and be greatter than 0"}])),n&&(e=[].concat((0,S.Z)(e),[{fieldKey:"image",required:!1,value:r,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/minio:VERSION'"},{fieldKey:"logSearchImage",required:!1,value:f,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/operator:VERSION'"},{fieldKey:"kesImage",required:!1,value:h,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/kes:VERSION'"},{fieldKey:"logSearchPostgresImage",required:!1,value:x,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'library/postgres:VERSION'"},{fieldKey:"logSearchPostgresInitImage",required:!1,value:y,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'library/busybox:VERSION'"},{fieldKey:"prometheusImage",required:!1,value:P,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/prometheus:VERSION'"},{fieldKey:"prometheusSidecarImage",required:!1,value:k,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'project/container:VERSION'"},{fieldKey:"prometheusInitImage",required:!1,value:T,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'library/busybox:VERSION'"}]),i&&(e=[].concat((0,S.Z)(e),[{fieldKey:"registry",required:!0,value:o},{fieldKey:"registryUsername",required:!0,value:l},{fieldKey:"registryPassword",required:!0,value:d}])));var t=(0,b.R)(e);R("configure",0===Object.keys(t).length),K(t)}),[n,r,f,h,x,y,P,k,T,i,o,l,d,R,u,m,p,I,v,C,g]);var G=function(e){K((0,Z.h)(E,e))};return(0,A.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,A.jsxs)("div",{className:t.headerElement,children:[(0,A.jsx)("h3",{className:t.h3Section,children:"Container Images"}),(0,A.jsx)("span",{className:t.descriptionText,children:"Specify the container images used by the Tenant and it's features."})]}),(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"image",name:"image",onChange:function(e){z("imageName",e.target.value),G("image")},label:"MinIO",value:r,error:E.image||"",placeholder:"E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"kesImage",name:"kesImage",onChange:function(e){z("kesImage",e.target.value),G("kesImage")},label:"KES",value:h,error:E.kesImage||"",placeholder:"E.g. minio/kes:v0.17.6"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)("h4",{children:"Log Search"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"logSearchImage",name:"logSearchImage",onChange:function(e){z("logSearchImage",e.target.value),G("logSearchImage")},label:"API",value:f,error:E.logSearchImage||"",placeholder:"E.g. minio/operator:v4.4.10"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"logSearchPostgresImage",name:"logSearchPostgresImage",onChange:function(e){z("logSearchPostgresImage",e.target.value),G("logSearchPostgresImage")},label:"PostgreSQL",value:x,error:E.logSearchPostgresImage||"",placeholder:"E.g. library/postgres:13"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"logSearchPostgresInitImage",name:"logSearchPostgresInitImage",onChange:function(e){z("logSearchPostgresInitImage",e.target.value),G("logSearchPostgresInitImage")},label:"PostgreSQL Init",value:y,error:E.logSearchPostgresInitImage||"",placeholder:"E.g. library/busybox:1.33.1"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)("h4",{children:"Monitoring"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"prometheusImage",name:"prometheusImage",onChange:function(e){z("prometheusImage",e.target.value),G("prometheusImage")},label:"Prometheus",value:P,error:E.prometheusImage||"",placeholder:"E.g. quay.io/prometheus/prometheus:latest"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"prometheusSidecarImage",name:"prometheusSidecarImage",onChange:function(e){z("prometheusSidecarImage",e.target.value),G("prometheusSidecarImage")},label:"Prometheus Sidecar",value:k,error:E.prometheusSidecarImage||"",placeholder:"E.g. quay.io/prometheus/prometheus:latest"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"prometheusInitImage",name:"prometheusInitImage",onChange:function(e){z("prometheusInitImage",e.target.value),G("prometheusInitImage")},label:"Prometheus Init",value:T,error:E.prometheusInitImage||"",placeholder:"E.g. quay.io/prometheus/prometheus:latest"})})]}),n&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)("h4",{children:"Custom Container Registry"})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(_.Z,{value:"custom_docker_hub",id:"custom_docker_hub",name:"custom_docker_hub",checked:i,onChange:function(e){var t=e.target.checked;z("customDockerhub",t)},label:"Use a private container registry"})})]}),i&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"registry",name:"registry",onChange:function(e){z("imageRegistry",e.target.value)},label:"Endpoint",value:o,error:E.registry||"",placeholder:"E.g. https://index.docker.io/v1/",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"registryUsername",name:"registryUsername",onChange:function(e){z("imageRegistryUsername",e.target.value)},label:"Username",value:l,error:E.registryUsername||"",required:!0})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"registryPassword",name:"registryPassword",onChange:function(e){z("imageRegistryPassword",e.target.value)},label:"Password",value:d,error:E.registryPassword||"",required:!0})})]})]})}))),te=n(74794),ne=n(84669),ae=n(48573),re=n.n(ae),se=n(49724),ie=n(51691),oe=n(23508),le=n(13048),ce={setErrorSnackMessage:x.Ih},de=(0,l.$j)(null,ce),ue=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}},p.oO),p.Qw))}))(de((function(e){var t=e.classes,n=e.namespace,r=e.addNamespaceOpen,i=e.closeAddNamespaceModalAndRefresh,o=e.setErrorSnackMessage,l=(0,s.useState)(!1),c=(0,a.Z)(l,2),u=c[0],m=c[1];(0,s.useEffect)((function(){u&&g.Z.invoke("POST","/api/v1/namespace",{name:n}).then((function(e){m(!1),i(!0)})).catch((function(e){m(!1),o(e)}))}),[u,i,n,o]);return(0,A.jsx)(oe.Z,{title:"New namespace",confirmText:"Create",confirmButtonProps:{color:"primary",variant:"contained"},isOpen:r,titleIcon:(0,A.jsx)(le.Ej,{}),isLoading:u,onConfirm:function(){m(!0)},onClose:function(){i(!1)},confirmationContent:(0,A.jsxs)(s.Fragment,{children:[u&&(0,A.jsx)(d.Z,{}),(0,A.jsxs)(ie.Z,{children:["Are you sure you want to add a namespace called",(0,A.jsx)("br",{}),(0,A.jsx)("b",{className:t.wrapText,children:n}),"?"]})]})})}))),me=n(79836),pe=n(53382),ge=n(53994),fe=n(35855),he=n(94721),xe=(0,l.$j)((function(e){return{volumeSize:e.tenants.createTenant.fields.tenantSize.volumeSize,sizeFactor:e.tenants.createTenant.fields.tenantSize.sizeFactor,drivesPerServer:e.tenants.createTenant.fields.tenantSize.drivesPerServer,nodes:e.tenants.createTenant.fields.tenantSize.nodes,memoryNode:e.tenants.createTenant.fields.tenantSize.resourcesMemoryRequest,ecParity:e.tenants.createTenant.fields.tenantSize.ecParity,ecParityChoices:e.tenants.createTenant.fields.tenantSize.ecParityChoices,cleanECChoices:e.tenants.createTenant.fields.tenantSize.cleanECChoices,resourcesSize:e.tenants.createTenant.fields.tenantSize.resourcesSize,distribution:e.tenants.createTenant.fields.tenantSize.distribution,ecParityCalc:e.tenants.createTenant.fields.tenantSize.ecParityCalc,limitSize:e.tenants.createTenant.fields.tenantSize.limitSize,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass,cpuToUse:e.tenants.createTenant.fields.tenantSize.resourcesCPURequest,integrationSelection:e.tenants.createTenant.fields.tenantSize.integrationSelection}}),{updateAddField:C.HM,isPageValid:C.NO}),ye=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({root:{margin:4},table:{"& .MuiTableCell-root":{fontSize:13}}},p.oO),p.AK))}))(xe((function(e){var t=e.classes,n=e.nodes,a=e.memoryNode,r=e.ecParity,i=e.distribution,o=e.ecParityCalc,l=e.cpuToUse,c=e.integrationSelection,d=o.storageFactors.find((function(e){return e.erasureCode===r}));return(0,A.jsxs)("div",{className:t.root,children:[(0,A.jsx)("h4",{children:"Resource Allocation"}),(0,A.jsx)(he.Z,{}),(0,A.jsx)(me.Z,{className:t.table,"aria-label":"simple table",size:"small",children:(0,A.jsxs)(pe.Z,{children:[(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{scope:"row",children:"Number of Servers"}),(0,A.jsx)(ge.Z,{align:"right",children:parseInt(n)>0?n:"-"})]}),""===c.typeSelection&&""===c.storageClass&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{scope:"row",children:"Drives per Server"}),(0,A.jsx)(ge.Z,{align:"right",children:i?i.disks:"-"})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{scope:"row",children:"Drive Capacity"}),(0,A.jsx)(ge.Z,{align:"right",children:i?(0,f.ae)(i.pvSize):"-"})]})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{scope:"row",children:"Total Volumes"}),(0,A.jsx)(ge.Z,{align:"right",children:i?i.persistentVolumes:"-"})]}),""===c.typeSelection&&""===c.storageClass&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{scope:"row",children:"Memory per Node"}),(0,A.jsxs)(ge.Z,{align:"right",children:[a," Gi"]})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{style:{borderBottom:0},scope:"row",children:"CPU Selection"}),(0,A.jsx)(ge.Z,{style:{borderBottom:0},align:"right",children:l})]})]})]})}),0===o.error&&d&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)("h4",{children:"Erasure Code Configuration"}),(0,A.jsx)(he.Z,{}),(0,A.jsx)(me.Z,{className:t.table,"aria-label":"simple table",size:"small",children:(0,A.jsxs)(pe.Z,{children:[(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{scope:"row",children:"EC Parity"}),(0,A.jsx)(ge.Z,{align:"right",children:""!==r?r:"-"})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{scope:"row",children:"Raw Capacity"}),(0,A.jsx)(ge.Z,{align:"right",children:(0,f.ae)(o.rawCapacity)})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{scope:"row",children:"Usable Capacity"}),(0,A.jsx)(ge.Z,{align:"right",children:(0,f.ae)(d.maxCapacity)})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{style:{borderBottom:0},scope:"row",children:"Server Failures Tolerated"}),(0,A.jsx)(ge.Z,{style:{borderBottom:0},align:"right",children:i?Math.floor(d.maxFailureTolerations/i.disks):"-"})]})]})})]}),""!==c.typeSelection&&""!==c.storageClass&&(0,A.jsxs)(s.Fragment,{children:[(0,A.jsx)("h4",{children:"Single Instance Configuration"}),(0,A.jsx)(he.Z,{}),(0,A.jsx)(me.Z,{className:t.table,"aria-label":"simple table",size:"small",children:(0,A.jsxs)(pe.Z,{children:[(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{scope:"row",children:"CPU"}),(0,A.jsx)(ge.Z,{align:"right",children:0!==c.CPU?c.CPU:"-"})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{scope:"row",children:"Memory"}),(0,A.jsx)(ge.Z,{align:"right",children:0!==c.memory?"".concat(c.memory," Gi"):"-"})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{scope:"row",children:"Drives per Server"}),(0,A.jsx)(ge.Z,{align:"right",children:0!==c.drivesPerServer?"".concat(c.drivesPerServer):"-"})]}),(0,A.jsxs)(fe.Z,{children:[(0,A.jsx)(ge.Z,{style:{borderBottom:0},scope:"row",children:"Drive Size"}),(0,A.jsxs)(ge.Z,{style:{borderBottom:0},align:"right",children:[c.driveSize.driveSize,c.driveSize.sizeUnit]})]})]})})]})]})}))),ve=n(19720),Ce=n(45884),Se=(0,l.$j)((function(e){return{tenantName:e.tenants.createTenant.fields.nameTenant.tenantName,namespace:e.tenants.createTenant.fields.nameTenant.namespace,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass,selectedStorageType:e.tenants.createTenant.fields.nameTenant.selectedStorageType,storageClasses:e.tenants.createTenant.storageClasses,features:e.console.session.features}}),{setModalErrorSnackMessage:x.zb,updateAddField:C.HM,setStorageClassesList:C.wZ,setLimitSize:C.DH,isPageValid:C.NO,setStorageType:C.Qy}),je=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)({sizePreview:{position:"fixed",marginLeft:10,background:"#FFFFFF",border:"1px solid #EAEAEA",padding:2}},p.DF),p.oO),p.AK))}))(Se((function(e){var t=e.classes,n=e.storageClasses,r=e.tenantName,i=e.namespace,l=e.selectedStorageClass,d=e.selectedStorageType,u=e.formToRender,m=void 0===u?Ce.cy.default:u,p=e.updateAddField,f=e.setStorageClassesList,h=e.setLimitSize,x=e.isPageValid,y=e.setModalErrorSnackMessage,v=e.features,C=e.setStorageType,S=(0,s.useState)({}),_=(0,a.Z)(S,2),I=_[0],P=_[1],k=(0,s.useState)(!0),T=(0,a.Z)(k,2),w=T[0],R=T[1],D=(0,s.useState)(!1),F=(0,a.Z)(D,2),E=F[0],K=F[1],z=(0,s.useState)(!1),G=(0,a.Z)(z,2),U=G[0],M=G[1],q=(0,s.useState)(!1),V=(0,a.Z)(q,2),B=V[0],O=V[1],$=(0,s.useCallback)((function(e,t){p("nameTenant",e,t)}),[p]),H=(0,s.useCallback)((function(){M(!1),g.Z.invoke("GET","/api/v1/namespaces/".concat(i,"/tenants")).then((function(e){var t=o()(e,"tenants",[]);if(t&&t.length>0)return R(!1),void K(!1);R(!0),g.Z.invoke("GET","/api/v1/namespaces/".concat(i,"/resourcequotas/").concat(i,"-storagequota")).then((function(e){var t=o()(e,"elements",[]);h((0,se.OU)(e));var n=t.map((function(e){var t=o()(e,"name","").split(".storageclass.storage.k8s.io/requests.storage")[0];return{label:t,value:t}}));f(n);var a=n.findIndex((function(e){return e.value===l}));n.length>0&&-1===a?$("selectedStorageClass",n[0].value):0===n.length&&($("selectedStorageClass",""),f([])),K(!1)})).catch((function(e){K(!1),M(!0),$("selectedStorageClass",""),f([]),console.error("Namespace error: ",e)}))})).catch((function(e){y({errorMessage:"Error validating if namespace already has tenants",detailedError:e.detailedError})}))}),[i,h,y,f,$,l]),Q=(0,s.useMemo)((function(){return re()(H,500)}),[H]);(0,s.useEffect)((function(){if(""!==i)return Q(),K(!0),Q.cancel}),[Q,i]),(0,s.useEffect)((function(){var e=!1,t="";w||E?n.length<1&&w&&!E&&(e=!0,t="Please enter a valid namespace"):(e=!0,t="You can only create one tenant per namespace");var a=(0,b.R)([{fieldKey:"tenant-name",required:!0,pattern:/^[a-z0-9-]{3,63}$/,customPatternMessage:"Name only can contain lowercase letters, numbers and '-'. Min. Length: 3",value:r},{fieldKey:"namespace",required:!0,value:i,customValidation:e,customValidationMessage:t}]),s=!("tenant-name"in a)&&!("namespace"in a)&&(m===Ce.cy.default&&n.length>0||m!==Ce.cy.default&&""!==d);x("nameTenant",s),P(a)}),[n,i,r,x,w,E,d,m]);var Y=function(e){P((0,Z.h)(I,e))};return(0,A.jsxs)(s.Fragment,{children:[B&&(0,A.jsx)(ue,{addNamespaceOpen:B,closeAddNamespaceModalAndRefresh:function(e){O(!1),e&&Q()},namespace:i}),(0,A.jsxs)(c.ZP,{container:!0,children:[(0,A.jsx)(c.ZP,{item:!0,xs:8,md:9,children:(0,A.jsx)(j.Z,{className:t.paperWrapper,sx:{minHeight:550},children:(0,A.jsxs)(c.ZP,{container:!0,children:[(0,A.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,A.jsxs)("div",{className:t.headerElement,children:[(0,A.jsx)("h3",{className:t.h3Section,children:"Name"}),(0,A.jsx)("span",{className:t.descriptionText,children:"How would you like to name this new tenant?"})]}),(0,A.jsx)("div",{className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"tenant-name",name:"tenant-name",onChange:function(e){$("tenantName",e.target.value),Y("tenant-name")},label:"Name",value:r,required:!0,error:I["tenant-name"]||""})})]}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(N.Z,{id:"namespace",name:"namespace",onChange:function(e){$("namespace",e.target.value),Y("namespace")},label:"Namespace",value:i,error:I.namespace||"",overlayId:"add-namespace",overlayIcon:U?(0,A.jsx)(L.Z,{}):null,overlayAction:function(){O(!0)},required:!0})}),m===Ce.cy.default?(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(W.Z,{id:"storage_class",name:"storage_class",onChange:function(e){$("selectedStorageClass",e.target.value)},label:"Storage Class",value:l,options:n,disabled:n.length<1})}):(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,A.jsx)(W.Z,{id:"storage_type",name:"storage_type",onChange:function(e){C(e.target.value,v)},label:o()(Ce.Hd,"".concat(m,".variantSelectorLabel"),"Storage Type"),value:d,options:o()(Ce.Hd,"".concat(m,".variantSelectorValues"),[])})}),m===Ce.cy.default?(0,A.jsx)(ve.Z,{}):o()(Ce.Hd,"".concat(m,".sizingComponent"),null)]})})}),(0,A.jsx)(c.ZP,{item:!0,xs:4,md:3,children:(0,A.jsx)("div",{className:t.sizePreview,children:(0,A.jsx)(ye,{})})})]})]})}))),Ze=(0,l.$j)((function(e){return{features:e.console.session.features}}),null)((function(e){var t=e.features,n=(0,s.useState)(null),r=(0,a.Z)(n,2),i=r[0],l=r[1];return(0,s.useEffect)((function(){var e=Ce.cy.default;t&&0!==t.length&&Object.keys(Ce.I8).forEach((function(n){t.includes(n)&&(e=o()(Ce.I8,n,Ce.cy.default))}));l(e)}),[t]),null===i?null:(0,A.jsx)(je,{formToRender:i})})),be=n(56578),_e=(0,l.$j)((function(e){return{storageClasses:e.tenants.createTenant.storageClasses,logSearchEnabled:e.tenants.createTenant.fields.configure.logSearchEnabled,logSearchVolumeSize:e.tenants.createTenant.fields.configure.logSearchVolumeSize,logSearchSizeFactor:e.tenants.createTenant.fields.configure.logSearchSizeFactor,logSearchSelectedStorageClass:e.tenants.createTenant.fields.configure.logSearchSelectedStorageClass,logSearchImage:e.tenants.createTenant.fields.configure.logSearchImage,logSearchPostgresImage:e.tenants.createTenant.fields.configure.logSearchPostgresImage,logSearchPostgresInitImage:e.tenants.createTenant.fields.configure.logSearchPostgresInitImage,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass,tenantSecurityContext:e.tenants.createTenant.fields.configure.tenantSecurityContext,logSearchSecurityContext:e.tenants.createTenant.fields.configure.logSearchSecurityContext,logSearchPostgresSecurityContext:e.tenants.createTenant.fields.configure.logSearchPostgresSecurityContext}}),{updateAddField:C.HM,isPageValid:C.NO}),Ne=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},containerItem:{marginRight:15},fieldGroup:(0,r.Z)((0,r.Z)({},p.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},logSearchEnabledFields:{marginLeft:20,padding:10,width:"90%",margin:"auto"},fieldSpaceTop:{marginTop:15}},p.oO),p.AK))}))(_e((function(e){var t=e.classes,n=e.storageClasses,i=e.logSearchEnabled,o=e.logSearchVolumeSize,l=(e.logSearchSizeFactor,e.logSearchImage),d=e.logSearchPostgresImage,u=e.logSearchPostgresInitImage,m=e.logSearchSelectedStorageClass,p=e.updateAddField,g=e.isPageValid,f=e.selectedStorageClass,h=e.tenantSecurityContext,x=e.logSearchSecurityContext,y=e.logSearchPostgresSecurityContext,v=(0,s.useState)({}),C=(0,a.Z)(v,2),I=C[0],P=C[1],k=[{label:"Default",value:"default"}].concat((0,S.Z)(n)),T=(0,s.useCallback)((function(e,t){p("configure",e,t)}),[p]);(0,s.useEffect)((function(){var e=[];i&&(e=[].concat((0,S.Z)(e),[{fieldKey:"log_search_storage_class",required:!0,value:m,customValidation:""===m,customValidationMessage:"Field cannot be empty"},{fieldKey:"log_search_volume_size",required:!0,value:o,customValidation:""===o||parseInt(o)<=0,customValidationMessage:"Volume size must be present and be greatter than 0"},{fieldKey:"logSearch_securityContext_runAsUser",required:!0,value:x.runAsUser,customValidation:""===x.runAsUser||parseInt(x.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"logSearch_securityContext_runAsGroup",required:!0,value:x.runAsGroup,customValidation:""===x.runAsGroup||parseInt(x.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"logSearch_securityContext_fsGroup",required:!0,value:x.fsGroup,customValidation:""===x.fsGroup||parseInt(x.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"},{fieldKey:"postgres_securityContext_runAsUser",required:!0,value:y.runAsUser,customValidation:""===y.runAsUser||parseInt(y.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"postgres_securityContext_runAsGroup",required:!0,value:x.runAsGroup,customValidation:""===y.runAsGroup||parseInt(y.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"postgres_securityContext_fsGroup",required:!0,value:y.fsGroup,customValidation:""===y.fsGroup||parseInt(y.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]));var t=(0,b.R)(e);g("configure",0===Object.keys(t).length),P(t)}),[l,d,u,g,i,m,o,h,x,y]),(0,s.useEffect)((function(){n.length>0&&(0===n.filter((function(e){return e.value===m})).length&&T("logSearchSelectedStorageClass","default"))}),[m,f,n,T]);var w=function(e){P((0,Z.h)(I,e))};return(0,A.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,A.jsxs)("div",{className:t.headerElement,children:[(0,A.jsx)("h3",{className:t.h3Section,children:"Audit Log"}),(0,A.jsx)("span",{className:t.descriptionText,children:"Audit log deploys a small PostgreSQL database and store access logs of all calls into the tenant."})]}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,A.jsx)(_.Z,{value:"logSearchConfig",id:"log-search-enabled",name:"log_search_enabled",checked:i,onChange:function(e){var t=e.target.checked;T("logSearchEnabled",t)},label:"Enabled"})}),i&&(0,A.jsxs)(c.ZP,{xs:12,className:t.logSearchEnabledFields,children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(W.Z,{id:"log_search_storage_class",name:"log_search_storage_class",onChange:function(e){T("logSearchSelectedStorageClass",e.target.value)},label:"Log Search Storage Class",value:m,options:k,disabled:k.length<1})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("div",{className:t.multiContainer,children:(0,A.jsx)(N.Z,{type:"number",id:"log_search_volume_size",name:"log_search_volume_size",onChange:function(e){T("logSearchVolumeSize",e.target.value),w("log_search_volume_size")},label:"Storage Size",overlayObject:(0,A.jsx)(be.Z,{id:"size-unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0}),value:o,required:!0,error:I.log_search_volume_size||"",min:"0"})})}),(0,A.jsxs)("fieldset",{className:"".concat(t.fieldGroup," ").concat(t.fieldSpaceTop),children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"SecurityContext for LogSearch"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("div",{className:"".concat(t.multiContainer," ").concat(t.responsiveSectionItem),children:[(0,A.jsx)("div",{className:t.configSectionItem,children:(0,A.jsx)(N.Z,{type:"number",id:"logSearch_securityContext_runAsUser",name:"logSearch_securityContext_runAsUser",onChange:function(e){T("logSearchSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{runAsUser:e.target.value})),w("logSearch_securityContext_runAsUser")},label:"Run As User",value:x.runAsUser,required:!0,error:I.logSearch_securityContext_runAsUser||"",min:"0"})}),(0,A.jsx)("div",{className:t.configSectionItem,children:(0,A.jsx)(N.Z,{type:"number",id:"logSearch_securityContext_runAsGroup",name:"logSearch_securityContext_runAsGroup",onChange:function(e){T("logSearchSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{runAsGroup:e.target.value})),w("logSearch_securityContext_runAsGroup")},label:"Run As Group",value:x.runAsGroup,required:!0,error:I.logSearch_securityContext_runAsGroup||"",min:"0"})}),(0,A.jsx)("div",{className:t.configSectionItem,children:(0,A.jsx)(N.Z,{type:"number",id:"logSearch_securityContext_fsGroup",name:"logSearch_securityContext_fsGroup",onChange:function(e){T("logSearchSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{fsGroup:e.target.value})),w("logSearch_securityContext_fsGroup")},label:"FsGroup",value:x.fsGroup,required:!0,error:I.logSearch_securityContext_fsGroup||"",min:"0"})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("div",{className:t.multiContainer,children:(0,A.jsx)(_.Z,{value:"logSearchSecurityContextRunAsNonRoot",id:"logSearch_securityContext_runAsNonRoot",name:"logSearch_securityContext_runAsNonRoot",checked:x.runAsNonRoot,onChange:function(e){var t=e.target.checked;T("logSearchSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{runAsNonRoot:t}))},label:"Do not run as Root"})})})]}),(0,A.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"SecurityContext for PostgreSQL"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsxs)("div",{className:"".concat(t.multiContainer," ").concat(t.responsiveSectionItem),children:[(0,A.jsx)("div",{className:t.configSectionItem,children:(0,A.jsx)(N.Z,{type:"number",id:"postgres_securityContext_runAsUser",name:"postgres_securityContext_runAsUser",onChange:function(e){T("logSearchPostgresSecurityContext",(0,r.Z)((0,r.Z)({},y),{},{runAsUser:e.target.value})),w("postgres_securityContext_runAsUser")},label:"Run As User",value:y.runAsUser,required:!0,error:I.postgres_securityContext_runAsUser||"",min:"0"})}),(0,A.jsx)("div",{className:t.configSectionItem,children:(0,A.jsx)(N.Z,{type:"number",id:"postgres_securityContext_runAsGroup",name:"postgres_securityContext_runAsGroup",onChange:function(e){T("logSearchPostgresSecurityContext",(0,r.Z)((0,r.Z)({},y),{},{runAsGroup:e.target.value})),w("postgres_securityContext_runAsGroup")},label:"Run As Group",value:y.runAsGroup,required:!0,error:I.postgres_securityContext_runAsGroup||"",min:"0"})}),(0,A.jsx)("div",{className:t.configSectionItem,children:(0,A.jsx)(N.Z,{type:"number",id:"postgres_securityContext_fsGroup",name:"postgres_securityContext_fsGroup",onChange:function(e){T("logSearchPostgresSecurityContext",(0,r.Z)((0,r.Z)({},y),{},{fsGroup:e.target.value})),w("postgres_securityContext_fsGroup")},label:"FsGroup",value:y.fsGroup,required:!0,error:I.postgres_securityContext_fsGroup||"",min:"0"})})]})}),(0,A.jsx)("br",{}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("div",{className:t.multiContainer,children:(0,A.jsx)(_.Z,{value:"postgresSecurityContextRunAsNonRoot",id:"postgres_securityContext_runAsNonRoot",name:"postgres_securityContext_runAsNonRoot",checked:y.runAsNonRoot,onChange:function(e){var t=e.target.checked;T("logSearchPostgresSecurityContext",(0,r.Z)((0,r.Z)({},y),{},{runAsNonRoot:t}))},label:"Do not run as Root"})})})]})]})]})}))),Ae=(0,l.$j)((function(e){return{storageClasses:e.tenants.createTenant.storageClasses,prometheusEnabled:e.tenants.createTenant.fields.configure.prometheusEnabled,prometheusVolumeSize:e.tenants.createTenant.fields.configure.prometheusVolumeSize,prometheusSizeFactor:e.tenants.createTenant.fields.configure.prometheusSizeFactor,prometheusSelectedStorageClass:e.tenants.createTenant.fields.configure.prometheusSelectedStorageClass,prometheusImage:e.tenants.createTenant.fields.configure.prometheusImage,prometheusSidecarImage:e.tenants.createTenant.fields.configure.prometheusSidecarImage,prometheusInitImage:e.tenants.createTenant.fields.configure.prometheusInitImage,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass,tenantSecurityContext:e.tenants.createTenant.fields.configure.tenantSecurityContext,prometheusSecurityContext:e.tenants.createTenant.fields.configure.prometheusSecurityContext}}),{updateAddField:C.HM,isPageValid:C.NO}),Ie=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},containerItem:{marginRight:15},fieldGroup:(0,r.Z)((0,r.Z)({},p.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},fieldSpaceTop:{marginTop:15},prometheusEnabledFields:{marginLeft:20,padding:10,width:"90%",margin:"auto"}},p.oO),p.AK))}))(Ae((function(e){var t=e.classes,n=e.storageClasses,i=e.prometheusEnabled,o=e.prometheusVolumeSize,l=(e.prometheusSizeFactor,e.prometheusSelectedStorageClass),d=e.prometheusImage,u=e.prometheusSidecarImage,m=e.prometheusInitImage,p=e.updateAddField,g=e.isPageValid,f=e.selectedStorageClass,h=e.tenantSecurityContext,x=e.prometheusSecurityContext,y=(0,s.useState)({}),v=(0,a.Z)(y,2),C=v[0],I=v[1],P=[{label:"Default",value:"default"}].concat((0,S.Z)(n)),k=(0,s.useCallback)((function(e,t){p("configure",e,t)}),[p]);(0,s.useEffect)((function(){var e=[];i&&(e=[].concat((0,S.Z)(e),[{fieldKey:"prometheus_storage_class",required:!0,value:l,customValidation:""===l,customValidationMessage:"Field cannot be empty"},{fieldKey:"prometheus_volume_size",required:!0,value:o,customValidation:""===o||parseInt(o)<=0,customValidationMessage:"Volume size must be present and be greater than 0"},{fieldKey:"prometheus_securityContext_runAsUser",required:!0,value:x.runAsUser,customValidation:""===x.runAsUser||parseInt(x.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"prometheus_securityContext_runAsGroup",required:!0,value:x.runAsGroup,customValidation:""===x.runAsGroup||parseInt(x.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"prometheus_securityContext_fsGroup",required:!0,value:x.fsGroup,customValidation:""===x.fsGroup||parseInt(x.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]));var t=(0,b.R)(e);g("configure",0===Object.keys(t).length),I(t)}),[d,u,m,g,i,l,o,h,x]),(0,s.useEffect)((function(){n.length>0&&(0===n.filter((function(e){return e.value===l})).length&&k("prometheusSelectedStorageClass","default"))}),[l,f,n,k]);var T=function(e){I((0,Z.h)(C,e))};return(0,A.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,A.jsxs)("div",{className:t.headerElement,children:[(0,A.jsx)("h3",{className:t.h3Section,children:"Monitoring"}),(0,A.jsx)("span",{className:t.descriptionText,children:"A small Prometheus will be deployed to keep metrics about the tenant."})]}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,A.jsx)(_.Z,{value:"prometheusConfig",id:"prometheus_configuration",name:"prometheus_configuration",checked:i,onChange:function(e){var t=e.target.checked;k("prometheusEnabled",t)},label:"Enabled"})}),i&&(0,A.jsxs)(c.ZP,{xs:12,className:t.prometheusEnabledFields,children:[(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)(W.Z,{id:"prometheus_storage_class",name:"prometheus_storage_class",onChange:function(e){k("prometheusSelectedStorageClass",e.target.value)},label:"Prometheus Storage Class",value:l,options:P,disabled:P.length<1})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,children:(0,A.jsx)("div",{className:t.multiContainer,children:(0,A.jsx)(N.Z,{type:"number",id:"prometheus_volume_size",name:"prometheus_volume_size",onChange:function(e){k("prometheusVolumeSize",e.target.value),T("prometheus_volume_size")},label:"Storage Size",overlayObject:(0,A.jsx)(be.Z,{id:"size-unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0}),value:o,required:!0,error:C.prometheus_volume_size||"",min:"0"})})}),(0,A.jsxs)("fieldset",{className:"".concat(t.fieldGroup," ").concat(t.fieldSpaceTop),children:[(0,A.jsx)("legend",{className:t.descriptionText,children:"SecurityContext for Prometheus"}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,A.jsxs)("div",{className:"".concat(t.multiContainer," ").concat(t.responsiveSectionItem),children:[(0,A.jsx)("div",{className:t.configSectionItem,children:(0,A.jsx)(N.Z,{type:"number",id:"prometheus_securityContext_runAsUser",name:"prometheus_securityContext_runAsUser",onChange:function(e){k("prometheusSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{runAsUser:e.target.value})),T("prometheus_securityContext_runAsUser")},label:"Run As User",value:x.runAsUser,required:!0,error:C.prometheus_securityContext_runAsUser||"",min:"0"})}),(0,A.jsx)("div",{className:t.configSectionItem,children:(0,A.jsx)(N.Z,{type:"number",id:"prometheus_securityContext_runAsGroup",name:"prometheus_securityContext_runAsGroup",onChange:function(e){k("prometheusSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{runAsGroup:e.target.value})),T("prometheus_securityContext_runAsGroup")},label:"Run As Group",value:x.runAsGroup,required:!0,error:C.prometheus_securityContext_runAsGroup||"",min:"0"})}),(0,A.jsx)("div",{className:t.configSectionItem,children:(0,A.jsx)(N.Z,{type:"number",id:"prometheus_securityContext_fsGroup",name:"prometheus_securityContext_fsGroup",onChange:function(e){k("prometheusSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{fsGroup:e.target.value})),T("prometheus_securityContext_fsGroup")},label:"FsGroup",value:x.fsGroup,required:!0,error:C.prometheus_securityContext_fsGroup||"",min:"0"})})]})}),(0,A.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,A.jsx)("div",{className:"".concat(t.multiContainer," ").concat(t.fieldSpaceTop),children:(0,A.jsx)(_.Z,{value:"prometheusSecurityContextRunAsNonRoot",id:"prometheus_securityContext_runAsNonRoot",name:"prometheus_securityContext_runAsNonRoot",checked:x.runAsNonRoot,onChange:function(e){var t=e.target.checked;k("prometheusSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{runAsNonRoot:t}))},label:"Do not run as Root"})})})]})]})]})}))),Pe=n(23804),ke=(0,l.$j)((function(e){return{namespace:e.tenants.createTenant.fields.nameTenant.namespace,validPages:e.tenants.createTenant.validPages,fields:e.tenants.createTenant.fields,certificates:e.tenants.createTenant.certificates,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass,features:e.console.session.features,tolerations:e.tenants.createTenant.tolerations}}),{setErrorSnackMessage:x.Ih,updateAddField:C.HM,resetAddTenantForm:C.dS}),Te=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)({pageBox:{border:"1px solid #EAEAEA"}},p.oO),p.AK),p.Je))}))(ke((function(e){var t=e.classes,n=e.fields,i=e.certificates,l=e.selectedStorageClass,u=e.namespace,m=e.validPages,p=e.setErrorSnackMessage,x=e.resetAddTenantForm,C=e.features,S=e.tolerations,j=(0,s.useState)(!1),Z=(0,a.Z)(j,2),b=Z[0],_=Z[1],N=(0,s.useState)(null),I=(0,a.Z)(N,2),k=I[0],T=I[1],w=(0,s.useState)(!1),R=(0,a.Z)(w,2),D=R[0],F=R[1],E=(0,s.useState)(null),K=(0,a.Z)(E,2),z=K[0],U=K[1];(0,s.useEffect)((function(){var e=Ce.cy.default;C&&0!==C.length&&Object.keys(Ce.I8).forEach((function(t){C.includes(t)&&(e=o()(Ce.I8,t,Ce.cy.default))}));U(e)}),[C]),(0,s.useEffect)((function(){var e=n.nameTenant.tenantName,t=n.nameTenant.selectedStorageClass,a=n.configure.imageName,s=n.configure.customDockerhub,l=n.configure.imageRegistry,c=n.configure.imageRegistryUsername,d=n.configure.imageRegistryPassword,m=n.configure.exposeMinIO,h=n.configure.exposeConsole,x=n.identityProvider.idpSelection,v=n.identityProvider.openIDConfigurationURL,C=n.identityProvider.openIDClientID,j=n.identityProvider.openIDClaimName,Z=n.identityProvider.openIDCallbackURL,b=n.identityProvider.openIDScopes,N=n.identityProvider.openIDSecretID,A=n.identityProvider.ADURL,I=n.identityProvider.ADSkipTLS,P=n.identityProvider.ADServerInsecure,k=n.identityProvider.ADGroupSearchBaseDN,w=n.identityProvider.ADGroupSearchFilter,R=n.identityProvider.ADUserDNs,E=n.identityProvider.ADLookupBindDN,K=n.identityProvider.ADLookupBindPassword,z=n.identityProvider.ADUserDNSearchBaseDN,G=n.identityProvider.ADUserDNSearchFilter,U=n.identityProvider.ADServerStartTLS,L=n.identityProvider.accessKeys,M=n.identityProvider.secretKeys,q=i.minioCertificates,V=i.caCertificates,B=i.consoleCaCertificates,O=i.consoleCertificate,W=i.serverCertificate,$=i.clientCertificate,H=i.vaultCertificate,Q=i.vaultCA,Y=i.gemaltoCA,J=n.encryption.enableEncryption,X=n.encryption.encryptionType,ee=n.encryption.gemaltoEndpoint,te=n.encryption.gemaltoToken,ne=n.encryption.gemaltoDomain,ae=n.encryption.gemaltoRetry,re=n.encryption.awsEndpoint,se=n.encryption.awsRegion,ie=n.encryption.awsKMSKey,oe=n.encryption.awsAccessKey,le=n.encryption.awsSecretKey,ce=n.encryption.awsToken,de=n.encryption.vaultEndpoint,ue=n.encryption.vaultEngine,me=n.encryption.vaultNamespace,pe=n.encryption.vaultPrefix,ge=n.encryption.vaultAppRoleEngine,fe=n.encryption.vaultId,he=n.encryption.vaultSecret,xe=n.encryption.vaultRetry,ye=n.encryption.vaultPing,ve=n.encryption.azureEndpoint,Ce=n.encryption.azureTenantID,Se=n.encryption.azureClientID,je=n.encryption.azureClientSecret,Ze=n.encryption.gcpProjectID,be=n.encryption.gcpEndpoint,_e=n.encryption.gcpClientEmail,Ne=n.encryption.gcpClientID,Ae=n.encryption.gcpPrivateKeyID,Ie=n.encryption.gcpPrivateKey,Pe=n.security.enableAutoCert,ke=n.security.enableTLS,Te=n.tenantSize.ecParity,we=n.tenantSize.distribution,Re=n.configure.tenantCustom,De=n.configure.logSearchEnabled,Fe=n.configure.prometheusEnabled,Ee=n.configure.logSearchVolumeSize,Ke=n.configure.logSearchSelectedStorageClass,ze=n.configure.logSearchImage,Ge=n.configure.kesImage,Ue=n.configure.logSearchPostgresImage,Le=n.configure.logSearchPostgresInitImage,Me=n.configure.prometheusImage,qe=n.configure.prometheusSidecarImage,Ve=n.configure.prometheusInitImage,Be=n.configure.prometheusSelectedStorageClass,Oe=n.configure.prometheusVolumeSize,We=n.affinity.podAffinity,$e=n.affinity.nodeSelectorLabels,He=n.affinity.withPodAntiAffinity,Qe=n.configure.tenantSecurityContext,Ye=n.configure.logSearchSecurityContext,Je=n.configure.logSearchPostgresSecurityContext,Xe=n.configure.prometheusSecurityContext,et=n.encryption.kesSecurityContext,tt=n.encryption.replicas;if(D){var nt=S.filter((function(e){return""!==e.key.trim()})),at=(0,f.en)([]),rt={};switch(We){case"default":rt={affinity:(0,y.P)(e,at)};break;case"nodeSelector":rt={affinity:(0,y.q)($e,He,e,at)}}var st=Te.split(":")[1],it={name:e,namespace:u,access_key:"",secret_key:"",access_keys:[],secret_keys:[],enable_tls:ke&&Pe,enable_console:!0,enable_prometheus:!0,service_name:"",image:a,expose_minio:m,expose_console:h,pools:[(0,r.Z)((0,r.Z)({name:at,servers:we.nodes,volumes_per_server:we.disks,volume_configuration:{size:we.pvSize,storage_class_name:t},securityContext:Re?Qe:null},rt),{},{tolerations:nt})],erasureCodingParity:parseInt(st,10)};""===n.tenantSize.resourcesCPURequest&&""===n.tenantSize.resourcesCPULimit&&""===n.tenantSize.resourcesMemoryRequest&&""===n.tenantSize.resourcesMemoryLimit||(it.pools[0].resources={},""===n.tenantSize.resourcesCPURequest&&""===n.tenantSize.resourcesMemoryRequest||(it.pools[0].resources.requests={},""!==n.tenantSize.resourcesCPURequest&&(it.pools[0].resources.requests.cpu=parseInt(n.tenantSize.resourcesCPURequest)),""!==n.tenantSize.resourcesMemoryRequest&&(it.pools[0].resources.requests.memory=parseInt((0,f.Pw)(n.tenantSize.resourcesMemoryRequest,"Gi",!0)))),""===n.tenantSize.resourcesCPULimit&&""===n.tenantSize.resourcesMemoryLimit||(it.pools[0].resources.limits={},""!==n.tenantSize.resourcesCPULimit&&(it.pools[0].resources.limits.cpu=parseInt(n.tenantSize.resourcesCPULimit)),""!==n.tenantSize.resourcesMemoryLimit&&(it.pools[0].resources.limits.memory=parseInt((0,f.Pw)(n.tenantSize.resourcesMemoryLimit,"Gi",!0))))),s&&(it=(0,r.Z)((0,r.Z)({},it),{},{image_registry:{registry:l,username:c,password:d}})),De&&(it=(0,r.Z)((0,r.Z)({},it),{},{logSearchConfiguration:{storageClass:"default"===Ke?"":Ke,storageSize:parseInt(Ee),image:ze,postgres_image:Ue,postgres_init_image:Le,securityContext:Ye,postgres_securityContext:Je}})),Fe&&(it=(0,r.Z)((0,r.Z)({},it),{},{prometheusConfiguration:{storageClass:"default"===Be?"":Be,storageSize:parseInt(Oe),image:Me,sidecar_image:qe,init_image:Ve,securityContext:Xe}}));var ot=null,lt=null,ct=null,dt=null;if(V.length>0&&(ct={ca_certificates:V.map((function(e){return e.encoded_cert})).filter((function(e){return e}))}),B.length>0&&(dt={console_ca_certificates:B.map((function(e){return e.encoded_cert})).filter((function(e){return e}))}),ke&&q.length>0&&(ot={minio:q.map((function(e){return{crt:e.encoded_cert,key:e.encoded_key}})).filter((function(e){return e.crt&&e.key}))}),ke&&""!==O.encoded_cert&&""!==O.encoded_key&&(lt={console:{crt:O.encoded_cert,key:O.encoded_key}}),(ot||lt||ct||dt)&&(it=(0,r.Z)((0,r.Z)({},it),{},{tls:(0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},ot),lt),ct),dt)})),J){var ut={};switch(X){case"gemalto":var mt={};""!==Y.encoded_cert&&(mt={ca:Y.encoded_cert}),ut={gemalto:{keysecure:{endpoint:ee,credentials:{token:te,domain:ne,retry:parseInt(ae)},tls:(0,r.Z)({},mt)}}};break;case"aws":ut={aws:{secretsmanager:{endpoint:re,region:se,kmskey:ie,credentials:{accesskey:oe,secretkey:le,token:ce}}}};break;case"azure":ut={azure:{keyvault:{endpoint:ve,credentials:{tenant_id:Ce,client_id:Se,client_secret:je}}}};break;case"gcp":ut={gcp:{secretmanager:{project_id:Ze,endpoint:be,credentials:{client_email:_e,client_id:Ne,private_key_id:Ae,private_key:Ie}}}};break;case"vault":var pt=null,gt=null;""!==H.encoded_key&&""!==H.encoded_cert&&(pt={key:H.encoded_key,crt:H.encoded_cert}),""!==Q.encoded_cert&&(gt={ca:Q.encoded_cert});var ft=null;(pt||gt)&&(ft={tls:(0,r.Z)((0,r.Z)({},pt),gt)}),ut={vault:(0,r.Z)((0,r.Z)({endpoint:de,engine:ue,namespace:me,prefix:pe,approle:{engine:ge,id:fe,secret:he,retry:parseInt(xe)}},ft),{},{status:{ping:parseInt(ye)}})}}var ht={},xt={};""!==$.encoded_key&&""!==$.encoded_cert&&(xt={client:{key:$.encoded_key,crt:$.encoded_cert}}),""!==W.encoded_key&&""!==W.encoded_cert&&(ht={server:{key:W.encoded_key,crt:W.encoded_cert}}),it=(0,r.Z)((0,r.Z)({},it),{},{encryption:(0,r.Z)((0,r.Z)((0,r.Z)({replicas:tt,securityContext:et,image:Ge},xt),ht),ut)})}var yt={};switch(x){case"Built-in":for(var vt=[],Ct=0;Ct.\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
\n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n
\n
{label}:
\n
\n \n \n {}}\n onMouseDown={() => {}}\n edge=\"end\"\n >\n \n \n \n \n }\n />\n
\n
\n );\n};\n\nexport default withStyles(styles)(CredentialItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n promptIcon: {\n marginRight: \".1rem\",\n display: \"flex\",\n alignItems: \"center\",\n height: \"2rem\",\n width: \"2rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\n \"href\",\n \"data:text/plain;charset=utf-8,\" + encodeURIComponent(text)\n );\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n
\n
New {entity} Created
\n
\n }\n titleIcon={}\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n
\n Console Credentials\n
\n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n \n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n \n )}\n
\n
\n )}\n {idp ? (\n
\n Please Login via the configured external identity provider.\n
\n ) : (\n
\n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
\n )}\n
\n \n {!idp && (\n <>\n {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n })\n );\n }}\n icon={}\n variant=\"contained\"\n color=\"primary\"\n />\n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n {\n let allCredentials = {};\n if (consoleCreds) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n })\n );\n }}\n icon={}\n variant=\"contained\"\n color=\"primary\"\n />\n )}\n \n )}\n \n
\n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n
\n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
\n ) : (\n
\n
{value}
\n {\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
\n )}\n \n
\n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { isPageValid, updateAddField } from \"../../actions\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { ISecurityContext } from \"../../types\";\n\ninterface IConfigureProps {\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n classes: any;\n exposeMinIO: boolean;\n exposeConsole: boolean;\n tenantCustom: boolean;\n tenantSecurityContext: ISecurityContext;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n tenantCustomizationFields: {\n marginLeft: 30, // 2nd Level(15+15)\n width: \"88%\",\n margin: \"auto\",\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n\n fieldSpaceTop: {\n marginTop: 15,\n },\n\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Configure = ({\n classes,\n exposeMinIO,\n exposeConsole,\n tenantCustom,\n updateAddField,\n isPageValid,\n tenantSecurityContext,\n}: IConfigureProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"configure\", field, value);\n },\n [updateAddField]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n if (tenantCustom) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"tenant_securityContext_runAsUser\",\n required: true,\n value: tenantSecurityContext.runAsUser,\n customValidation:\n tenantSecurityContext.runAsUser === \"\" ||\n parseInt(tenantSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"tenant_securityContext_runAsGroup\",\n required: true,\n value: tenantSecurityContext.runAsGroup,\n customValidation:\n tenantSecurityContext.runAsGroup === \"\" ||\n parseInt(tenantSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"tenant_securityContext_fsGroup\",\n required: true,\n value: tenantSecurityContext.fsGroup,\n customValidation:\n tenantSecurityContext.fsGroup === \"\" ||\n parseInt(tenantSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPageValid(\"configure\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [isPageValid, tenantCustom, tenantSecurityContext]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
\n

Configure

\n \n Basic configurations for tenant management\n \n
\n
\n

Services

\n \n Whether the tenant's services should request an external IP via\n LoadBalancer service type.\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeMinIO\", checked);\n }}\n label={\"Expose MiniO Service\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeConsole\", checked);\n }}\n label={\"Expose Console Service\"}\n />\n \n\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"tenantCustom\", checked);\n }}\n label={\"Security Context\"}\n />\n \n {tenantCustom && (\n \n
\n \n SecurityContext for MinIO\n \n \n \n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={tenantSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"tenant_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={tenantSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"tenant_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={tenantSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"tenant_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
\n \n
\n
\n \n
\n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n
\n
\n
\n )}\n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n exposeMinIO: state.tenants.createTenant.fields.configure.exposeMinIO,\n exposeConsole: state.tenants.createTenant.fields.configure.exposeConsole,\n tenantCustom: state.tenants.createTenant.fields.configure.tenantCustom,\n tenantSecurityContext:\n state.tenants.createTenant.fields.configure.tenantSecurityContext,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(Configure));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, Tooltip, Typography } from \"@mui/material\";\nimport CasinoIcon from \"@mui/icons-material/Casino\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { isPageValid, updateAddField } from \"../../actions\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError, getRandomString } from \"../../utils\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\n\ninterface IIdentityProviderProps {\n classes: any;\n idpSelection: string;\n accessKeys: string[];\n secretKeys: string[];\n openIDConfigurationURL: string;\n openIDClientID: string;\n openIDSecretID: string;\n openIDCallbackURL: string;\n openIDClaimName: string;\n openIDScopes: string;\n ADURL: string;\n ADSkipTLS: boolean;\n ADServerInsecure: boolean;\n ADGroupSearchBaseDN: string;\n ADGroupSearchFilter: string;\n ADUserDNs: string[];\n ADLookupBindDN: string;\n ADLookupBindPassword: string;\n ADUserDNSearchBaseDN: string;\n ADUserDNSearchFilter: string;\n ADServerStartTLS: boolean;\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n shortened: {\n gridTemplateColumns: \"auto auto 50px 50px\",\n display: \"grid\",\n gridGap: 15,\n marginBottom: 10,\n \"& input\": {\n fontWeight: 400,\n },\n },\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n protocolRadioOptions: {\n display: \"flex\",\n flexFlow: \"column\",\n marginBottom: 10,\n\n \"& label\": {\n fontSize: 14,\n },\n \"& div\": {\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"baseline\",\n },\n },\n adUserDnRows: {\n display: \"flex\",\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst IdentityProvider = ({\n classes,\n idpSelection,\n accessKeys,\n secretKeys,\n openIDConfigurationURL,\n openIDClientID,\n openIDSecretID,\n openIDCallbackURL,\n openIDClaimName,\n openIDScopes,\n ADURL,\n ADSkipTLS,\n ADServerInsecure,\n ADGroupSearchBaseDN,\n ADGroupSearchFilter,\n ADUserDNs,\n ADLookupBindDN,\n ADLookupBindPassword,\n ADUserDNSearchBaseDN,\n ADUserDNSearchFilter,\n ADServerStartTLS,\n updateAddField,\n isPageValid,\n}: IIdentityProviderProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"identityProvider\", field, value);\n },\n [updateAddField]\n );\n const updateUserField = (index: number, value: string) => {\n const newUserField = [...accessKeys];\n newUserField[index] = value;\n updateField(\"accessKeys\", newUserField);\n };\n const updatePwordField = (index: number, value: string) => {\n const newUserField = [...secretKeys];\n newUserField[index] = value;\n updateField(\"secretKeys\", newUserField);\n };\n const updateADUserField = (index: number, value: string) => {\n const newADUserDNsField = [...ADUserDNs];\n newADUserDNsField[index] = value;\n updateField(\"ADUserDNs\", newADUserDNsField);\n };\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"Built-in\") {\n customIDPValidation = [...customIDPValidation];\n for (var i = 0; i < accessKeys.length; i++) {\n customIDPValidation.push({\n fieldKey: `accesskey-${i.toString()}`,\n required: true,\n value: accessKeys[i],\n pattern: /^[a-zA-Z0-9-]{8,63}$/,\n customPatternMessage: \"Keys must be at least length 8\",\n });\n customIDPValidation.push({\n fieldKey: `secretkey-${i.toString()}`,\n required: true,\n value: secretKeys[i],\n pattern: /^[a-zA-Z0-9-]{8,63}$/,\n customPatternMessage: \"Keys must be at least length 8\",\n });\n }\n }\n\n if (idpSelection === \"OpenID\") {\n customIDPValidation = [\n ...customIDPValidation,\n {\n fieldKey: \"openID_CONFIGURATION_URL\",\n required: true,\n value: openIDConfigurationURL,\n },\n {\n fieldKey: \"openID_clientID\",\n required: true,\n value: openIDClientID,\n },\n {\n fieldKey: \"openID_secretID\",\n required: true,\n value: openIDSecretID,\n },\n {\n fieldKey: \"openID_claimName\",\n required: true,\n value: openIDClaimName,\n },\n ];\n }\n\n if (idpSelection === \"AD\") {\n customIDPValidation = [\n ...customIDPValidation,\n {\n fieldKey: \"AD_URL\",\n required: true,\n value: ADURL,\n },\n {\n fieldKey: \"ad_lookupBindDN\",\n required: true,\n value: ADLookupBindDN,\n },\n ];\n // validate user DNs\n for (let i = 0; i < ADUserDNs.length; i++) {\n customIDPValidation.push({\n fieldKey: `ad-userdn-${i.toString()}`,\n required: true,\n value: ADUserDNs[i],\n });\n }\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n isPageValid(\"identityProvider\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n ADLookupBindDN,\n idpSelection,\n accessKeys,\n secretKeys,\n openIDClientID,\n openIDSecretID,\n ADURL,\n ADGroupSearchBaseDN,\n ADGroupSearchFilter,\n ADUserDNs,\n isPageValid,\n openIDConfigurationURL,\n openIDClaimName,\n ]);\n let inputs = null;\n if (idpSelection === \"Built-in\") {\n inputs = accessKeys.map((_, index) => {\n return (\n \n
\n ) => {\n updateUserField(index, e.target.value);\n cleanValidation(`accesskey-${index.toString()}`);\n }}\n index={index}\n key={`csv-accesskey-${index.toString()}`}\n error={validationErrors[`accesskey-${index.toString()}`] || \"\"}\n />\n ) => {\n updatePwordField(index, e.target.value);\n cleanValidation(`secretkey-${index.toString()}`);\n }}\n index={index}\n key={`csv-secretkey-${index.toString()}`}\n error={validationErrors[`secretkey-${index.toString()}`] || \"\"}\n />\n
\n \n
\n {\n accessKeys.push(\"\");\n secretKeys.push(\"\");\n updateUserField(accessKeys.length - 1, \"\");\n updatePwordField(secretKeys.length - 1, \"\");\n }}\n >\n \n \n
\n
\n \n
\n {\n if (accessKeys.length > 1) {\n accessKeys.splice(index, 1);\n secretKeys.splice(index, 1);\n updateUserField(\n accessKeys.length - 1,\n accessKeys[accessKeys.length - 1]\n );\n }\n }}\n >\n \n \n
\n
\n \n
\n {\n updateUserField(index, getRandomString(16));\n updatePwordField(index, getRandomString(32));\n }}\n size={\"small\"}\n >\n \n \n
\n
\n
\n
\n
\n );\n });\n }\n if (idpSelection === \"AD\") {\n inputs = ADUserDNs.map((_, index) => {\n return (\n \n
\n ) => {\n updateADUserField(index, e.target.value);\n cleanValidation(`ad-userdn-${index.toString()}`);\n }}\n index={index}\n key={`csv-ad-userdn-${index.toString()}`}\n error={validationErrors[`ad-userdn-${index.toString()}`] || \"\"}\n />\n
\n \n {\n ADUserDNs.push(\"\");\n updateADUserField(ADUserDNs.length - 1, \"\");\n }}\n >\n \n \n \n \n {\n if (ADUserDNs.length > 1) {\n ADUserDNs.splice(index, 1);\n updateUserField(\n ADUserDNs.length - 1,\n ADUserDNs[ADUserDNs.length - 1]\n );\n }\n }}\n >\n \n \n \n
\n
\n
\n );\n });\n }\n return (\n \n
\n

Identity Provider

\n \n Access to the tenant can be controlled via an external Identity\n Manager.\n \n
\n \n \n {\n updateField(\"idpSelection\", e.target.value);\n }}\n selectorOptions={[\n { label: \"Built-in\", value: \"Built-in\" },\n { label: \"OpenID\", value: \"OpenID\" },\n { label: \"Active Directory\", value: \"AD\" },\n ]}\n />\n \n {idpSelection === \"Built-in\" && (\n \n Add additional users\n {inputs}\n \n )}\n {idpSelection === \"OpenID\" && (\n \n \n ) => {\n updateField(\"openIDConfigurationURL\", e.target.value);\n cleanValidation(\"openID_CONFIGURATION_URL\");\n }}\n label=\"Configuration URL\"\n value={openIDConfigurationURL}\n placeholder=\"https://your-identity-provider.com/.well-known/openid-configuration\"\n error={validationErrors[\"openID_CONFIGURATION_URL\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDClientID\", e.target.value);\n cleanValidation(\"openID_clientID\");\n }}\n label=\"Client ID\"\n value={openIDClientID}\n error={validationErrors[\"openID_clientID\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDSecretID\", e.target.value);\n cleanValidation(\"openID_secretID\");\n }}\n label=\"Secret ID\"\n value={openIDSecretID}\n error={validationErrors[\"openID_secretID\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDCallbackURL\", e.target.value);\n cleanValidation(\"openID_callbackURL\");\n }}\n label=\"Callback URL\"\n value={openIDCallbackURL}\n placeholder=\"https://your-console-endpoint:9443/oauth_callback\"\n error={validationErrors[\"openID_callbackURL\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"openIDClaimName\", e.target.value);\n cleanValidation(\"openID_claimName\");\n }}\n label=\"Claim Name\"\n value={openIDClaimName}\n error={validationErrors[\"openID_claimName\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDScopes\", e.target.value);\n cleanValidation(\"openID_scopes\");\n }}\n label=\"Scopes\"\n value={openIDScopes}\n />\n \n \n )}\n {idpSelection === \"AD\" && (\n \n \n ) => {\n updateField(\"ADURL\", e.target.value);\n cleanValidation(\"AD_URL\");\n }}\n label=\"LDAP Server Address\"\n value={ADURL}\n placeholder=\"ldap-server:636\"\n error={validationErrors[\"AD_URL\"] || \"\"}\n required\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADSkipTLS\", checked);\n }}\n label={\"Skip TLS Verification\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADServerInsecure\", checked);\n }}\n label={\"Server Insecure\"}\n />\n \n {ADServerInsecure ? (\n \n \n Warning: All traffic with Active Directory will be unencrypted\n \n
\n
\n ) : null}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADServerStartTLS\", checked);\n }}\n label={\"Start TLS connection to AD/LDAP server\"}\n />\n \n \n ) => {\n updateField(\"ADLookupBindDN\", e.target.value);\n cleanValidation(\"ad_lookupBindDN\");\n }}\n label=\"Lookup Bind DN\"\n value={ADLookupBindDN}\n placeholder=\"cn=admin,dc=min,dc=io\"\n error={validationErrors[\"ad_lookupBindDN\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"ADLookupBindPassword\", e.target.value);\n }}\n label=\"Lookup Bind Password\"\n value={ADLookupBindPassword}\n placeholder=\"admin\"\n />\n \n \n ) => {\n updateField(\"ADUserDNSearchBaseDN\", e.target.value);\n }}\n label=\"User DN Search Base DN\"\n value={ADUserDNSearchBaseDN}\n placeholder=\"dc=min,dc=io\"\n />\n \n \n ) => {\n updateField(\"ADUserDNSearchFilter\", e.target.value);\n }}\n label=\"User DN Search Filter\"\n value={ADUserDNSearchFilter}\n placeholder=\"(sAMAcountName=%s)\"\n />\n \n \n ) => {\n updateField(\"ADGroupSearchBaseDN\", e.target.value);\n }}\n label=\"Group Search Base DN\"\n value={ADGroupSearchBaseDN}\n placeholder=\"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io\"\n />\n \n \n ) => {\n updateField(\"ADGroupSearchFilter\", e.target.value);\n }}\n label=\"Group Search Filter\"\n value={ADGroupSearchFilter}\n placeholder=\"(&(objectclass=groupOfNames)(member=%s))\"\n />\n \n
\n \n List of user DNs (Distinguished Names) to be Tenant Administrators\n \n \n {inputs}\n \n
\n
\n )}\n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n idpSelection: state.tenants.createTenant.fields.identityProvider.idpSelection,\n accessKeys: state.tenants.createTenant.fields.identityProvider.accessKeys,\n secretKeys: state.tenants.createTenant.fields.identityProvider.secretKeys,\n openIDConfigurationURL:\n state.tenants.createTenant.fields.identityProvider.openIDConfigurationURL,\n openIDClientID:\n state.tenants.createTenant.fields.identityProvider.openIDClientID,\n openIDSecretID:\n state.tenants.createTenant.fields.identityProvider.openIDSecretID,\n openIDCallbackURL:\n state.tenants.createTenant.fields.identityProvider.openIDCallbackURL,\n openIDClaimName:\n state.tenants.createTenant.fields.identityProvider.openIDClaimName,\n openIDScopes: state.tenants.createTenant.fields.identityProvider.openIDScopes,\n ADURL: state.tenants.createTenant.fields.identityProvider.ADURL,\n ADSkipTLS: state.tenants.createTenant.fields.identityProvider.ADSkipTLS,\n ADServerInsecure:\n state.tenants.createTenant.fields.identityProvider.ADServerInsecure,\n ADGroupSearchBaseDN:\n state.tenants.createTenant.fields.identityProvider.ADGroupSearchBaseDN,\n ADGroupSearchFilter:\n state.tenants.createTenant.fields.identityProvider.ADGroupSearchFilter,\n ADUserDNs: state.tenants.createTenant.fields.identityProvider.ADUserDNs,\n ADLookupBindDN:\n state.tenants.createTenant.fields.identityProvider.ADLookupBindDN,\n ADLookupBindPassword:\n state.tenants.createTenant.fields.identityProvider.ADLookupBindPassword,\n ADUserDNSearchBaseDN:\n state.tenants.createTenant.fields.identityProvider.ADUserDNSearchBaseDN,\n ADUserDNSearchFilter:\n state.tenants.createTenant.fields.identityProvider.ADUserDNSearchFilter,\n ADServerStartTLS:\n state.tenants.createTenant.fields.identityProvider.ADServerStartTLS,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(IdentityProvider));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, Typography } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport {\n addCaCertificate,\n addFileToCaCertificates,\n addFileToKeyPair,\n addKeyPair,\n deleteCaCertificate,\n deleteKeyPair,\n isPageValid,\n updateAddField,\n} from \"../../actions\";\nimport { AppState } from \"../../../../../store\";\nimport { KeyPair } from \"../../ListTenants/utils\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport FileSelector from \"../../../Common/FormComponents/FileSelector/FileSelector\";\nimport AddIcon from \"../../../../../icons/AddIcon\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\n\ninterface ISecurityProps {\n classes: any;\n enableTLS: boolean;\n enableAutoCert: boolean;\n enableCustomCerts: boolean;\n minioCertificates: KeyPair[];\n caCertificates: KeyPair[];\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n addFileToCaCertificates: typeof addFileToCaCertificates;\n deleteCaCertificate: typeof deleteCaCertificate;\n addCaCertificate: typeof addCaCertificate;\n addKeyPair: typeof addKeyPair;\n addFileToKeyPair: typeof addFileToKeyPair;\n deleteKeyPair: typeof deleteKeyPair;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n minioCertificateRows: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n fileItem: {\n marginRight: 10,\n display: \"flex\",\n \"& div label\": {\n minWidth: 50,\n },\n\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n minioCertsContainer: {\n marginBottom: 15,\n },\n minioCACertsRow: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n\n \"& div label\": {\n minWidth: 50,\n },\n },\n },\n rowActions: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n\n ...createTenantCommon,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Security = ({\n classes,\n enableTLS,\n enableAutoCert,\n enableCustomCerts,\n minioCertificates,\n caCertificates,\n updateAddField,\n isPageValid,\n addFileToCaCertificates,\n deleteCaCertificate,\n addCaCertificate,\n addKeyPair,\n addFileToKeyPair,\n deleteKeyPair,\n}: ISecurityProps) => {\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"security\", field, value);\n },\n [updateAddField]\n );\n\n // Validation\n\n useEffect(() => {\n if (!enableTLS) {\n isPageValid(\"security\", true);\n return;\n }\n if (enableAutoCert) {\n isPageValid(\"security\", true);\n return;\n }\n if (enableCustomCerts) {\n isPageValid(\"security\", true);\n return;\n }\n isPageValid(\"security\", false);\n }, [enableTLS, enableAutoCert, enableCustomCerts, isPageValid]);\n\n return (\n \n
\n

Security

\n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableTLS\", checked);\n }}\n label={\"Enable TLS\"}\n />\n Enable TLS for the tenant, this is required for Encryption Configuration\n {enableTLS && (\n \n
\n
\n \n AutoCert: MinIO Operator will generate all TLS certificates\n automatically\n \n \n Custom certificates: Allow user to provide your own certificates\n \n
\n
\n )}\n
\n {enableTLS && (\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableAutoCert\", checked);\n }}\n label={\"Enable AutoCert\"}\n />\n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableCustomCerts\", checked);\n }}\n label={\"Custom Certificates\"}\n />\n \n {enableCustomCerts && (\n \n \n \n
\n \n MinIO Certificates\n \n {minioCertificates.map((keyPair: KeyPair) => (\n \n \n {\n addFileToKeyPair(\n keyPair.id,\n \"cert\",\n fileName,\n encodedValue\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n {\n addFileToKeyPair(\n keyPair.id,\n \"key\",\n fileName,\n encodedValue\n );\n }}\n accept=\".key,.pem\"\n id=\"tlsKey\"\n name=\"tlsKey\"\n label=\"Key\"\n value={keyPair.key}\n />\n \n\n \n
\n \n \n \n
\n
\n {\n deleteKeyPair(keyPair.id);\n }}\n >\n \n \n
\n
\n \n ))}\n
\n
\n
\n\n \n \n
\n \n MinIO CA Certificates\n \n\n {caCertificates.map((keyPair: KeyPair) => (\n \n \n {\n addFileToCaCertificates(\n keyPair.id,\n \"cert\",\n fileName,\n encodedValue\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n \n \n
\n
\n \n \n \n
\n
\n {\n deleteCaCertificate(keyPair.id);\n }}\n >\n \n \n
\n
\n
\n \n ))}\n
\n
\n
\n
\n )}\n
\n )}\n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n enableTLS: state.tenants.createTenant.fields.security.enableTLS,\n enableAutoCert: state.tenants.createTenant.fields.security.enableAutoCert,\n enableCustomCerts:\n state.tenants.createTenant.fields.security.enableCustomCerts,\n minioCertificates: state.tenants.createTenant.certificates.minioCertificates,\n caCertificates: state.tenants.createTenant.certificates.caCertificates,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n addFileToCaCertificates,\n deleteCaCertificate,\n addCaCertificate,\n addKeyPair,\n addFileToKeyPair,\n deleteKeyPair,\n});\n\nexport default withStyles(styles)(connector(Security));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Paper } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n addFileClientCert,\n addFileGemaltoCa,\n addFileServerCert,\n addFileVaultCa,\n addFileVaultCert,\n isPageValid,\n updateAddField,\n} from \"../../actions\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport FileSelector from \"../../../Common/FormComponents/FileSelector/FileSelector\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport { KeyPair } from \"../../ListTenants/utils\";\nimport { ISecurityContext } from \"../../types\";\n\ninterface IEncryptionProps {\n classes: any;\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n addFileServerCert: typeof addFileServerCert;\n addFileClientCert: typeof addFileClientCert;\n addFileVaultCert: typeof addFileVaultCert;\n addFileVaultCa: typeof addFileVaultCa;\n addFileGemaltoCa: typeof addFileGemaltoCa;\n enableEncryption: boolean;\n encryptionType: string;\n gemaltoEndpoint: string;\n gemaltoToken: string;\n gemaltoDomain: string;\n gemaltoRetry: string;\n awsEndpoint: string;\n awsRegion: string;\n awsKMSKey: string;\n awsAccessKey: string;\n awsSecretKey: string;\n awsToken: string;\n vaultEndpoint: string;\n vaultEngine: string;\n vaultNamespace: string;\n vaultPrefix: string;\n vaultAppRoleEngine: string;\n vaultId: string;\n vaultSecret: string;\n vaultRetry: string;\n vaultPing: string;\n azureEndpoint: string;\n azureTenantID: string;\n azureClientID: string;\n azureClientSecret: string;\n gcpProjectID: string;\n gcpEndpoint: string;\n gcpClientEmail: string;\n gcpClientID: string;\n gcpPrivateKeyID: string;\n gcpPrivateKey: string;\n enableCustomCertsForKES: boolean;\n enableAutoCert: boolean;\n enableTLS: boolean;\n enableCustomCerts: boolean;\n minioCertificates: KeyPair[];\n serverCertificate: KeyPair;\n clientCertificate: KeyPair;\n vaultCertificate: KeyPair;\n vaultCA: KeyPair;\n gemaltoCA: KeyPair;\n kesSecurityContext: ISecurityContext;\n replicas: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n encryptionTypeOptions: {\n marginBottom: 15,\n },\n mutualTlsConfig: {\n marginTop: 15,\n \"& fieldset\": {\n flex: 1,\n },\n },\n rightSpacer: {\n marginRight: 15,\n },\n responsiveContainer: {\n \"@media (max-width: 900px)\": {\n display: \"flex\",\n flexFlow: \"column\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Encryption = ({\n classes,\n updateAddField,\n isPageValid,\n addFileServerCert,\n addFileClientCert,\n addFileVaultCert,\n addFileVaultCa,\n addFileGemaltoCa,\n enableEncryption,\n enableCustomCerts,\n encryptionType,\n gemaltoEndpoint,\n gemaltoToken,\n gemaltoDomain,\n gemaltoRetry,\n awsEndpoint,\n awsRegion,\n awsKMSKey,\n awsAccessKey,\n awsSecretKey,\n awsToken,\n vaultEndpoint,\n vaultEngine,\n vaultNamespace,\n vaultPrefix,\n vaultAppRoleEngine,\n vaultId,\n vaultSecret,\n vaultRetry,\n vaultPing,\n azureEndpoint,\n azureTenantID,\n azureClientID,\n azureClientSecret,\n gcpProjectID,\n gcpEndpoint,\n gcpClientEmail,\n gcpClientID,\n gcpPrivateKeyID,\n gcpPrivateKey,\n enableCustomCertsForKES,\n enableAutoCert,\n enableTLS,\n minioCertificates,\n serverCertificate,\n clientCertificate,\n vaultCertificate,\n vaultCA,\n gemaltoCA,\n kesSecurityContext,\n replicas,\n}: IEncryptionProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n let encryptionAvailable = false;\n if (\n enableTLS &&\n (enableAutoCert ||\n (minioCertificates &&\n minioCertificates.filter(\n (item) => item.encoded_key && item.encoded_cert\n ).length > 0))\n ) {\n encryptionAvailable = true;\n }\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"encryption\", field, value);\n },\n [updateAddField]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (enableEncryption) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"replicas\",\n required: true,\n value: replicas,\n customValidation: parseInt(replicas) < 1,\n customValidationMessage: \"Replicas needs to be 1 or greater\",\n },\n {\n fieldKey: \"kes_securityContext_runAsUser\",\n required: true,\n value: kesSecurityContext.runAsUser,\n customValidation:\n kesSecurityContext.runAsUser === \"\" ||\n parseInt(kesSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_runAsGroup\",\n required: true,\n value: kesSecurityContext.runAsGroup,\n customValidation:\n kesSecurityContext.runAsGroup === \"\" ||\n parseInt(kesSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_fsGroup\",\n required: true,\n value: kesSecurityContext.fsGroup,\n customValidation:\n kesSecurityContext.fsGroup === \"\" ||\n parseInt(kesSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n\n if (enableCustomCerts) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"serverKey\",\n required: !enableAutoCert,\n value: serverCertificate.encoded_key,\n },\n {\n fieldKey: \"serverCert\",\n required: !enableAutoCert,\n value: serverCertificate.encoded_cert,\n },\n {\n fieldKey: \"clientKey\",\n required: !enableAutoCert,\n value: clientCertificate.encoded_key,\n },\n {\n fieldKey: \"clientCert\",\n required: !enableAutoCert,\n value: clientCertificate.encoded_cert,\n },\n ];\n }\n\n if (encryptionType === \"vault\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"vault_endpoint\",\n required: true,\n value: vaultEndpoint,\n },\n {\n fieldKey: \"vault_id\",\n required: true,\n value: vaultId,\n },\n {\n fieldKey: \"vault_secret\",\n required: true,\n value: vaultSecret,\n },\n {\n fieldKey: \"vault_ping\",\n required: false,\n value: vaultPing,\n customValidation: parseInt(vaultPing) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n {\n fieldKey: \"vault_retry\",\n required: false,\n value: vaultRetry,\n customValidation: parseInt(vaultRetry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n if (encryptionType === \"aws\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"aws_endpoint\",\n required: true,\n value: awsEndpoint,\n },\n {\n fieldKey: \"aws_region\",\n required: true,\n value: awsRegion,\n },\n {\n fieldKey: \"aws_accessKey\",\n required: true,\n value: awsAccessKey,\n },\n {\n fieldKey: \"aws_secretKey\",\n required: true,\n value: awsSecretKey,\n },\n ];\n }\n\n if (encryptionType === \"gemalto\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"gemalto_endpoint\",\n required: true,\n value: gemaltoEndpoint,\n },\n {\n fieldKey: \"gemalto_token\",\n required: true,\n value: gemaltoToken,\n },\n {\n fieldKey: \"gemalto_domain\",\n required: true,\n value: gemaltoDomain,\n },\n {\n fieldKey: \"gemalto_retry\",\n required: false,\n value: gemaltoRetry,\n customValidation: parseInt(gemaltoRetry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n if (encryptionType === \"azure\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"azure_endpoint\",\n required: true,\n value: azureEndpoint,\n },\n {\n fieldKey: \"azure_tenant_id\",\n required: true,\n value: azureTenantID,\n },\n {\n fieldKey: \"azure_client_id\",\n required: true,\n value: azureClientID,\n },\n {\n fieldKey: \"azure_client_secret\",\n required: true,\n value: azureClientSecret,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n isPageValid(\"encryption\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n enableEncryption,\n encryptionType,\n vaultEndpoint,\n vaultEngine,\n vaultId,\n vaultSecret,\n vaultPing,\n vaultRetry,\n awsEndpoint,\n awsRegion,\n awsSecretKey,\n awsAccessKey,\n gemaltoEndpoint,\n gemaltoToken,\n gemaltoDomain,\n gemaltoRetry,\n gcpProjectID,\n gcpEndpoint,\n gcpClientEmail,\n gcpClientID,\n gcpPrivateKeyID,\n gcpPrivateKey,\n azureEndpoint,\n azureTenantID,\n azureClientID,\n azureClientSecret,\n isPageValid,\n enableAutoCert,\n enableCustomCerts,\n serverCertificate.encoded_key,\n serverCertificate.encoded_cert,\n clientCertificate.encoded_key,\n clientCertificate.encoded_cert,\n kesSecurityContext,\n replicas,\n ]);\n\n return (\n \n
\n

Encryption

\n \n How would you like to encrypt the information at rest.\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableEncryption\", checked);\n }}\n label={\"Enable Server Side Encryption\"}\n disabled={!encryptionAvailable}\n />\n \n {enableEncryption && (\n \n \n {\n updateField(\"encryptionType\", e.target.value);\n }}\n selectorOptions={[\n { label: \"Vault\", value: \"vault\" },\n { label: \"AWS\", value: \"aws\" },\n { label: \"Gemalto\", value: \"gemalto\" },\n { label: \"GCP\", value: \"gcp\" },\n { label: \"Azure\", value: \"azure\" },\n ]}\n />\n \n {encryptionType === \"vault\" && (\n \n \n ) => {\n updateField(\"vaultEndpoint\", e.target.value);\n cleanValidation(\"vault_endpoint\");\n }}\n label=\"Endpoint\"\n value={vaultEndpoint}\n error={validationErrors[\"vault_endpoint\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultEngine\", e.target.value);\n cleanValidation(\"vault_engine\");\n }}\n label=\"Engine\"\n value={vaultEngine}\n />\n \n \n ) => {\n updateField(\"vaultNamespace\", e.target.value);\n }}\n label=\"Namespace\"\n value={vaultNamespace}\n />\n \n \n ) => {\n updateField(\"vaultPrefix\", e.target.value);\n }}\n label=\"Prefix\"\n value={vaultPrefix}\n />\n \n\n \n
\n App Role\n \n ) => {\n updateField(\"vaultAppRoleEngine\", e.target.value);\n }}\n label=\"Engine\"\n value={vaultAppRoleEngine}\n />\n \n \n ) => {\n updateField(\"vaultId\", e.target.value);\n cleanValidation(\"vault_id\");\n }}\n label=\"AppRole ID\"\n value={vaultId}\n error={validationErrors[\"vault_id\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultSecret\", e.target.value);\n cleanValidation(\"vault_secret\");\n }}\n label=\"AppRole Secret\"\n value={vaultSecret}\n error={validationErrors[\"vault_secret\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultRetry\", e.target.value);\n cleanValidation(\"vault_retry\");\n }}\n label=\"Retry (Seconds)\"\n value={vaultRetry}\n error={validationErrors[\"vault_retry\"] || \"\"}\n />\n \n
\n
\n\n \n
\n \n Mutual TLS authentication (optional)\n \n {\n addFileVaultCert(\"key\", fileName, encodedValue);\n cleanValidation(\"vault_key\");\n }}\n accept=\".key,.pem\"\n id=\"vault_key\"\n name=\"vault_key\"\n label=\"Key\"\n value={vaultCertificate.key}\n />\n {\n addFileVaultCert(\"cert\", fileName, encodedValue);\n cleanValidation(\"vault_cert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_cert\"\n name=\"vault_cert\"\n label=\"Cert\"\n value={vaultCertificate.cert}\n />\n {\n addFileVaultCa(fileName, encodedValue);\n cleanValidation(\"vault_ca\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_ca\"\n name=\"vault_ca\"\n label=\"CA\"\n value={vaultCA.cert}\n />\n
\n
\n \n
\n Status\n ) => {\n updateField(\"vaultPing\", e.target.value);\n cleanValidation(\"vault_ping\");\n }}\n label=\"Ping (Seconds)\"\n value={vaultPing}\n error={validationErrors[\"vault_ping\"] || \"\"}\n />\n
\n \n
\n )}\n {encryptionType === \"azure\" && (\n \n \n ) => {\n updateField(\"azureEndpoint\", e.target.value);\n cleanValidation(\"azure_endpoint\");\n }}\n label=\"Endpoint\"\n value={azureEndpoint}\n error={validationErrors[\"azure_endpoint\"] || \"\"}\n />\n \n \n
\n \n Credentials\n \n \n ) => {\n updateField(\"azureTenantID\", e.target.value);\n cleanValidation(\"azure_tenant_id\");\n }}\n label=\"Tenant ID\"\n value={azureTenantID}\n error={validationErrors[\"azure_tenant_id\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"azureClientID\", e.target.value);\n cleanValidation(\"azure_client_id\");\n }}\n label=\"Client ID\"\n value={azureClientID}\n error={validationErrors[\"azure_client_id\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"azureClientSecret\", e.target.value);\n cleanValidation(\"azure_client_secret\");\n }}\n label=\"Client Secret\"\n value={azureClientSecret}\n error={validationErrors[\"azure_client_secret\"] || \"\"}\n />\n \n
\n
\n
\n )}\n {encryptionType === \"gcp\" && (\n \n \n ) => {\n updateField(\"gcpProjectID\", e.target.value);\n }}\n label=\"Project ID\"\n value={gcpProjectID}\n />\n \n \n ) => {\n updateField(\"gcpEndpoint\", e.target.value);\n }}\n label=\"Endpoint\"\n value={gcpEndpoint}\n />\n \n \n
\n \n Credentials\n \n \n ) => {\n updateField(\"gcpClientEmail\", e.target.value);\n }}\n label=\"Client Email\"\n value={gcpClientEmail}\n />\n \n \n ) => {\n updateField(\"gcpClientID\", e.target.value);\n }}\n label=\"Client ID\"\n value={gcpClientID}\n />\n \n \n ) => {\n updateField(\"gcpPrivateKeyID\", e.target.value);\n }}\n label=\"Private Key ID\"\n value={gcpPrivateKeyID}\n />\n \n \n ) => {\n updateField(\"gcpPrivateKey\", e.target.value);\n }}\n label=\"Private Key\"\n value={gcpPrivateKey}\n />\n \n
\n
\n
\n )}\n {encryptionType === \"aws\" && (\n \n \n ) => {\n updateField(\"awsEndpoint\", e.target.value);\n cleanValidation(\"aws_endpoint\");\n }}\n label=\"Endpoint\"\n value={awsEndpoint}\n error={validationErrors[\"aws_endpoint\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsRegion\", e.target.value);\n cleanValidation(\"aws_region\");\n }}\n label=\"Region\"\n value={awsRegion}\n error={validationErrors[\"aws_region\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsKMSKey\", e.target.value);\n }}\n label=\"KMS Key\"\n value={awsKMSKey}\n />\n \n \n
\n \n Credentials\n \n \n ) => {\n updateField(\"awsAccessKey\", e.target.value);\n cleanValidation(\"aws_accessKey\");\n }}\n label=\"Access Key\"\n value={awsAccessKey}\n error={validationErrors[\"aws_accessKey\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsSecretKey\", e.target.value);\n cleanValidation(\"aws_secretKey\");\n }}\n label=\"Secret Key\"\n value={awsSecretKey}\n error={validationErrors[\"aws_secretKey\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsToken\", e.target.value);\n }}\n label=\"Token\"\n value={awsToken}\n />\n \n
\n
\n
\n )}\n {encryptionType === \"gemalto\" && (\n \n \n ) => {\n updateField(\"gemaltoEndpoint\", e.target.value);\n cleanValidation(\"gemalto_endpoint\");\n }}\n label=\"Endpoint\"\n value={gemaltoEndpoint}\n error={validationErrors[\"gemalto_endpoint\"] || \"\"}\n required\n />\n \n \n
\n \n Credentials\n \n \n ) => {\n updateField(\"gemaltoToken\", e.target.value);\n cleanValidation(\"gemalto_token\");\n }}\n label=\"Token\"\n value={gemaltoToken}\n error={validationErrors[\"gemalto_token\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"gemaltoDomain\", e.target.value);\n cleanValidation(\"gemalto_domain\");\n }}\n label=\"Domain\"\n value={gemaltoDomain}\n error={validationErrors[\"gemalto_domain\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"gemaltoRetry\", e.target.value);\n cleanValidation(\"gemalto_retry\");\n }}\n label=\"Retry (seconds)\"\n value={gemaltoRetry}\n error={validationErrors[\"gemalto_retry\"] || \"\"}\n />\n \n
\n \n \n
\n \n Custom CA Root certificate verification\n \n\n {\n addFileGemaltoCa(fileName, encodedValue);\n cleanValidation(\"gemalto_ca\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"gemalto_ca\"\n name=\"gemalto_ca\"\n label=\"CA\"\n value={gemaltoCA.cert}\n />\n
\n \n
\n )}\n
\n

Additional Configurations

\n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableCustomCertsForKES\", checked);\n }}\n label={\"Custom Certificates\"}\n disabled={!enableAutoCert}\n />\n \n {(enableCustomCertsForKES || !enableAutoCert) && (\n \n \n \n
\n \n Encryption Service Certificates\n \n {\n addFileServerCert(\"key\", fileName, encodedValue);\n cleanValidation(\"serverKey\");\n }}\n accept=\".key,.pem\"\n id=\"serverKey\"\n name=\"serverKey\"\n label=\"Key\"\n error={validationErrors[\"serverKey\"] || \"\"}\n value={serverCertificate.key}\n required={!enableAutoCert}\n />\n {\n addFileServerCert(\"cert\", fileName, encodedValue);\n cleanValidation(\"serverCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"serverCert\"\n name=\"serverCert\"\n label=\"Cert\"\n error={validationErrors[\"serverCert\"] || \"\"}\n value={serverCertificate.cert}\n required={!enableAutoCert}\n />\n
\n
\n
\n \n \n
\n \n Mutual TLS authentication with MinIO\n \n {\n addFileClientCert(\"key\", fileName, encodedValue);\n cleanValidation(\"clientKey\");\n }}\n accept=\".key,.pem\"\n id=\"clientKey\"\n name=\"clientKey\"\n label=\"Key\"\n error={validationErrors[\"clientKey\"] || \"\"}\n value={clientCertificate.key}\n required={!enableAutoCert}\n />\n {\n addFileClientCert(\"cert\", fileName, encodedValue);\n cleanValidation(\"clientCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"clientCert\"\n name=\"clientCert\"\n label=\"Cert\"\n error={validationErrors[\"clientCert\"] || \"\"}\n value={clientCertificate.cert}\n required={!enableAutoCert}\n />\n
\n
\n
\n
\n )}\n \n \n ) => {\n updateField(\"replicas\", e.target.value);\n cleanValidation(\"replicas\");\n }}\n label=\"Replicas\"\n value={replicas}\n required\n error={validationErrors[\"replicas\"] || \"\"}\n />\n \n\n
\n \n SecurityContext for KES pods\n \n \n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"kes_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={kesSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"kes_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"kes_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={kesSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_runAsGroup\"] || \"\"\n }\n min=\"0\"\n />\n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"kes_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={kesSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n \n \n \n
\n \n
\n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n
\n
\n
\n
\n )}\n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n replicas: state.tenants.createTenant.fields.encryption.replicas,\n enableEncryption:\n state.tenants.createTenant.fields.encryption.enableEncryption,\n encryptionType: state.tenants.createTenant.fields.encryption.encryptionType,\n gemaltoEndpoint: state.tenants.createTenant.fields.encryption.gemaltoEndpoint,\n gemaltoToken: state.tenants.createTenant.fields.encryption.gemaltoToken,\n gemaltoDomain: state.tenants.createTenant.fields.encryption.gemaltoDomain,\n gemaltoRetry: state.tenants.createTenant.fields.encryption.gemaltoRetry,\n awsEndpoint: state.tenants.createTenant.fields.encryption.awsEndpoint,\n awsRegion: state.tenants.createTenant.fields.encryption.awsRegion,\n awsKMSKey: state.tenants.createTenant.fields.encryption.awsKMSKey,\n awsAccessKey: state.tenants.createTenant.fields.encryption.awsAccessKey,\n awsSecretKey: state.tenants.createTenant.fields.encryption.awsSecretKey,\n awsToken: state.tenants.createTenant.fields.encryption.awsToken,\n vaultEndpoint: state.tenants.createTenant.fields.encryption.vaultEndpoint,\n vaultEngine: state.tenants.createTenant.fields.encryption.vaultEngine,\n vaultNamespace: state.tenants.createTenant.fields.encryption.vaultNamespace,\n vaultPrefix: state.tenants.createTenant.fields.encryption.vaultPrefix,\n vaultAppRoleEngine:\n state.tenants.createTenant.fields.encryption.vaultAppRoleEngine,\n vaultId: state.tenants.createTenant.fields.encryption.vaultId,\n vaultSecret: state.tenants.createTenant.fields.encryption.vaultSecret,\n vaultRetry: state.tenants.createTenant.fields.encryption.vaultRetry,\n vaultPing: state.tenants.createTenant.fields.encryption.vaultPing,\n azureEndpoint: state.tenants.createTenant.fields.encryption.azureEndpoint,\n azureTenantID: state.tenants.createTenant.fields.encryption.azureTenantID,\n azureClientID: state.tenants.createTenant.fields.encryption.azureClientID,\n azureClientSecret:\n state.tenants.createTenant.fields.encryption.azureClientSecret,\n gcpProjectID: state.tenants.createTenant.fields.encryption.gcpProjectID,\n gcpEndpoint: state.tenants.createTenant.fields.encryption.gcpEndpoint,\n gcpClientEmail: state.tenants.createTenant.fields.encryption.gcpClientEmail,\n gcpClientID: state.tenants.createTenant.fields.encryption.gcpClientID,\n gcpPrivateKeyID: state.tenants.createTenant.fields.encryption.gcpPrivateKeyID,\n gcpPrivateKey: state.tenants.createTenant.fields.encryption.gcpPrivateKey,\n enableCustomCertsForKES:\n state.tenants.createTenant.fields.encryption.enableCustomCertsForKES,\n enableAutoCert: state.tenants.createTenant.fields.security.enableAutoCert,\n enableTLS: state.tenants.createTenant.fields.security.enableTLS,\n minioCertificates: state.tenants.createTenant.certificates.minioCertificates,\n serverCertificate: state.tenants.createTenant.certificates.serverCertificate,\n clientCertificate: state.tenants.createTenant.certificates.clientCertificate,\n vaultCertificate: state.tenants.createTenant.certificates.vaultCertificate,\n vaultCA: state.tenants.createTenant.certificates.vaultCA,\n gemaltoCA: state.tenants.createTenant.certificates.gemaltoCA,\n enableCustomCerts:\n state.tenants.createTenant.fields.security.enableCustomCerts,\n kesSecurityContext:\n state.tenants.createTenant.fields.encryption.kesSecurityContext,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n addFileServerCert,\n addFileClientCert,\n addFileVaultCert,\n addFileVaultCa,\n addFileGemaltoCa,\n});\n\nexport default withStyles(styles)(connector(Encryption));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, SelectChangeEvent } from \"@mui/material\";\nimport { AppState } from \"../../../../../store\";\nimport {\n addNewToleration,\n isPageValid,\n removeToleration,\n setKeyValuePairs,\n setTolerationInfo,\n updateAddField,\n} from \"../../actions\";\nimport { setModalErrorSnackMessage } from \"../../../../../actions\";\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport {\n ErrorResponseHandler,\n ITolerationModel,\n} from \"../../../../../common/types\";\nimport { LabelKeyPair } from \"../../types\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../common/api\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"../../../../../icons/AddIcon\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport TolerationSelector from \"../../../Common/TolerationSelector/TolerationSelector\";\n\ninterface IAffinityProps {\n classes: any;\n podAffinity: string;\n nodeSelectorLabels: string;\n withPodAntiAffinity: boolean;\n keyValuePairs: LabelKeyPair[];\n tolerations: ITolerationModel[];\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n setKeyValuePairs: typeof setKeyValuePairs;\n setTolerationInfo: typeof setTolerationInfo;\n addNewToleration: typeof addNewToleration;\n removeToleration: typeof removeToleration;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n affinityConfigField: {\n display: \"flex\",\n },\n affinityFieldLabel: {\n display: \"flex\",\n flexFlow: \"column\",\n flex: 1,\n },\n radioField: {\n display: \"flex\",\n alignItems: \"flex-start\",\n marginTop: 10,\n \"& div:first-child\": {\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"baseline\",\n textAlign: \"left !important\",\n },\n },\n affinityLabelKey: {\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n affinityLabelValue: {\n marginLeft: 10,\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n rowActions: {\n display: \"flex\",\n alignItems: \"center\",\n },\n fieldContainer: {\n marginBottom: 0,\n },\n affinityRow: {\n marginBottom: 10,\n display: \"flex\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\ninterface OptionPair {\n label: string;\n value: string;\n}\n\nconst Affinity = ({\n classes,\n podAffinity,\n nodeSelectorLabels,\n withPodAntiAffinity,\n setModalErrorSnackMessage,\n updateAddField,\n keyValuePairs,\n setKeyValuePairs,\n isPageValid,\n tolerations,\n setTolerationInfo,\n addNewToleration,\n removeToleration,\n}: IAffinityProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n const [loading, setLoading] = useState(true);\n const [keyValueMap, setKeyValueMap] = useState<{ [key: string]: string[] }>(\n {}\n );\n const [keyOptions, setKeyOptions] = useState([]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"affinity\", field, value);\n },\n [updateAddField]\n );\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/nodes/labels`)\n .then((res: { [key: string]: string[] }) => {\n setLoading(false);\n setKeyValueMap(res);\n let keys: OptionPair[] = [];\n for (let k in res) {\n keys.push({\n label: k,\n value: k,\n });\n }\n setKeyOptions(keys);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n setKeyValueMap({});\n });\n }\n }, [setModalErrorSnackMessage, loading]);\n\n useEffect(() => {\n if (keyValuePairs) {\n const vlr = keyValuePairs\n .filter((kvp) => kvp.key !== \"\")\n .map((kvp) => `${kvp.key}=${kvp.value}`)\n .filter((kvs, i, a) => a.indexOf(kvs) === i);\n const vl = vlr.join(\"&\");\n updateField(\"nodeSelectorLabels\", vl);\n }\n }, [keyValuePairs, updateField]);\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (podAffinity === \"nodeSelector\") {\n let valid = true;\n\n const splittedLabels = nodeSelectorLabels.split(\"&\");\n\n if (splittedLabels.length === 1 && splittedLabels[0] === \"\") {\n valid = false;\n }\n\n splittedLabels.forEach((item: string, index: number) => {\n const splitItem = item.split(\"=\");\n\n if (splitItem.length !== 2) {\n valid = false;\n }\n\n if (index + 1 !== splittedLabels.length) {\n if (splitItem[0] === \"\" || splitItem[1] === \"\") {\n valid = false;\n }\n }\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"labels\",\n required: true,\n value: nodeSelectorLabels,\n customValidation: !valid,\n customValidationMessage:\n \"You need to add at least one label key-pair\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPageValid(\"affinity\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [isPageValid, podAffinity, nodeSelectorLabels]);\n\n const updateToleration = (index: number, field: string, value: any) => {\n const alterToleration = { ...tolerations[index], [field]: value };\n\n setTolerationInfo(index, alterToleration);\n };\n\n return (\n \n
\n

Pod Placement

\n \n Configure how pods will be assigned to nodes\n \n
\n \n \n
Type
\n \n MinIO supports multiple configurations for Pod Affinity\n \n \n {\n updateField(\"podAffinity\", e.target.value);\n }}\n selectorOptions={[\n { label: \"None\", value: \"none\" },\n { label: \"Default (Pod Anti-Affinnity)\", value: \"default\" },\n { label: \"Node Selector\", value: \"nodeSelector\" },\n ]}\n />\n \n
\n
\n {podAffinity === \"nodeSelector\" && (\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"withPodAntiAffinity\", checked);\n }}\n label={\"With Pod Anti-Affinity\"}\n />\n \n \n

Labels

\n {validationErrors[\"labels\"]}\n \n {keyValuePairs &&\n keyValuePairs.map((kvp, i) => {\n return (\n \n \n {keyOptions.length > 0 && (\n ) => {\n const newKey = e.target.value as string;\n const arrCp: LabelKeyPair[] = Object.assign(\n [],\n keyValuePairs\n );\n\n arrCp[i].key = e.target.value as string;\n arrCp[i].value = keyValueMap[newKey][0];\n setKeyValuePairs(arrCp);\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.key}\n options={keyOptions}\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = Object.assign(\n [],\n keyValuePairs\n );\n arrCp[i].key = e.target.value;\n setKeyValuePairs(arrCp);\n }}\n index={i}\n placeholder={\"Key\"}\n />\n )}\n \n \n {keyOptions.length > 0 && (\n ) => {\n const arrCp: LabelKeyPair[] = Object.assign(\n [],\n keyValuePairs\n );\n arrCp[i].value = e.target.value as string;\n setKeyValuePairs(arrCp);\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.value}\n options={\n keyValueMap[kvp.key]\n ? keyValueMap[kvp.key].map((v) => {\n return { label: v, value: v };\n })\n : []\n }\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = Object.assign(\n [],\n keyValuePairs\n );\n arrCp[i].value = e.target.value;\n setKeyValuePairs(arrCp);\n }}\n index={i}\n placeholder={\"value\"}\n />\n )}\n \n \n
\n {\n const arrCp = Object.assign([], keyValuePairs);\n if (keyOptions.length > 0) {\n arrCp.push({\n key: keyOptions[0].value,\n value: keyValueMap[keyOptions[0].value][0],\n });\n } else {\n arrCp.push({ key: \"\", value: \"\" });\n }\n\n setKeyValuePairs(arrCp);\n }}\n >\n \n \n
\n {keyValuePairs.length > 1 && (\n
\n {\n const arrCp = keyValuePairs.filter(\n (item, index) => index !== i\n );\n setKeyValuePairs(arrCp);\n }}\n >\n \n \n
\n )}\n
\n
\n );\n })}\n
\n \n
\n )}\n \n \n

Tolerations

\n \n {validationErrors[\"tolerations\"]}\n \n \n {tolerations &&\n tolerations.map((tol, i) => {\n return (\n \n {\n updateToleration(i, \"effect\", value);\n }}\n tolerationKey={tol.key}\n onTolerationKeyChange={(value) => {\n updateToleration(i, \"key\", value);\n }}\n operator={tol.operator}\n onOperatorChange={(value) => {\n updateToleration(i, \"operator\", value);\n }}\n value={tol.value}\n onValueChange={(value) => {\n updateToleration(i, \"value\", value);\n }}\n tolerationSeconds={tol.tolerationSeconds?.seconds || 0}\n onSecondsChange={(value) => {\n updateToleration(i, \"tolerationSeconds\", {\n seconds: value,\n });\n }}\n index={i}\n />\n
\n \n \n \n
\n\n
\n removeToleration(i)}\n disabled={tolerations.length <= 1}\n >\n \n \n
\n
\n );\n })}\n
\n
\n \n
\n );\n};\n\nconst mapState = (state: AppState) => {\n const createTenant = state.tenants.createTenant;\n\n return {\n podAffinity: createTenant.fields.affinity.podAffinity,\n nodeSelectorLabels: createTenant.fields.affinity.nodeSelectorLabels,\n withPodAntiAffinity: createTenant.fields.affinity.withPodAntiAffinity,\n keyValuePairs: createTenant.nodeSelectorPairs,\n tolerations: createTenant.tolerations,\n };\n};\n\nconst connector = connect(mapState, {\n setModalErrorSnackMessage,\n updateAddField,\n isPageValid,\n setKeyValuePairs,\n setTolerationInfo,\n addNewToleration,\n removeToleration,\n});\n\nexport default withStyles(styles)(connector(Affinity));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { isPageValid, updateAddField } from \"../../actions\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\n\ninterface IImagesProps {\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n storageClasses: any;\n classes: any;\n customImage: boolean;\n imageName: string;\n customDockerhub: boolean;\n imageRegistry: string;\n imageRegistryUsername: string;\n imageRegistryPassword: string;\n exposeMinIO: boolean;\n exposeConsole: boolean;\n prometheusCustom: boolean;\n tenantCustom: boolean;\n logSearchCustom: boolean;\n logSearchVolumeSize: string;\n logSearchSizeFactor: string;\n prometheusVolumeSize: string;\n prometheusSizeFactor: string;\n logSearchSelectedStorageClass: string;\n logSearchImage: string;\n kesImage: string;\n logSearchPostgresImage: string;\n logSearchPostgresInitImage: string;\n prometheusSelectedStorageClass: string;\n prometheusImage: string;\n prometheusSidecarImage: string;\n prometheusInitImage: string;\n selectedStorageClass: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Images = ({\n classes,\n storageClasses,\n customImage,\n imageName,\n customDockerhub,\n imageRegistry,\n imageRegistryUsername,\n imageRegistryPassword,\n exposeMinIO,\n exposeConsole,\n prometheusCustom,\n tenantCustom,\n logSearchCustom,\n logSearchVolumeSize,\n logSearchSizeFactor,\n logSearchImage,\n kesImage,\n logSearchPostgresImage,\n logSearchPostgresInitImage,\n prometheusVolumeSize,\n prometheusSizeFactor,\n logSearchSelectedStorageClass,\n prometheusSelectedStorageClass,\n prometheusImage,\n prometheusSidecarImage,\n prometheusInitImage,\n updateAddField,\n isPageValid,\n selectedStorageClass,\n}: IImagesProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"configure\", field, value);\n },\n [updateAddField]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (prometheusCustom) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"prometheus_storage_class\",\n required: true,\n value: prometheusSelectedStorageClass,\n customValidation: prometheusSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"prometheus_volume_size\",\n required: true,\n value: prometheusVolumeSize,\n customValidation:\n prometheusVolumeSize === \"\" || parseInt(prometheusVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greatter than 0`,\n },\n ];\n }\n if (logSearchCustom) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"log_search_storage_class\",\n required: true,\n value: logSearchSelectedStorageClass,\n customValidation: logSearchSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"log_search_volume_size\",\n required: true,\n value: logSearchVolumeSize,\n customValidation:\n logSearchVolumeSize === \"\" || parseInt(logSearchVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greatter than 0`,\n },\n ];\n }\n\n if (customImage) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"image\",\n required: false,\n value: imageName,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage: \"Format must be of form: 'minio/minio:VERSION'\",\n },\n {\n fieldKey: \"logSearchImage\",\n required: false,\n value: logSearchImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'minio/operator:VERSION'\",\n },\n {\n fieldKey: \"kesImage\",\n required: false,\n value: kesImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage: \"Format must be of form: 'minio/kes:VERSION'\",\n },\n {\n fieldKey: \"logSearchPostgresImage\",\n required: false,\n value: logSearchPostgresImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'library/postgres:VERSION'\",\n },\n {\n fieldKey: \"logSearchPostgresInitImage\",\n required: false,\n value: logSearchPostgresInitImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'library/busybox:VERSION'\",\n },\n {\n fieldKey: \"prometheusImage\",\n required: false,\n value: prometheusImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'minio/prometheus:VERSION'\",\n },\n {\n fieldKey: \"prometheusSidecarImage\",\n required: false,\n value: prometheusSidecarImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'project/container:VERSION'\",\n },\n {\n fieldKey: \"prometheusInitImage\",\n required: false,\n value: prometheusInitImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'library/busybox:VERSION'\",\n },\n ];\n if (customDockerhub) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"registry\",\n required: true,\n value: imageRegistry,\n },\n {\n fieldKey: \"registryUsername\",\n required: true,\n value: imageRegistryUsername,\n },\n {\n fieldKey: \"registryPassword\",\n required: true,\n value: imageRegistryPassword,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPageValid(\"configure\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n customImage,\n imageName,\n logSearchImage,\n kesImage,\n logSearchPostgresImage,\n logSearchPostgresInitImage,\n prometheusImage,\n prometheusSidecarImage,\n prometheusInitImage,\n customDockerhub,\n imageRegistry,\n imageRegistryUsername,\n imageRegistryPassword,\n isPageValid,\n prometheusCustom,\n tenantCustom,\n logSearchCustom,\n prometheusSelectedStorageClass,\n prometheusVolumeSize,\n logSearchSelectedStorageClass,\n logSearchVolumeSize,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
\n

Container Images

\n \n Specify the container images used by the Tenant and it's features.\n \n
\n\n \n \n ) => {\n updateField(\"imageName\", e.target.value);\n cleanValidation(\"image\");\n }}\n label=\"MinIO\"\n value={imageName}\n error={validationErrors[\"image\"] || \"\"}\n placeholder=\"E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z\"\n />\n \n\n \n ) => {\n updateField(\"kesImage\", e.target.value);\n cleanValidation(\"kesImage\");\n }}\n label=\"KES\"\n value={kesImage}\n error={validationErrors[\"kesImage\"] || \"\"}\n placeholder=\"E.g. minio/kes:v0.17.6\"\n />\n \n \n

Log Search

\n
\n \n ) => {\n updateField(\"logSearchImage\", e.target.value);\n cleanValidation(\"logSearchImage\");\n }}\n label=\"API\"\n value={logSearchImage}\n error={validationErrors[\"logSearchImage\"] || \"\"}\n placeholder=\"E.g. minio/operator:v4.4.10\"\n />\n \n \n ) => {\n updateField(\"logSearchPostgresImage\", e.target.value);\n cleanValidation(\"logSearchPostgresImage\");\n }}\n label=\"PostgreSQL\"\n value={logSearchPostgresImage}\n error={validationErrors[\"logSearchPostgresImage\"] || \"\"}\n placeholder=\"E.g. library/postgres:13\"\n />\n \n \n ) => {\n updateField(\"logSearchPostgresInitImage\", e.target.value);\n cleanValidation(\"logSearchPostgresInitImage\");\n }}\n label=\"PostgreSQL Init\"\n value={logSearchPostgresInitImage}\n error={validationErrors[\"logSearchPostgresInitImage\"] || \"\"}\n placeholder=\"E.g. library/busybox:1.33.1\"\n />\n \n \n

Monitoring

\n
\n \n ) => {\n updateField(\"prometheusImage\", e.target.value);\n cleanValidation(\"prometheusImage\");\n }}\n label=\"Prometheus\"\n value={prometheusImage}\n error={validationErrors[\"prometheusImage\"] || \"\"}\n placeholder=\"E.g. quay.io/prometheus/prometheus:latest\"\n />\n \n \n ) => {\n updateField(\"prometheusSidecarImage\", e.target.value);\n cleanValidation(\"prometheusSidecarImage\");\n }}\n label=\"Prometheus Sidecar\"\n value={prometheusSidecarImage}\n error={validationErrors[\"prometheusSidecarImage\"] || \"\"}\n placeholder=\"E.g. quay.io/prometheus/prometheus:latest\"\n />\n \n \n ) => {\n updateField(\"prometheusInitImage\", e.target.value);\n cleanValidation(\"prometheusInitImage\");\n }}\n label=\"Prometheus Init\"\n value={prometheusInitImage}\n error={validationErrors[\"prometheusInitImage\"] || \"\"}\n placeholder=\"E.g. quay.io/prometheus/prometheus:latest\"\n />\n \n
\n\n {customImage && (\n \n \n

Custom Container Registry

\n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"customDockerhub\", checked);\n }}\n label={\"Use a private container registry\"}\n />\n \n
\n )}\n {customDockerhub && (\n \n \n ) => {\n updateField(\"imageRegistry\", e.target.value);\n }}\n label=\"Endpoint\"\n value={imageRegistry}\n error={validationErrors[\"registry\"] || \"\"}\n placeholder=\"E.g. https://index.docker.io/v1/\"\n required\n />\n \n \n ) => {\n updateField(\"imageRegistryUsername\", e.target.value);\n }}\n label=\"Username\"\n value={imageRegistryUsername}\n error={validationErrors[\"registryUsername\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"imageRegistryPassword\", e.target.value);\n }}\n label=\"Password\"\n value={imageRegistryPassword}\n error={validationErrors[\"registryPassword\"] || \"\"}\n required\n />\n \n \n )}\n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n storageClasses: state.tenants.createTenant.storageClasses,\n customImage: state.tenants.createTenant.fields.configure.customImage,\n imageName: state.tenants.createTenant.fields.configure.imageName,\n customDockerhub: state.tenants.createTenant.fields.configure.customDockerhub,\n imageRegistry: state.tenants.createTenant.fields.configure.imageRegistry,\n imageRegistryUsername:\n state.tenants.createTenant.fields.configure.imageRegistryUsername,\n imageRegistryPassword:\n state.tenants.createTenant.fields.configure.imageRegistryPassword,\n exposeMinIO: state.tenants.createTenant.fields.configure.exposeMinIO,\n exposeConsole: state.tenants.createTenant.fields.configure.exposeConsole,\n prometheusCustom:\n state.tenants.createTenant.fields.configure.prometheusEnabled,\n tenantCustom: state.tenants.createTenant.fields.configure.tenantCustom,\n logSearchCustom: state.tenants.createTenant.fields.configure.logSearchEnabled,\n logSearchVolumeSize:\n state.tenants.createTenant.fields.configure.logSearchVolumeSize,\n logSearchSizeFactor:\n state.tenants.createTenant.fields.configure.logSearchSizeFactor,\n prometheusVolumeSize:\n state.tenants.createTenant.fields.configure.prometheusVolumeSize,\n prometheusSizeFactor:\n state.tenants.createTenant.fields.configure.prometheusSizeFactor,\n logSearchSelectedStorageClass:\n state.tenants.createTenant.fields.configure.logSearchSelectedStorageClass,\n logSearchImage: state.tenants.createTenant.fields.configure.logSearchImage,\n kesImage: state.tenants.createTenant.fields.configure.kesImage,\n logSearchPostgresImage:\n state.tenants.createTenant.fields.configure.logSearchPostgresImage,\n logSearchPostgresInitImage:\n state.tenants.createTenant.fields.configure.logSearchPostgresInitImage,\n prometheusSelectedStorageClass:\n state.tenants.createTenant.fields.configure.prometheusSelectedStorageClass,\n prometheusImage: state.tenants.createTenant.fields.configure.prometheusImage,\n prometheusSidecarImage:\n state.tenants.createTenant.fields.configure.prometheusSidecarImage,\n prometheusInitImage:\n state.tenants.createTenant.fields.configure.prometheusInitImage,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(Images));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n modalBasic,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport api from \"../../../../../../common/api\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmModalIcon } from \"../../../../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n wrapText: {\n maxWidth: \"200px\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\",\n },\n ...modalBasic,\n ...deleteDialogStyles,\n });\n\ninterface IAddNamespace {\n classes: any;\n namespace: string;\n addNamespaceOpen: boolean;\n closeAddNamespaceModalAndRefresh: (reloadNamespaceData: boolean) => void;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst AddNamespaceModal = ({\n classes,\n namespace,\n addNamespaceOpen,\n closeAddNamespaceModalAndRefresh,\n setErrorSnackMessage,\n}: IAddNamespace) => {\n const [addNamespaceLoading, setAddNamespaceLoading] =\n useState(false);\n\n useEffect(() => {\n if (addNamespaceLoading) {\n api\n .invoke(\"POST\", \"/api/v1/namespace\", {\n name: namespace,\n })\n .then((res) => {\n setAddNamespaceLoading(false);\n closeAddNamespaceModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddNamespaceLoading(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n addNamespaceLoading,\n closeAddNamespaceModalAndRefresh,\n namespace,\n setErrorSnackMessage,\n ]);\n\n const addNamespace = () => {\n setAddNamespaceLoading(true);\n };\n\n return (\n }\n isLoading={addNamespaceLoading}\n onConfirm={addNamespace}\n onClose={() => {\n closeAddNamespaceModalAndRefresh(false);\n }}\n confirmationContent={\n \n {addNamespaceLoading && }\n \n Are you sure you want to add a namespace called\n
\n {namespace}?\n
\n
\n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(AddNamespaceModal));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../store\";\nimport { isPageValid, updateAddField } from \"../../actions\";\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableRow from \"@mui/material/TableRow\";\nimport { niceBytes } from \"../../../../../common/utils\";\nimport { Opts } from \"../../ListTenants/utils\";\nimport { IResourcesSize } from \"../../ListTenants/types\";\nimport { IErasureCodeCalc } from \"../../../../../common/types\";\n\nimport { Divider } from \"@mui/material\";\nimport { IntegrationConfiguration } from \"./TenantResources/utils\";\n\ninterface ISizePreviewProps {\n classes: any;\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n volumeSize: string;\n sizeFactor: string;\n drivesPerServer: string;\n nodes: string;\n memoryNode: string;\n ecParity: string;\n ecParityChoices: Opts[];\n cleanECChoices: string[];\n resourcesSize: IResourcesSize;\n distribution: any;\n ecParityCalc: IErasureCodeCalc;\n limitSize: any;\n selectedStorageClass: string;\n cpuToUse: string;\n integrationSelection: IntegrationConfiguration;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n margin: 4,\n },\n table: {\n \"& .MuiTableCell-root\": {\n fontSize: 13,\n },\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst SizePreview = ({\n classes,\n nodes,\n memoryNode,\n ecParity,\n distribution,\n ecParityCalc,\n cpuToUse,\n integrationSelection,\n}: ISizePreviewProps) => {\n const usableInformation = ecParityCalc.storageFactors.find(\n (element) => element.erasureCode === ecParity\n );\n\n return (\n
\n

Resource Allocation

\n \n \n \n \n Number of Servers\n \n {parseInt(nodes) > 0 ? nodes : \"-\"}\n \n \n {integrationSelection.typeSelection === \"\" &&\n integrationSelection.storageClass === \"\" && (\n \n \n Drives per Server\n \n {distribution ? distribution.disks : \"-\"}\n \n \n \n Drive Capacity\n \n {distribution ? niceBytes(distribution.pvSize) : \"-\"}\n \n \n \n )}\n\n \n Total Volumes\n \n {distribution ? distribution.persistentVolumes : \"-\"}\n \n \n {integrationSelection.typeSelection === \"\" &&\n integrationSelection.storageClass === \"\" && (\n \n \n Memory per Node\n {memoryNode} Gi\n \n \n \n CPU Selection\n \n \n {cpuToUse}\n \n \n \n )}\n \n
\n {ecParityCalc.error === 0 && usableInformation && (\n \n

Erasure Code Configuration

\n \n \n \n \n EC Parity\n \n {ecParity !== \"\" ? ecParity : \"-\"}\n \n \n \n Raw Capacity\n \n {niceBytes(ecParityCalc.rawCapacity)}\n \n \n \n Usable Capacity\n \n {niceBytes(usableInformation.maxCapacity)}\n \n \n \n \n Server Failures Tolerated\n \n \n {distribution\n ? Math.floor(\n usableInformation.maxFailureTolerations /\n distribution.disks\n )\n : \"-\"}\n \n \n \n \n
\n )}\n {integrationSelection.typeSelection !== \"\" &&\n integrationSelection.storageClass !== \"\" && (\n \n

Single Instance Configuration

\n \n \n \n \n CPU\n \n {integrationSelection.CPU !== 0\n ? integrationSelection.CPU\n : \"-\"}\n \n \n \n Memory\n \n {integrationSelection.memory !== 0\n ? `${integrationSelection.memory} Gi`\n : \"-\"}\n \n \n \n Drives per Server\n \n {integrationSelection.drivesPerServer !== 0\n ? `${integrationSelection.drivesPerServer}`\n : \"-\"}\n \n \n \n \n Drive Size\n \n \n {integrationSelection.driveSize.driveSize}\n {integrationSelection.driveSize.sizeUnit}\n \n \n \n \n
\n )}\n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n volumeSize: state.tenants.createTenant.fields.tenantSize.volumeSize,\n sizeFactor: state.tenants.createTenant.fields.tenantSize.sizeFactor,\n drivesPerServer: state.tenants.createTenant.fields.tenantSize.drivesPerServer,\n nodes: state.tenants.createTenant.fields.tenantSize.nodes,\n memoryNode:\n state.tenants.createTenant.fields.tenantSize.resourcesMemoryRequest,\n ecParity: state.tenants.createTenant.fields.tenantSize.ecParity,\n ecParityChoices: state.tenants.createTenant.fields.tenantSize.ecParityChoices,\n cleanECChoices: state.tenants.createTenant.fields.tenantSize.cleanECChoices,\n resourcesSize: state.tenants.createTenant.fields.tenantSize.resourcesSize,\n distribution: state.tenants.createTenant.fields.tenantSize.distribution,\n ecParityCalc: state.tenants.createTenant.fields.tenantSize.ecParityCalc,\n limitSize: state.tenants.createTenant.fields.tenantSize.limitSize,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n cpuToUse: state.tenants.createTenant.fields.tenantSize.resourcesCPURequest,\n integrationSelection:\n state.tenants.createTenant.fields.tenantSize.integrationSelection,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(SizePreview));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, {\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport get from \"lodash/get\";\nimport debounce from \"lodash/debounce\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../../../actions\";\nimport {\n isPageValid,\n setLimitSize,\n setStorageType,\n setStorageClassesList,\n updateAddField,\n} from \"../../../actions\";\nimport {\n getLimitSizes,\n IQuotaElement,\n IQuotas,\n Opts,\n} from \"../../../ListTenants/utils\";\nimport { AppState } from \"../../../../../../store\";\nimport { commonFormValidation } from \"../../../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../../../utils\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport api from \"../../../../../../common/api\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport AddIcon from \"../../../../../../icons/AddIcon\";\nimport AddNamespaceModal from \"../helpers/AddNamespaceModal\";\nimport SizePreview from \"../SizePreview\";\nimport TenantSize from \"./TenantSize\";\nimport { Paper, SelectChangeEvent } from \"@mui/material\";\nimport { IMkEnvs, mkPanelConfigurations } from \"./utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizePreview: {\n position: \"fixed\",\n marginLeft: 10,\n background: \"#FFFFFF\",\n border: \"1px solid #EAEAEA\",\n padding: 2,\n },\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\ninterface INameTenantMainScreen {\n classes: any;\n storageClasses: Opts[];\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n setStorageClassesList: typeof setStorageClassesList;\n setLimitSize: typeof setLimitSize;\n tenantName: string;\n namespace: string;\n selectedStorageClass: string;\n selectedStorageType: string;\n formToRender?: IMkEnvs;\n features?: string[];\n setStorageType: typeof setStorageType;\n}\n\nconst NameTenantMain = ({\n classes,\n storageClasses,\n tenantName,\n namespace,\n selectedStorageClass,\n selectedStorageType,\n formToRender = IMkEnvs.default,\n updateAddField,\n setStorageClassesList,\n setLimitSize,\n isPageValid,\n setModalErrorSnackMessage,\n features,\n setStorageType,\n}: INameTenantMainScreen) => {\n const [validationErrors, setValidationErrors] = useState({});\n const [emptyNamespace, setEmptyNamespace] = useState(true);\n const [loadingNamespaceInfo, setLoadingNamespaceInfo] =\n useState(false);\n const [showCreateButton, setShowCreateButton] = useState(false);\n const [openAddNSConfirm, setOpenAddNSConfirm] = useState(false);\n\n // Common\n const updateField = useCallback(\n (field: string, value: string) => {\n updateAddField(\"nameTenant\", field, value);\n },\n [updateAddField]\n );\n\n // Storage classes retrieval\n const getNamespaceInformation = useCallback(() => {\n setShowCreateButton(false);\n // Empty tenantValidation\n api\n .invoke(\"GET\", `/api/v1/namespaces/${namespace}/tenants`)\n .then((res: any[]) => {\n const tenantsList = get(res, \"tenants\", []);\n\n if (tenantsList && tenantsList.length > 0) {\n setEmptyNamespace(false);\n setLoadingNamespaceInfo(false);\n return;\n }\n setEmptyNamespace(true);\n\n // Storagequotas retrieval\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${namespace}/resourcequotas/${namespace}-storagequota`\n )\n .then((res: IQuotas) => {\n const elements: IQuotaElement[] = get(res, \"elements\", []);\n setLimitSize(getLimitSizes(res));\n\n const newStorage = elements.map((storageClass: any) => {\n const name = get(storageClass, \"name\", \"\").split(\n \".storageclass.storage.k8s.io/requests.storage\"\n )[0];\n\n return { label: name, value: name };\n });\n\n setStorageClassesList(newStorage);\n\n const stExists = newStorage.findIndex(\n (storageClass) => storageClass.value === selectedStorageClass\n );\n\n if (newStorage.length > 0 && stExists === -1) {\n updateField(\"selectedStorageClass\", newStorage[0].value);\n } else if (newStorage.length === 0) {\n updateField(\"selectedStorageClass\", \"\");\n setStorageClassesList([]);\n }\n setLoadingNamespaceInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingNamespaceInfo(false);\n setShowCreateButton(true);\n updateField(\"selectedStorageClass\", \"\");\n setStorageClassesList([]);\n console.error(\"Namespace error: \", err);\n });\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage({\n errorMessage: \"Error validating if namespace already has tenants\",\n detailedError: err.detailedError,\n });\n });\n }, [\n namespace,\n setLimitSize,\n setModalErrorSnackMessage,\n setStorageClassesList,\n updateField,\n selectedStorageClass,\n ]);\n\n const debounceNamespace = useMemo(\n () => debounce(getNamespaceInformation, 500),\n [getNamespaceInformation]\n );\n\n useEffect(() => {\n if (namespace !== \"\") {\n debounceNamespace();\n setLoadingNamespaceInfo(true);\n\n // Cancel previous debounce calls during useEffect cleanup.\n return debounceNamespace.cancel;\n }\n }, [debounceNamespace, namespace]);\n\n // Validation\n useEffect(() => {\n let customNamespaceError = false;\n let errorMessage = \"\";\n\n if (!emptyNamespace && !loadingNamespaceInfo) {\n customNamespaceError = true;\n errorMessage = \"You can only create one tenant per namespace\";\n } else if (\n storageClasses.length < 1 &&\n emptyNamespace &&\n !loadingNamespaceInfo\n ) {\n customNamespaceError = true;\n errorMessage = \"Please enter a valid namespace\";\n }\n\n const commonValidation = commonFormValidation([\n {\n fieldKey: \"tenant-name\",\n required: true,\n pattern: /^[a-z0-9-]{3,63}$/,\n customPatternMessage:\n \"Name only can contain lowercase letters, numbers and '-'. Min. Length: 3\",\n value: tenantName,\n },\n {\n fieldKey: \"namespace\",\n required: true,\n value: namespace,\n customValidation: customNamespaceError,\n customValidationMessage: errorMessage,\n },\n ]);\n\n const isValid =\n !(\"tenant-name\" in commonValidation) &&\n !(\"namespace\" in commonValidation) &&\n ((formToRender === IMkEnvs.default && storageClasses.length > 0) ||\n (formToRender !== IMkEnvs.default && selectedStorageType !== \"\"));\n\n isPageValid(\"nameTenant\", isValid);\n\n setValidationErrors(commonValidation);\n }, [\n storageClasses,\n namespace,\n tenantName,\n isPageValid,\n emptyNamespace,\n loadingNamespaceInfo,\n selectedStorageType,\n formToRender,\n ]);\n\n const frmValidationCleanup = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n const addNamespace = () => {\n setOpenAddNSConfirm(true);\n };\n\n const closeAddNamespace = (refresh: boolean) => {\n setOpenAddNSConfirm(false);\n\n if (refresh) {\n debounceNamespace();\n }\n };\n\n return (\n \n {openAddNSConfirm && (\n \n )}\n \n \n \n \n \n
\n

Name

\n \n How would you like to name this new tenant?\n \n
\n
\n ) => {\n updateField(\"tenantName\", e.target.value);\n frmValidationCleanup(\"tenant-name\");\n }}\n label=\"Name\"\n value={tenantName}\n required\n error={validationErrors[\"tenant-name\"] || \"\"}\n />\n
\n
\n \n ) => {\n updateField(\"namespace\", e.target.value);\n frmValidationCleanup(\"namespace\");\n }}\n label=\"Namespace\"\n value={namespace}\n error={validationErrors[\"namespace\"] || \"\"}\n overlayId={\"add-namespace\"}\n overlayIcon={showCreateButton ? : null}\n overlayAction={addNamespace}\n required\n />\n \n {formToRender === IMkEnvs.default ? (\n \n ) => {\n updateField(\n \"selectedStorageClass\",\n e.target.value as string\n );\n }}\n label=\"Storage Class\"\n value={selectedStorageClass}\n options={storageClasses}\n disabled={storageClasses.length < 1}\n />\n \n ) : (\n \n ) => {\n setStorageType(e.target.value as string, features);\n }}\n label={get(\n mkPanelConfigurations,\n `${formToRender}.variantSelectorLabel`,\n \"Storage Type\"\n )}\n value={selectedStorageType}\n options={get(\n mkPanelConfigurations,\n `${formToRender}.variantSelectorValues`,\n []\n )}\n />\n \n )}\n {formToRender === IMkEnvs.default ? (\n \n ) : (\n get(\n mkPanelConfigurations,\n `${formToRender}.sizingComponent`,\n null\n )\n )}\n
\n
\n
\n \n
\n \n
\n
\n
\n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n tenantName: state.tenants.createTenant.fields.nameTenant.tenantName,\n namespace: state.tenants.createTenant.fields.nameTenant.namespace,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n selectedStorageType:\n state.tenants.createTenant.fields.nameTenant.selectedStorageType,\n storageClasses: state.tenants.createTenant.storageClasses,\n features: state.console.session.features,\n});\n\nconst connector = connect(mapState, {\n setModalErrorSnackMessage,\n updateAddField,\n setStorageClassesList,\n setLimitSize,\n isPageValid,\n setStorageType,\n});\n\nexport default withStyles(styles)(connector(NameTenantMain));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport NameTenantMain from \"./NameTenantMain\";\nimport { IMkEnvs, resourcesConfigurations } from \"./utils\";\nimport { AppState } from \"../../../../../../store\";\n\ninterface ITenantResources {\n features?: string[];\n}\n\nconst TenantResources = ({ features }: ITenantResources) => {\n const [formRender, setFormRender] = useState(null);\n\n useEffect(() => {\n let setConfiguration = IMkEnvs.default;\n\n if (features && features.length !== 0) {\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (features.includes(element)) {\n setConfiguration = get(\n resourcesConfigurations,\n element,\n IMkEnvs.default\n );\n }\n });\n }\n\n setFormRender(setConfiguration);\n }, [features]);\n\n if (formRender === null) {\n return null;\n }\n\n return ;\n};\n\nconst mapState = (state: AppState) => ({\n features: state.console.session.features,\n});\n\nconst connector = connect(mapState, null);\n\nexport default connector(TenantResources);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper, SelectChangeEvent } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { isPageValid, updateAddField } from \"../../actions\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { ISecurityContext } from \"../../types\";\nimport InputUnitMenu from \"../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IConfigureProps {\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n storageClasses: any;\n classes: any;\n logSearchEnabled: boolean;\n logSearchVolumeSize: string;\n logSearchSizeFactor: string;\n logSearchSelectedStorageClass: string;\n logSearchImage: string;\n logSearchPostgresImage: string;\n logSearchPostgresInitImage: string;\n selectedStorageClass: string;\n tenantSecurityContext: ISecurityContext;\n logSearchSecurityContext: ISecurityContext;\n logSearchPostgresSecurityContext: ISecurityContext;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n\n logSearchEnabledFields: {\n marginLeft: 20, // 2nd Level(15+15)\n padding: 10,\n width: \"90%\",\n margin: \"auto\",\n },\n fieldSpaceTop: {\n marginTop: 15,\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst ConfigLogSearch = ({\n classes,\n storageClasses,\n logSearchEnabled,\n logSearchVolumeSize,\n logSearchSizeFactor,\n logSearchImage,\n logSearchPostgresImage,\n logSearchPostgresInitImage,\n logSearchSelectedStorageClass,\n updateAddField,\n isPageValid,\n selectedStorageClass,\n tenantSecurityContext,\n logSearchSecurityContext,\n logSearchPostgresSecurityContext,\n}: IConfigureProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n const configureSTClasses = [\n { label: \"Default\", value: \"default\" },\n ...storageClasses,\n ];\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"configure\", field, value);\n },\n [updateAddField]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (logSearchEnabled) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"log_search_storage_class\",\n required: true,\n value: logSearchSelectedStorageClass,\n customValidation: logSearchSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"log_search_volume_size\",\n required: true,\n value: logSearchVolumeSize,\n customValidation:\n logSearchVolumeSize === \"\" || parseInt(logSearchVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greatter than 0`,\n },\n {\n fieldKey: \"logSearch_securityContext_runAsUser\",\n required: true,\n value: logSearchSecurityContext.runAsUser,\n customValidation:\n logSearchSecurityContext.runAsUser === \"\" ||\n parseInt(logSearchSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"logSearch_securityContext_runAsGroup\",\n required: true,\n value: logSearchSecurityContext.runAsGroup,\n customValidation:\n logSearchSecurityContext.runAsGroup === \"\" ||\n parseInt(logSearchSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"logSearch_securityContext_fsGroup\",\n required: true,\n value: logSearchSecurityContext.fsGroup,\n customValidation:\n logSearchSecurityContext.fsGroup === \"\" ||\n parseInt(logSearchSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"postgres_securityContext_runAsUser\",\n required: true,\n value: logSearchPostgresSecurityContext.runAsUser,\n customValidation:\n logSearchPostgresSecurityContext.runAsUser === \"\" ||\n parseInt(logSearchPostgresSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"postgres_securityContext_runAsGroup\",\n required: true,\n value: logSearchSecurityContext.runAsGroup,\n customValidation:\n logSearchPostgresSecurityContext.runAsGroup === \"\" ||\n parseInt(logSearchPostgresSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"postgres_securityContext_fsGroup\",\n required: true,\n value: logSearchPostgresSecurityContext.fsGroup,\n customValidation:\n logSearchPostgresSecurityContext.fsGroup === \"\" ||\n parseInt(logSearchPostgresSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPageValid(\"configure\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n logSearchImage,\n logSearchPostgresImage,\n logSearchPostgresInitImage,\n isPageValid,\n logSearchEnabled,\n logSearchSelectedStorageClass,\n logSearchVolumeSize,\n tenantSecurityContext,\n logSearchSecurityContext,\n logSearchPostgresSecurityContext,\n ]);\n\n useEffect(() => {\n // New default values in current selection is invalid\n if (storageClasses.length > 0) {\n const filterLogSearch = storageClasses.filter(\n (item: any) => item.value === logSearchSelectedStorageClass\n );\n if (filterLogSearch.length === 0) {\n updateField(\"logSearchSelectedStorageClass\", \"default\");\n }\n }\n }, [\n logSearchSelectedStorageClass,\n selectedStorageClass,\n storageClasses,\n updateField,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
\n

Audit Log

\n \n Audit log deploys a small PostgreSQL database and store access logs of\n all calls into the tenant.\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"logSearchEnabled\", checked);\n }}\n label={\"Enabled\"}\n />\n \n {logSearchEnabled && (\n \n \n ) => {\n updateField(\n \"logSearchSelectedStorageClass\",\n e.target.value as string\n );\n }}\n label=\"Log Search Storage Class\"\n value={logSearchSelectedStorageClass}\n options={configureSTClasses}\n disabled={configureSTClasses.length < 1}\n />\n \n \n
\n ) => {\n updateField(\"logSearchVolumeSize\", e.target.value);\n cleanValidation(\"log_search_volume_size\");\n }}\n label=\"Storage Size\"\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n value={logSearchVolumeSize}\n required\n error={validationErrors[\"log_search_volume_size\"] || \"\"}\n min=\"0\"\n />\n
\n
\n\n \n \n SecurityContext for LogSearch\n \n\n \n \n
\n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"logSearch_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={logSearchSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"logSearch_securityContext_runAsUser\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"logSearch_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={logSearchSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\n \"logSearch_securityContext_runAsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"logSearch_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={logSearchSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"logSearch_securityContext_fsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n \n
\n
\n \n
\n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n
\n \n
\n \n SecurityContext for PostgreSQL\n \n\n \n \n
\n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"postgres_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={logSearchPostgresSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"postgres_securityContext_runAsUser\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"postgres_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={logSearchPostgresSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"postgres_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"postgres_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={logSearchPostgresSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"postgres_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
\n \n
\n
\n \n
\n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
\n
\n
\n
\n )}\n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n storageClasses: state.tenants.createTenant.storageClasses,\n logSearchEnabled:\n state.tenants.createTenant.fields.configure.logSearchEnabled,\n logSearchVolumeSize:\n state.tenants.createTenant.fields.configure.logSearchVolumeSize,\n logSearchSizeFactor:\n state.tenants.createTenant.fields.configure.logSearchSizeFactor,\n logSearchSelectedStorageClass:\n state.tenants.createTenant.fields.configure.logSearchSelectedStorageClass,\n logSearchImage: state.tenants.createTenant.fields.configure.logSearchImage,\n logSearchPostgresImage:\n state.tenants.createTenant.fields.configure.logSearchPostgresImage,\n logSearchPostgresInitImage:\n state.tenants.createTenant.fields.configure.logSearchPostgresInitImage,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n tenantSecurityContext:\n state.tenants.createTenant.fields.configure.tenantSecurityContext,\n logSearchSecurityContext:\n state.tenants.createTenant.fields.configure.logSearchSecurityContext,\n logSearchPostgresSecurityContext:\n state.tenants.createTenant.fields.configure\n .logSearchPostgresSecurityContext,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(ConfigLogSearch));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper, SelectChangeEvent } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { isPageValid, updateAddField } from \"../../actions\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { ISecurityContext } from \"../../types\";\nimport InputUnitMenu from \"../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IConfigureProps {\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n storageClasses: any;\n classes: any;\n prometheusEnabled: boolean;\n prometheusVolumeSize: string;\n prometheusSizeFactor: string;\n prometheusSelectedStorageClass: string;\n prometheusImage: string;\n prometheusSidecarImage: string;\n prometheusInitImage: string;\n selectedStorageClass: string;\n tenantSecurityContext: ISecurityContext;\n prometheusSecurityContext: ISecurityContext;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n fieldSpaceTop: {\n marginTop: 15,\n },\n prometheusEnabledFields: {\n marginLeft: 20, // 2nd Level(15+15)\n padding: 10,\n width: \"90%\",\n margin: \"auto\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst ConfigPrometheus = ({\n classes,\n storageClasses,\n prometheusEnabled,\n prometheusVolumeSize,\n prometheusSizeFactor,\n prometheusSelectedStorageClass,\n prometheusImage,\n prometheusSidecarImage,\n prometheusInitImage,\n updateAddField,\n isPageValid,\n selectedStorageClass,\n tenantSecurityContext,\n prometheusSecurityContext,\n}: IConfigureProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n const configureSTClasses = [\n { label: \"Default\", value: \"default\" },\n ...storageClasses,\n ];\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"configure\", field, value);\n },\n [updateAddField]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (prometheusEnabled) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"prometheus_storage_class\",\n required: true,\n value: prometheusSelectedStorageClass,\n customValidation: prometheusSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"prometheus_volume_size\",\n required: true,\n value: prometheusVolumeSize,\n customValidation:\n prometheusVolumeSize === \"\" || parseInt(prometheusVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greater than 0`,\n },\n {\n fieldKey: \"prometheus_securityContext_runAsUser\",\n required: true,\n value: prometheusSecurityContext.runAsUser,\n customValidation:\n prometheusSecurityContext.runAsUser === \"\" ||\n parseInt(prometheusSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"prometheus_securityContext_runAsGroup\",\n required: true,\n value: prometheusSecurityContext.runAsGroup,\n customValidation:\n prometheusSecurityContext.runAsGroup === \"\" ||\n parseInt(prometheusSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"prometheus_securityContext_fsGroup\",\n required: true,\n value: prometheusSecurityContext.fsGroup,\n customValidation:\n prometheusSecurityContext.fsGroup === \"\" ||\n parseInt(prometheusSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPageValid(\"configure\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n prometheusImage,\n prometheusSidecarImage,\n prometheusInitImage,\n isPageValid,\n prometheusEnabled,\n prometheusSelectedStorageClass,\n prometheusVolumeSize,\n tenantSecurityContext,\n prometheusSecurityContext,\n ]);\n\n useEffect(() => {\n // New default values in current selection is invalid\n if (storageClasses.length > 0) {\n const filterPrometheus = storageClasses.filter(\n (item: any) => item.value === prometheusSelectedStorageClass\n );\n if (filterPrometheus.length === 0) {\n updateField(\"prometheusSelectedStorageClass\", \"default\");\n }\n }\n }, [\n prometheusSelectedStorageClass,\n selectedStorageClass,\n storageClasses,\n updateField,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
\n

Monitoring

\n \n A small Prometheus will be deployed to keep metrics about the tenant.\n \n
\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"prometheusEnabled\", checked);\n }}\n label={\"Enabled\"}\n />\n \n {prometheusEnabled && (\n \n \n ) => {\n updateField(\n \"prometheusSelectedStorageClass\",\n e.target.value as string\n );\n }}\n label=\"Prometheus Storage Class\"\n value={prometheusSelectedStorageClass}\n options={configureSTClasses}\n disabled={configureSTClasses.length < 1}\n />\n \n \n
\n ) => {\n updateField(\"prometheusVolumeSize\", e.target.value);\n cleanValidation(\"prometheus_volume_size\");\n }}\n label=\"Storage Size\"\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n value={prometheusVolumeSize}\n required\n error={validationErrors[\"prometheus_volume_size\"] || \"\"}\n min=\"0\"\n />\n
\n
\n \n \n SecurityContext for Prometheus\n \n \n \n
\n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"prometheus_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={prometheusSecurityContext.runAsUser}\n required\n error={\n validationErrors[\n \"prometheus_securityContext_runAsUser\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"prometheus_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={prometheusSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\n \"prometheus_securityContext_runAsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n
\n
\n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"prometheus_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={prometheusSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"prometheus_securityContext_fsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
\n \n
\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n \n \n \n
\n )}\n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n storageClasses: state.tenants.createTenant.storageClasses,\n prometheusEnabled:\n state.tenants.createTenant.fields.configure.prometheusEnabled,\n prometheusVolumeSize:\n state.tenants.createTenant.fields.configure.prometheusVolumeSize,\n prometheusSizeFactor:\n state.tenants.createTenant.fields.configure.prometheusSizeFactor,\n prometheusSelectedStorageClass:\n state.tenants.createTenant.fields.configure.prometheusSelectedStorageClass,\n prometheusImage: state.tenants.createTenant.fields.configure.prometheusImage,\n prometheusSidecarImage:\n state.tenants.createTenant.fields.configure.prometheusSidecarImage,\n prometheusInitImage:\n state.tenants.createTenant.fields.configure.prometheusInitImage,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n tenantSecurityContext:\n state.tenants.createTenant.fields.configure.tenantSecurityContext,\n prometheusSecurityContext:\n state.tenants.createTenant.fields.configure.prometheusSecurityContext,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(ConfigPrometheus));\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 { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport { LinearProgress } from \"@mui/material\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n modalBasic,\n settingsCommon,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport api from \"../../../../common/api\";\nimport { generatePoolName, getBytes } from \"../../../../common/utils\";\nimport GenericWizard from \"../../Common/GenericWizard/GenericWizard\";\nimport { IWizardElement } from \"../../Common/GenericWizard/types\";\nimport { NewServiceAccount } from \"../../Common/CredentialsPrompt/types\";\nimport {\n ErrorResponseHandler,\n ITenantCreator,\n ITolerationModel,\n} from \"../../../../common/types\";\nimport { KeyPair } from \"../ListTenants/utils\";\n\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { getDefaultAffinity, getNodeSelector } from \"../TenantDetails/utils\";\nimport CredentialsPrompt from \"../../Common/CredentialsPrompt/CredentialsPrompt\";\nimport { AppState } from \"../../../../store\";\nimport { ICertificatesItems, IFieldStore } from \"../types\";\nimport { resetAddTenantForm, updateAddField } from \"../actions\";\nimport Configure from \"./Steps/Configure\";\nimport IdentityProvider from \"./Steps/IdentityProvider\";\nimport Security from \"./Steps/Security\";\nimport Encryption from \"./Steps/Encryption\";\nimport Affinity from \"./Steps/Affinity\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport history from \"../../../../history\";\nimport Images from \"./Steps/Images\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport BackLink from \"../../../../common/BackLink\";\nimport TenantResources from \"./Steps/TenantResources/TenantResources\";\nimport ConfigLogSearch from \"./Steps/ConfigLogSearch\";\nimport ConfigPrometheus from \"./Steps/ConfigPrometheus\";\nimport {\n IMkEnvs,\n resourcesConfigurations,\n} from \"./Steps/TenantResources/utils\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport { StorageIcon } from \"../../../../icons\";\n\ninterface IAddTenantProps {\n setErrorSnackMessage: typeof setErrorSnackMessage;\n resetAddTenantForm: typeof resetAddTenantForm;\n updateAddField: typeof updateAddField;\n fields: IFieldStore;\n certificates: ICertificatesItems;\n selectedStorageClass: string;\n namespace: string;\n validPages: string[];\n classes: any;\n features?: string[];\n tolerations: ITolerationModel[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n pageBox: {\n border: \"1px solid #EAEAEA\",\n },\n ...modalBasic,\n ...wizardCommon,\n ...settingsCommon,\n });\n\nconst AddTenant = ({\n classes,\n fields,\n certificates,\n selectedStorageClass,\n namespace,\n validPages,\n setErrorSnackMessage,\n resetAddTenantForm,\n features,\n tolerations,\n}: IAddTenantProps) => {\n // Modals\n const [showNewCredentials, setShowNewCredentials] = useState(false);\n const [createdAccount, setCreatedAccount] =\n useState(null);\n\n // Fields\n const [addSending, setAddSending] = useState(false);\n const [formRender, setFormRender] = useState(null);\n\n useEffect(() => {\n let setConfiguration = IMkEnvs.default;\n\n if (features && features.length !== 0) {\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (features.includes(element)) {\n setConfiguration = get(\n resourcesConfigurations,\n element,\n IMkEnvs.default\n );\n }\n });\n }\n\n setFormRender(setConfiguration);\n }, [features]);\n\n /* Send Information to backend */\n useEffect(() => {\n const tenantName = fields.nameTenant.tenantName;\n const selectedStorageClass = fields.nameTenant.selectedStorageClass;\n const imageName = fields.configure.imageName;\n const customDockerhub = fields.configure.customDockerhub;\n const imageRegistry = fields.configure.imageRegistry;\n const imageRegistryUsername = fields.configure.imageRegistryUsername;\n const imageRegistryPassword = fields.configure.imageRegistryPassword;\n const exposeMinIO = fields.configure.exposeMinIO;\n const exposeConsole = fields.configure.exposeConsole;\n const idpSelection = fields.identityProvider.idpSelection;\n const openIDConfigurationURL =\n fields.identityProvider.openIDConfigurationURL;\n const openIDClientID = fields.identityProvider.openIDClientID;\n const openIDClaimName = fields.identityProvider.openIDClaimName;\n const openIDCallbackURL = fields.identityProvider.openIDCallbackURL;\n const openIDScopes = fields.identityProvider.openIDScopes;\n const openIDSecretID = fields.identityProvider.openIDSecretID;\n const ADURL = fields.identityProvider.ADURL;\n const ADSkipTLS = fields.identityProvider.ADSkipTLS;\n const ADServerInsecure = fields.identityProvider.ADServerInsecure;\n const ADGroupSearchBaseDN = fields.identityProvider.ADGroupSearchBaseDN;\n const ADGroupSearchFilter = fields.identityProvider.ADGroupSearchFilter;\n const ADUserDNs = fields.identityProvider.ADUserDNs;\n const ADLookupBindDN = fields.identityProvider.ADLookupBindDN;\n const ADLookupBindPassword = fields.identityProvider.ADLookupBindPassword;\n const ADUserDNSearchBaseDN = fields.identityProvider.ADUserDNSearchBaseDN;\n const ADUserDNSearchFilter = fields.identityProvider.ADUserDNSearchFilter;\n const ADServerStartTLS = fields.identityProvider.ADServerStartTLS;\n const accessKeys = fields.identityProvider.accessKeys;\n const secretKeys = fields.identityProvider.secretKeys;\n const minioCertificates = certificates.minioCertificates;\n const caCertificates = certificates.caCertificates;\n const consoleCaCertificates = certificates.consoleCaCertificates;\n const consoleCertificate = certificates.consoleCertificate;\n const serverCertificate = certificates.serverCertificate;\n const clientCertificate = certificates.clientCertificate;\n const vaultCertificate = certificates.vaultCertificate;\n const vaultCA = certificates.vaultCA;\n const gemaltoCA = certificates.gemaltoCA;\n const enableEncryption = fields.encryption.enableEncryption;\n const encryptionType = fields.encryption.encryptionType;\n const gemaltoEndpoint = fields.encryption.gemaltoEndpoint;\n const gemaltoToken = fields.encryption.gemaltoToken;\n const gemaltoDomain = fields.encryption.gemaltoDomain;\n const gemaltoRetry = fields.encryption.gemaltoRetry;\n const awsEndpoint = fields.encryption.awsEndpoint;\n const awsRegion = fields.encryption.awsRegion;\n const awsKMSKey = fields.encryption.awsKMSKey;\n const awsAccessKey = fields.encryption.awsAccessKey;\n const awsSecretKey = fields.encryption.awsSecretKey;\n const awsToken = fields.encryption.awsToken;\n const vaultEndpoint = fields.encryption.vaultEndpoint;\n const vaultEngine = fields.encryption.vaultEngine;\n const vaultNamespace = fields.encryption.vaultNamespace;\n const vaultPrefix = fields.encryption.vaultPrefix;\n const vaultAppRoleEngine = fields.encryption.vaultAppRoleEngine;\n const vaultId = fields.encryption.vaultId;\n const vaultSecret = fields.encryption.vaultSecret;\n const vaultRetry = fields.encryption.vaultRetry;\n const vaultPing = fields.encryption.vaultPing;\n const azureEndpoint = fields.encryption.azureEndpoint;\n const azureTenantID = fields.encryption.azureTenantID;\n const azureClientID = fields.encryption.azureClientID;\n const azureClientSecret = fields.encryption.azureClientSecret;\n const gcpProjectID = fields.encryption.gcpProjectID;\n const gcpEndpoint = fields.encryption.gcpEndpoint;\n const gcpClientEmail = fields.encryption.gcpClientEmail;\n const gcpClientID = fields.encryption.gcpClientID;\n const gcpPrivateKeyID = fields.encryption.gcpPrivateKeyID;\n const gcpPrivateKey = fields.encryption.gcpPrivateKey;\n const enableAutoCert = fields.security.enableAutoCert;\n const enableTLS = fields.security.enableTLS;\n const ecParity = fields.tenantSize.ecParity;\n const distribution = fields.tenantSize.distribution;\n const tenantCustom = fields.configure.tenantCustom;\n const logSearchEnabled = fields.configure.logSearchEnabled;\n const prometheusEnabled = fields.configure.prometheusEnabled;\n const logSearchVolumeSize = fields.configure.logSearchVolumeSize;\n const logSearchSelectedStorageClass =\n fields.configure.logSearchSelectedStorageClass;\n const logSearchImage = fields.configure.logSearchImage;\n const kesImage = fields.configure.kesImage;\n const logSearchPostgresImage = fields.configure.logSearchPostgresImage;\n const logSearchPostgresInitImage =\n fields.configure.logSearchPostgresInitImage;\n const prometheusImage = fields.configure.prometheusImage;\n const prometheusSidecarImage = fields.configure.prometheusSidecarImage;\n const prometheusInitImage = fields.configure.prometheusInitImage;\n const prometheusSelectedStorageClass =\n fields.configure.prometheusSelectedStorageClass;\n const prometheusVolumeSize = fields.configure.prometheusVolumeSize;\n const affinityType = fields.affinity.podAffinity;\n const nodeSelectorLabels = fields.affinity.nodeSelectorLabels;\n const withPodAntiAffinity = fields.affinity.withPodAntiAffinity;\n\n const tenantSecurityContext = fields.configure.tenantSecurityContext;\n const logSearchSecurityContext = fields.configure.logSearchSecurityContext;\n const logSearchPostgresSecurityContext =\n fields.configure.logSearchPostgresSecurityContext;\n const prometheusSecurityContext =\n fields.configure.prometheusSecurityContext;\n const kesSecurityContext = fields.encryption.kesSecurityContext;\n const kesReplicas = fields.encryption.replicas;\n\n if (addSending) {\n const tolerationValues = tolerations.filter(\n (toleration) => toleration.key.trim() !== \"\"\n );\n\n const poolName = generatePoolName([]);\n\n let affinityObject = {};\n\n switch (affinityType) {\n case \"default\":\n affinityObject = {\n affinity: getDefaultAffinity(tenantName, poolName),\n };\n break;\n case \"nodeSelector\":\n affinityObject = {\n affinity: getNodeSelector(\n nodeSelectorLabels,\n withPodAntiAffinity,\n tenantName,\n poolName\n ),\n };\n break;\n }\n\n const erasureCode = ecParity.split(\":\")[1];\n\n let dataSend: ITenantCreator = {\n name: tenantName,\n namespace: namespace,\n access_key: \"\",\n secret_key: \"\",\n access_keys: [],\n secret_keys: [],\n enable_tls: enableTLS && enableAutoCert,\n enable_console: true,\n enable_prometheus: true,\n service_name: \"\",\n image: imageName,\n expose_minio: exposeMinIO,\n expose_console: exposeConsole,\n pools: [\n {\n name: poolName,\n servers: distribution.nodes,\n volumes_per_server: distribution.disks,\n volume_configuration: {\n size: distribution.pvSize,\n storage_class_name: selectedStorageClass,\n },\n securityContext: tenantCustom ? tenantSecurityContext : null,\n ...affinityObject,\n tolerations: tolerationValues,\n },\n ],\n erasureCodingParity: parseInt(erasureCode, 10),\n };\n\n // Set Resources\n if (\n fields.tenantSize.resourcesCPURequest !== \"\" ||\n fields.tenantSize.resourcesCPULimit !== \"\" ||\n fields.tenantSize.resourcesMemoryRequest !== \"\" ||\n fields.tenantSize.resourcesMemoryLimit !== \"\"\n ) {\n dataSend.pools[0].resources = {};\n // requests\n if (\n fields.tenantSize.resourcesCPURequest !== \"\" ||\n fields.tenantSize.resourcesMemoryRequest !== \"\"\n ) {\n dataSend.pools[0].resources.requests = {};\n if (fields.tenantSize.resourcesCPURequest !== \"\") {\n dataSend.pools[0].resources.requests.cpu = parseInt(\n fields.tenantSize.resourcesCPURequest\n );\n }\n if (fields.tenantSize.resourcesMemoryRequest !== \"\") {\n dataSend.pools[0].resources.requests.memory = parseInt(\n getBytes(fields.tenantSize.resourcesMemoryRequest, \"Gi\", true)\n );\n }\n }\n // limits\n if (\n fields.tenantSize.resourcesCPULimit !== \"\" ||\n fields.tenantSize.resourcesMemoryLimit !== \"\"\n ) {\n dataSend.pools[0].resources.limits = {};\n if (fields.tenantSize.resourcesCPULimit !== \"\") {\n dataSend.pools[0].resources.limits.cpu = parseInt(\n fields.tenantSize.resourcesCPULimit\n );\n }\n if (fields.tenantSize.resourcesMemoryLimit !== \"\") {\n dataSend.pools[0].resources.limits.memory = parseInt(\n getBytes(fields.tenantSize.resourcesMemoryLimit, \"Gi\", true)\n );\n }\n }\n }\n if (customDockerhub) {\n dataSend = {\n ...dataSend,\n image_registry: {\n registry: imageRegistry,\n username: imageRegistryUsername,\n password: imageRegistryPassword,\n },\n };\n }\n\n if (logSearchEnabled) {\n dataSend = {\n ...dataSend,\n logSearchConfiguration: {\n storageClass:\n logSearchSelectedStorageClass === \"default\"\n ? \"\"\n : logSearchSelectedStorageClass,\n storageSize: parseInt(logSearchVolumeSize),\n image: logSearchImage,\n postgres_image: logSearchPostgresImage,\n postgres_init_image: logSearchPostgresInitImage,\n securityContext: logSearchSecurityContext,\n postgres_securityContext: logSearchPostgresSecurityContext,\n },\n };\n }\n\n if (prometheusEnabled) {\n dataSend = {\n ...dataSend,\n prometheusConfiguration: {\n storageClass:\n prometheusSelectedStorageClass === \"default\"\n ? \"\"\n : prometheusSelectedStorageClass,\n storageSize: parseInt(prometheusVolumeSize),\n image: prometheusImage,\n sidecar_image: prometheusSidecarImage,\n init_image: prometheusInitImage,\n securityContext: prometheusSecurityContext,\n },\n };\n }\n\n let tenantCerts: any = null;\n let consoleCerts: any = null;\n let caCerts: any = null;\n let consoleCaCerts: any = null;\n\n if (caCertificates.length > 0) {\n caCerts = {\n ca_certificates: caCertificates\n .map((keyPair: KeyPair) => keyPair.encoded_cert)\n .filter((keyPair) => keyPair),\n };\n }\n\n if (consoleCaCertificates.length > 0) {\n consoleCaCerts = {\n console_ca_certificates: consoleCaCertificates\n .map((keyPair: KeyPair) => keyPair.encoded_cert)\n .filter((keyPair) => keyPair),\n };\n }\n\n if (enableTLS && minioCertificates.length > 0) {\n tenantCerts = {\n minio: minioCertificates\n .map((keyPair: KeyPair) => ({\n crt: keyPair.encoded_cert,\n key: keyPair.encoded_key,\n }))\n .filter((keyPair) => keyPair.crt && keyPair.key),\n };\n }\n\n if (\n enableTLS &&\n consoleCertificate.encoded_cert !== \"\" &&\n consoleCertificate.encoded_key !== \"\"\n ) {\n consoleCerts = {\n console: {\n crt: consoleCertificate.encoded_cert,\n key: consoleCertificate.encoded_key,\n },\n };\n }\n\n if (tenantCerts || consoleCerts || caCerts || consoleCaCerts) {\n dataSend = {\n ...dataSend,\n tls: {\n ...tenantCerts,\n ...consoleCerts,\n ...caCerts,\n ...consoleCaCerts,\n },\n };\n }\n\n if (enableEncryption) {\n let insertEncrypt = {};\n\n switch (encryptionType) {\n case \"gemalto\":\n let gemaltoCAIntroduce = {};\n\n if (gemaltoCA.encoded_cert !== \"\") {\n gemaltoCAIntroduce = {\n ca: gemaltoCA.encoded_cert,\n };\n }\n insertEncrypt = {\n gemalto: {\n keysecure: {\n endpoint: gemaltoEndpoint,\n credentials: {\n token: gemaltoToken,\n domain: gemaltoDomain,\n retry: parseInt(gemaltoRetry),\n },\n tls: {\n ...gemaltoCAIntroduce,\n },\n },\n },\n };\n break;\n case \"aws\":\n insertEncrypt = {\n aws: {\n secretsmanager: {\n endpoint: awsEndpoint,\n region: awsRegion,\n kmskey: awsKMSKey,\n credentials: {\n accesskey: awsAccessKey,\n secretkey: awsSecretKey,\n token: awsToken,\n },\n },\n },\n };\n break;\n case \"azure\":\n insertEncrypt = {\n azure: {\n keyvault: {\n endpoint: azureEndpoint,\n credentials: {\n tenant_id: azureTenantID,\n client_id: azureClientID,\n client_secret: azureClientSecret,\n },\n },\n },\n };\n break;\n case \"gcp\":\n insertEncrypt = {\n gcp: {\n secretmanager: {\n project_id: gcpProjectID,\n endpoint: gcpEndpoint,\n credentials: {\n client_email: gcpClientEmail,\n client_id: gcpClientID,\n private_key_id: gcpPrivateKeyID,\n private_key: gcpPrivateKey,\n },\n },\n },\n };\n break;\n case \"vault\":\n let vaultKeyPair = null;\n let vaultCAInsert = null;\n if (\n vaultCertificate.encoded_key !== \"\" &&\n vaultCertificate.encoded_cert !== \"\"\n ) {\n vaultKeyPair = {\n key: vaultCertificate.encoded_key,\n crt: vaultCertificate.encoded_cert,\n };\n }\n if (vaultCA.encoded_cert !== \"\") {\n vaultCAInsert = {\n ca: vaultCA.encoded_cert,\n };\n }\n let vaultTLS = null;\n if (vaultKeyPair || vaultCAInsert) {\n vaultTLS = {\n tls: {\n ...vaultKeyPair,\n ...vaultCAInsert,\n },\n };\n }\n insertEncrypt = {\n vault: {\n endpoint: vaultEndpoint,\n engine: vaultEngine,\n namespace: vaultNamespace,\n prefix: vaultPrefix,\n approle: {\n engine: vaultAppRoleEngine,\n id: vaultId,\n secret: vaultSecret,\n retry: parseInt(vaultRetry),\n },\n ...vaultTLS,\n status: {\n ping: parseInt(vaultPing),\n },\n },\n };\n break;\n }\n\n let encryptionServerKeyPair: any = {};\n let encryptionClientKeyPair: any = {};\n\n if (\n clientCertificate.encoded_key !== \"\" &&\n clientCertificate.encoded_cert !== \"\"\n ) {\n encryptionClientKeyPair = {\n client: {\n key: clientCertificate.encoded_key,\n crt: clientCertificate.encoded_cert,\n },\n };\n }\n\n if (\n serverCertificate.encoded_key !== \"\" &&\n serverCertificate.encoded_cert !== \"\"\n ) {\n encryptionServerKeyPair = {\n server: {\n key: serverCertificate.encoded_key,\n crt: serverCertificate.encoded_cert,\n },\n };\n }\n\n dataSend = {\n ...dataSend,\n encryption: {\n replicas: kesReplicas,\n securityContext: kesSecurityContext,\n image: kesImage,\n ...encryptionClientKeyPair,\n ...encryptionServerKeyPair,\n ...insertEncrypt,\n },\n };\n }\n\n let dataIDP: any = {};\n switch (idpSelection) {\n case \"Built-in\":\n let keyarray = [];\n for (let i = 0; i < accessKeys.length; i++) {\n keyarray.push({\n access_key: accessKeys[i],\n secret_key: secretKeys[i],\n });\n }\n dataIDP = {\n keys: keyarray,\n };\n break;\n case \"OpenID\":\n dataIDP = {\n oidc: {\n configuration_url: openIDConfigurationURL,\n client_id: openIDClientID,\n secret_id: openIDSecretID,\n claim_name: openIDClaimName,\n callback_url: openIDCallbackURL,\n scopes: openIDScopes,\n },\n };\n break;\n case \"AD\":\n dataIDP = {\n active_directory: {\n url: ADURL,\n skip_tls_verification: ADSkipTLS,\n server_insecure: ADServerInsecure,\n group_search_base_dn: ADGroupSearchBaseDN,\n group_search_filter: ADGroupSearchFilter,\n user_dns: ADUserDNs,\n lookup_bind_dn: ADLookupBindDN,\n lookup_bind_password: ADLookupBindPassword,\n user_dn_search_base_dn: ADUserDNSearchBaseDN,\n user_dn_search_filter: ADUserDNSearchFilter,\n server_start_tls: ADServerStartTLS,\n },\n };\n break;\n }\n\n dataSend = {\n ...dataSend,\n idp: { ...dataIDP },\n };\n api\n .invoke(\"POST\", `/api/v1/tenants`, dataSend)\n .then((res) => {\n const consoleSAList = get(res, \"console\", []);\n\n let newSrvAcc: NewServiceAccount = {\n idp: get(res, \"externalIDP\", false),\n console: [],\n };\n\n if (consoleSAList) {\n if (Array.isArray(consoleSAList)) {\n const consoleItem = consoleSAList.map((consoleKey) => {\n return {\n accessKey: consoleKey.access_key,\n secretKey: consoleKey.secret_key,\n api: \"s3v4\",\n path: \"auto\",\n url: consoleKey.url,\n };\n });\n\n newSrvAcc.console = consoleItem;\n } else {\n newSrvAcc = {\n console: {\n accessKey: res.console.access_key,\n secretKey: res.console.secret_key,\n url: res.console.url,\n },\n };\n }\n }\n setAddSending(false);\n setShowNewCredentials(true);\n setCreatedAccount(newSrvAcc);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddSending(false);\n setErrorSnackMessage(err);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [addSending]);\n\n const cancelButton = {\n label: \"Cancel\",\n type: \"other\",\n enabled: true,\n action: () => {\n resetAddTenantForm();\n history.push(\"/tenants\");\n },\n };\n const requiredPages = [\n \"nameTenant\",\n \"tenantSize\",\n \"configure\",\n \"affinity\",\n \"identityProvider\",\n \"security\",\n \"encryption\",\n ];\n const createButton = {\n label: \"Create\",\n type: \"submit\",\n enabled:\n !addSending &&\n selectedStorageClass !== \"\" &&\n requiredPages.every((v) => validPages.includes(v)),\n action: () => {\n setAddSending(true);\n },\n };\n\n const wizardSteps: IWizardElement[] = [\n {\n label: \"Setup\",\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Configure\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Images\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Pod Placement\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Identity Provider\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Security\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Encryption\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Audit Log\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Monitoring\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n ];\n\n let filteredWizardSteps = wizardSteps;\n\n const closeCredentialsModal = () => {\n resetAddTenantForm();\n history.push(\"/tenants\");\n };\n\n return (\n \n {showNewCredentials && (\n {\n closeCredentialsModal();\n }}\n entity=\"Tenant\"\n />\n )}\n \n\n \n {addSending && (\n \n \n \n )}\n\n \n \n \n \n \n \n {formRender === IMkEnvs.aws && (\n \n }\n help={\n \n Performance Optimized: Uses the gp3 EBS storage\n class class configured at 1,000Mi/s throughput and 16,000\n IOPS, however the minimum volume size for this type of EBS\n volume is 32Gi.\n
\n
\n Storage Optimized: Uses the sc1 EBS storage\n class, however the minimum volume size for this type of EBS\n volume is  \n 16Ti to unlock their maximum throughput speed of\n 250Mi/s.\n
\n }\n />\n
\n )}\n
\n
\n );\n};\n\nconst mapState = (state: AppState) => ({\n namespace: state.tenants.createTenant.fields.nameTenant.namespace,\n validPages: state.tenants.createTenant.validPages,\n fields: state.tenants.createTenant.fields,\n certificates: state.tenants.createTenant.certificates,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n features: state.console.session.features,\n tolerations: state.tenants.createTenant.tolerations,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n updateAddField,\n resetAddTenantForm,\n});\n\nexport default withStyles(styles)(connector(AddTenant));\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
}\n \n {errorMessage}\n \n
\n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","useStyles","makeStyles","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","onClick","disabled","tooltip","icon","restProps","size","sx","borderWidth","borderStyle","opacity","contained","background","dark","light","children","rest","button","clsx","flexFlow","inputWithCopy","inputLabel","fieldBasic","label","value","OutlinedInput","readOnly","endAdornment","InputAdornment","position","BoxIconButton","onMouseDown","edge","download","filename","element","document","createElement","setAttribute","encodeURIComponent","style","body","appendChild","click","removeChild","warningBlock","margin","credentialTitle","buttonContainer","textAlign","marginTop","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","promptIcon","newServiceAccount","open","closeModal","entity","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","titleIcon","Grid","formScrollable","Array","isArray","map","credentialsPair","index","accessKey","secretKey","WarnIcon","RBIconButton","id","consoleExtras","itemMap","url","api","path","JSON","stringify","length","allCredentials","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","fileInputField","fileInputStyles","textBoxContainer","onChange","name","required","error","accept","useState","showFileSelector","setShowSelector","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","placement","HelpIcon","type","e","fileName","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","fileProcess","data","IconButton","component","disableRipple","disableFocusRipple","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","deleteDialogStyles","isOpen","onCancel","onConfirm","isLoading","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","event","reason","titleText","closeContainer","closeButton","content","actions","cancelButton","confirmButton","loading","loadingPosition","startIcon","autoFocus","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","customDialogSize","snackBarCommon","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","exposeMinIO","tenants","createTenant","fields","configure","exposeConsole","tenantCustom","tenantSecurityContext","updateAddField","isPageValid","configSectionItem","tenantCustomizationFields","containerItem","fieldGroup","createTenantCommon","responsiveSectionItem","fieldSpaceTop","modalBasic","wizardCommon","validationErrors","setValidationErrors","updateField","useCallback","field","customAccountValidation","fieldKey","runAsUser","customValidation","parseInt","customValidationMessage","runAsGroup","fsGroup","commonVal","commonFormValidation","Object","keys","cleanValidation","fieldName","clearValidationError","Paper","paperWrapper","headerElement","h3Section","descriptionText","FormSwitchWrapper","checked","multiContainer","InputBoxWrapper","min","runAsNonRoot","idpSelection","identityProvider","accessKeys","secretKeys","openIDConfigurationURL","openIDClientID","openIDSecretID","openIDCallbackURL","openIDClaimName","openIDScopes","ADURL","ADSkipTLS","ADServerInsecure","ADGroupSearchBaseDN","ADGroupSearchFilter","ADUserDNs","ADLookupBindDN","ADLookupBindPassword","ADUserDNSearchBaseDN","ADUserDNSearchFilter","ADServerStartTLS","shortened","gridTemplateColumns","gridGap","buttonTray","overlayAction","protocolRadioOptions","adUserDnRows","formFieldStyles","updateUserField","newUserField","updatePwordField","updateADUserField","newADUserDNsField","customIDPValidation","i","push","pattern","customPatternMessage","inputs","_","Fragment","placeholder","Add","splice","RemoveIcon","getRandomString","Casino","Delete","RadioGroupSelector","currentSelection","selectorOptions","formFieldRow","Typography","gutterBottom","enableTLS","security","enableAutoCert","enableCustomCerts","minioCertificates","certificates","caCertificates","addFileToCaCertificates","deleteCaCertificate","addCaCertificate","addKeyPair","addFileToKeyPair","deleteKeyPair","minioCertificateRows","justifyContent","borderBottom","flex","fileItem","minWidth","minioCertsContainer","minioCACertsRow","rowActions","keyPair","FileSelector","encodedValue","cert","key","AddIcon","replicas","encryption","enableEncryption","encryptionType","gemaltoEndpoint","gemaltoToken","gemaltoDomain","gemaltoRetry","awsEndpoint","awsRegion","awsKMSKey","awsAccessKey","awsSecretKey","awsToken","vaultEndpoint","vaultEngine","vaultNamespace","vaultPrefix","vaultAppRoleEngine","vaultId","vaultSecret","vaultRetry","vaultPing","azureEndpoint","azureTenantID","azureClientID","azureClientSecret","gcpProjectID","gcpEndpoint","gcpClientEmail","gcpClientID","gcpPrivateKeyID","gcpPrivateKey","enableCustomCertsForKES","serverCertificate","clientCertificate","vaultCertificate","vaultCA","gemaltoCA","kesSecurityContext","addFileServerCert","addFileClientCert","addFileVaultCert","addFileVaultCa","addFileGemaltoCa","encryptionTypeOptions","mutualTlsConfig","rightSpacer","responsiveContainer","encryptionAvailable","filter","encoded_key","encoded_cert","encryptionValidation","podAffinity","affinity","nodeSelectorLabels","withPodAntiAffinity","keyValuePairs","nodeSelectorPairs","tolerations","setModalErrorSnackMessage","setKeyValuePairs","setTolerationInfo","addNewToleration","removeToleration","affinityConfigField","affinityFieldLabel","radioField","affinityLabelKey","affinityLabelValue","affinityRow","setLoading","keyValueMap","setKeyValueMap","keyOptions","setKeyOptions","then","res","k","catch","err","vl","kvp","kvs","a","indexOf","join","valid","splittedLabels","forEach","splitItem","updateToleration","alterToleration","affinityHelpText","SelectWrapper","newKey","arrCp","assign","options","v","tol","TolerationSelector","effect","onEffectChange","tolerationKey","onTolerationKeyChange","operator","onOperatorChange","onValueChange","tolerationSeconds","seconds","onSecondsChange","storageClasses","customImage","imageName","customDockerhub","imageRegistry","imageRegistryUsername","imageRegistryPassword","prometheusCustom","prometheusEnabled","logSearchCustom","logSearchEnabled","logSearchVolumeSize","logSearchSizeFactor","prometheusVolumeSize","prometheusSizeFactor","logSearchSelectedStorageClass","logSearchImage","kesImage","logSearchPostgresImage","logSearchPostgresInitImage","prometheusSelectedStorageClass","prometheusImage","prometheusSidecarImage","prometheusInitImage","selectedStorageClass","nameTenant","mapDispatchToProps","setErrorSnackMessage","wrapText","wordWrap","namespace","addNamespaceOpen","closeAddNamespaceModalAndRefresh","addNamespaceLoading","setAddNamespaceLoading","ConfirmDialog","LinearProgress","DialogContentText","volumeSize","tenantSize","sizeFactor","drivesPerServer","nodes","memoryNode","resourcesMemoryRequest","ecParity","ecParityChoices","cleanECChoices","resourcesSize","distribution","ecParityCalc","limitSize","cpuToUse","resourcesCPURequest","integrationSelection","table","usableInformation","storageFactors","find","erasureCode","Divider","Table","TableBody","TableRow","TableCell","scope","align","typeSelection","storageClass","disks","niceBytes","pvSize","persistentVolumes","rawCapacity","maxCapacity","Math","floor","maxFailureTolerations","CPU","memory","driveSize","sizeUnit","tenantName","selectedStorageType","features","console","session","setStorageClassesList","setLimitSize","setStorageType","sizePreview","formToRender","IMkEnvs","emptyNamespace","setEmptyNamespace","loadingNamespaceInfo","setLoadingNamespaceInfo","showCreateButton","setShowCreateButton","openAddNSConfirm","setOpenAddNSConfirm","getNamespaceInformation","tenantsList","elements","getLimitSizes","newStorage","stExists","findIndex","detailedError","debounceNamespace","useMemo","debounce","cancel","customNamespaceError","commonValidation","isValid","frmValidationCleanup","refresh","md","minHeight","overlayId","overlayIcon","mkPanelConfigurations","TenantSize","formRender","setFormRender","setConfiguration","resourcesConfigurations","includes","logSearchSecurityContext","logSearchPostgresSecurityContext","logSearchEnabledFields","configureSTClasses","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","prometheusSecurityContext","prometheusEnabledFields","validPages","resetAddTenantForm","pageBox","settingsCommon","showNewCredentials","setShowNewCredentials","createdAccount","setCreatedAccount","addSending","setAddSending","consoleCaCertificates","consoleCertificate","affinityType","kesReplicas","tolerationValues","toleration","trim","poolName","generatePoolName","affinityObject","getDefaultAffinity","getNodeSelector","dataSend","access_key","secret_key","access_keys","secret_keys","enable_tls","enable_console","enable_prometheus","service_name","image","expose_minio","expose_console","pools","servers","volumes_per_server","volume_configuration","storage_class_name","securityContext","erasureCodingParity","resourcesCPULimit","resourcesMemoryLimit","resources","requests","cpu","getBytes","limits","image_registry","registry","username","password","logSearchConfiguration","storageSize","postgres_image","postgres_init_image","postgres_securityContext","prometheusConfiguration","sidecar_image","init_image","tenantCerts","consoleCerts","caCerts","consoleCaCerts","ca_certificates","console_ca_certificates","minio","crt","tls","insertEncrypt","gemaltoCAIntroduce","ca","gemalto","keysecure","endpoint","credentials","token","domain","retry","aws","secretsmanager","region","kmskey","accesskey","secretkey","azure","keyvault","tenant_id","client_id","client_secret","gcp","secretmanager","project_id","client_email","private_key_id","private_key","vaultKeyPair","vaultCAInsert","vaultTLS","vault","engine","prefix","approle","secret","status","ping","encryptionServerKeyPair","encryptionClientKeyPair","client","server","dataIDP","keyarray","oidc","configuration_url","secret_id","claim_name","callback_url","scopes","active_directory","skip_tls_verification","server_insecure","group_search_base_dn","group_search_filter","user_dns","lookup_bind_dn","lookup_bind_password","user_dn_search_base_dn","user_dn_search_filter","server_start_tls","consoleSAList","newSrvAcc","consoleItem","consoleKey","enabled","action","history","createButton","every","filteredWizardSteps","componentRender","buttons","advancedOnly","CredentialsPrompt","PageHeader","PageLayout","BackLink","to","executeOnClick","GenericWizard","wizardSteps","HelpBox","errorBlock","withBreak"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1581.2ff273b8.chunk.js b/portal-ui/build/static/js/1581.4eeb1235.chunk.js similarity index 97% rename from portal-ui/build/static/js/1581.2ff273b8.chunk.js rename to portal-ui/build/static/js/1581.4eeb1235.chunk.js index 1bf7a6d70..fb3b62d27 100644 --- a/portal-ui/build/static/js/1581.2ff273b8.chunk.js +++ b/portal-ui/build/static/js/1581.4eeb1235.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1581],{1581:function(e,a,t){t.r(a);var n=t(70885),s=t(1413),o=t(72791),i=t(60364),l=t(36151),c=t(40986),r=t(11135),d=t(25787),u=t(61889),m=t(45248),f=t(42649),h=t(23814),Z=t(37516),x=t(21435),p=t(56028),j=t(81207),g=t(74833),k=t(56578),v=t(80184),b=(0,i.$j)(null,{setModalErrorSnackMessage:f.zb});a.default=(0,d.Z)((function(e){return(0,r.Z)((0,s.Z)((0,s.Z)({},h.DF),h.ID))}))(b((function(e){var a=e.classes,t=e.open,s=e.enabled,i=e.cfg,r=e.selectedBucket,d=e.closeModalAndRefresh,f=e.setModalErrorSnackMessage,h=(0,o.useState)(!1),b=(0,n.Z)(h,2),M=b[0],S=b[1],C=(0,o.useState)(!1),q=(0,n.Z)(C,2),N=q[0],B=q[1],P=(0,o.useState)("1"),y=(0,n.Z)(P,2),w=y[0],E=y[1],_=(0,o.useState)("TiB"),z=(0,n.Z)(_,2),D=z[0],F=z[1];(0,o.useEffect)((function(){if(s&&(B(!0),i)){E("".concat(i.quota)),F("Gi");for(var e="B",a=i.quota,t=0;t.\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n getBytes,\n k8sScalarUnitsExcluding,\n units,\n} from \"../../../../common/utils\";\nimport { BucketQuota } from \"../types\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../../common/api\";\nimport { BucketQuotaIcon } from \"../../../../icons\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\ninterface IEnableQuotaProps {\n classes: any;\n open: boolean;\n enabled: boolean;\n cfg: BucketQuota | null;\n selectedBucket: string;\n closeModalAndRefresh: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst EnableQuota = ({\n classes,\n open,\n enabled,\n cfg,\n selectedBucket,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n}: IEnableQuotaProps) => {\n const [loading, setLoading] = useState(false);\n const [quotaEnabled, setQuotaEnabled] = useState(false);\n const [quotaSize, setQuotaSize] = useState(\"1\");\n const [quotaUnit, setQuotaUnit] = useState(\"TiB\");\n\n useEffect(() => {\n if (enabled) {\n setQuotaEnabled(true);\n if (cfg) {\n setQuotaSize(`${cfg.quota}`);\n setQuotaUnit(`Gi`);\n\n let maxUnit = \"B\";\n let maxQuota = cfg.quota;\n\n for (let i = 0; i < units.length; i++) {\n if (cfg.quota % Math.pow(1024, i) === 0) {\n maxQuota = cfg.quota / Math.pow(1024, i);\n maxUnit = units[i];\n } else {\n break;\n }\n }\n setQuotaSize(`${maxQuota}`);\n setQuotaUnit(maxUnit);\n }\n }\n }, [enabled, cfg]);\n\n const enableBucketEncryption = () => {\n if (loading) {\n return;\n }\n let req = {\n enabled: quotaEnabled,\n amount: parseInt(getBytes(quotaSize, quotaUnit, true)),\n quota_type: \"hard\",\n };\n\n api\n .invoke(\"PUT\", `/api/v1/buckets/${selectedBucket}/quota`, req)\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\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 \n ) => {\n setQuotaEnabled(event.target.checked);\n }}\n label={\"Enabled\"}\n />\n \n {quotaEnabled && (\n \n \n \n \n ) => {\n if (e.target.validity.valid) {\n setQuotaSize(e.target.value);\n }\n }}\n pattern={\"[0-9]*\"}\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 />\n \n \n \n \n )}\n \n \n {\n closeModalAndRefresh();\n }}\n >\n Cancel\n \n\n \n Save\n \n \n {loading && (\n \n \n \n )}\n \n \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(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 .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["connector","connect","setModalErrorSnackMessage","withStyles","theme","createStyles","formFieldStyles","modalStyleUtils","classes","open","enabled","cfg","selectedBucket","closeModalAndRefresh","useState","loading","setLoading","quotaEnabled","setQuotaEnabled","quotaSize","setQuotaSize","quotaUnit","setQuotaUnit","useEffect","quota","maxUnit","maxQuota","i","units","Math","pow","modalOpen","onClose","title","titleIcon","noValidate","autoComplete","onSubmit","e","preventDefault","req","amount","parseInt","getBytes","quota_type","api","then","catch","err","enableBucketEncryption","container","item","xs","className","formScrollable","formFieldRow","value","id","name","checked","onChange","event","target","label","validity","valid","pattern","required","min","overlayObject","onUnitChange","newValue","unitSelected","unitsList","k8sScalarUnitsExcluding","disabled","modalButtonBar","type","variant","color","onClick","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1581.4eeb1235.chunk.js","mappings":"uUA0NMA,GAAYC,EAAAA,EAAAA,IAAQ,KAAM,CAC9BC,0BAAAA,EAAAA,KAGF,WAAeC,EAAAA,EAAAA,IApLA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACRC,EAAAA,IACAC,EAAAA,OAiLP,CAAkCP,GApKd,SAAC,GAQK,IAPxBQ,EAOuB,EAPvBA,QACAC,EAMuB,EANvBA,KACAC,EAKuB,EALvBA,QACAC,EAIuB,EAJvBA,IACAC,EAGuB,EAHvBA,eACAC,EAEuB,EAFvBA,qBACAX,EACuB,EADvBA,0BAEA,GAA8BY,EAAAA,EAAAA,WAAkB,GAAhD,eAAOC,EAAP,KAAgBC,EAAhB,KACA,GAAwCF,EAAAA,EAAAA,WAAkB,GAA1D,eAAOG,EAAP,KAAqBC,EAArB,KACA,GAAkCJ,EAAAA,EAAAA,UAAiB,KAAnD,eAAOK,EAAP,KAAkBC,EAAlB,KACA,GAAkCN,EAAAA,EAAAA,UAAiB,OAAnD,eAAOO,EAAP,KAAkBC,EAAlB,MAEAC,EAAAA,EAAAA,YAAU,WACR,GAAIb,IACFQ,GAAgB,GACZP,GAAK,CACPS,EAAa,GAAD,OAAIT,EAAIa,QACpBF,EAAa,MAKb,IAHA,IAAIG,EAAU,IACVC,EAAWf,EAAIa,MAEVG,EAAI,EAAGA,EAAIC,EAAAA,GAAAA,QACdjB,EAAIa,MAAQK,KAAKC,IAAI,KAAMH,KAAO,EADNA,IAE9BD,EAAWf,EAAIa,MAAQK,KAAKC,IAAI,KAAMH,GACtCF,EAAUG,EAAAA,GAAMD,GAKpBP,EAAa,GAAD,OAAIM,IAChBJ,EAAaG,MAGhB,CAACf,EAASC,IAwBb,OACE,SAAC,IAAD,CACEoB,UAAWtB,EACXuB,QAAS,WACPnB,KAEFoB,MAAM,sBACNC,WAAW,SAAC,KAAD,IANb,UAQE,iBACEC,YAAU,EACVC,aAAa,MACbC,SAAU,SAACC,GACTA,EAAEC,iBAnCqB,WAC7B,IAAIxB,EAAJ,CAGA,IAAIyB,EAAM,CACR9B,QAASO,EACTwB,OAAQC,UAASC,EAAAA,EAAAA,IAASxB,EAAWE,GAAW,IAChDuB,WAAY,QAGdC,EAAAA,EAAAA,OACU,MADV,0BACoCjC,EADpC,UAC4D4B,GACzDM,MAAK,WACJ9B,GAAW,GACXH,OAEDkC,OAAM,SAACC,GACNhC,GAAW,GACXd,EAA0B8C,OAkBxBC,IALJ,UAQE,UAAC,KAAD,CAAMC,WAAS,EAAf,WACE,UAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIC,UAAW7C,EAAQ8C,eAAtC,WACE,SAAC,KAAD,CAAMH,MAAI,EAACC,GAAI,GAAIC,UAAW7C,EAAQ+C,aAAtC,UACE,SAAC,IAAD,CACEC,MAAM,eACNC,GAAG,eACHC,KAAK,eACLC,QAAS1C,EACT2C,SAAU,SAACC,GACT3C,EAAgB2C,EAAMC,OAAOH,UAE/BI,MAAO,cAGV9C,IACC,SAAC,WAAD,WACE,SAAC,KAAD,CAAMkC,MAAI,EAACC,GAAI,GAAIC,UAAW7C,EAAQ+C,aAAtC,UACE,SAAC,KAAD,CAAML,WAAS,EAAf,UACE,SAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,CACEK,GAAG,aACHC,KAAK,aACLE,SAAU,SAACtB,GACLA,EAAEwB,OAAOE,SAASC,OACpB7C,EAAakB,EAAEwB,OAAON,QAG1BU,QAAS,SACTH,MAAM,QACNP,MAAOrC,EACPgD,UAAQ,EACRC,IAAI,IACJC,eACE,SAAC,IAAD,CACEZ,GAAI,aACJa,aAAc,SAACC,GACbjD,EAAaiD,IAEfC,aAAcnD,EACdoD,WAAWC,EAAAA,EAAAA,IAAwB,CAAC,OACpCC,UAAU,kBAU5B,UAAC,KAAD,CAAMxB,MAAI,EAACC,GAAI,GAAIC,UAAW7C,EAAQoE,eAAtC,WACE,SAAC,IAAD,CACEC,KAAK,SACLC,QAAQ,WACRC,MAAM,UACNJ,SAAU5D,EACViE,QAAS,WACPnE,KANJ,qBAYA,SAAC,IAAD,CACEgE,KAAK,SACLC,QAAQ,YACRC,MAAM,UACNJ,SAAU5D,EAJZ,qBASDA,IACC,SAAC,KAAD,CAAMoC,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,kB,wMChCRpD,GAAYC,EAAAA,EAAAA,KAJD,SAACgF,GAAD,MAAsB,CACrCC,kBAAmBD,EAAME,OAAOC,iBAGE,CAClCC,qBAAAA,EAAAA,KAGF,KAAelF,EAAAA,EAAAA,IAvIA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACRiF,EAAAA,IADO,IAEVC,QAAS,CACPC,QAAS,GACTC,cAAe,GAEjBC,iBAAkB,CAChBC,MAAO,OACPC,SAAU,MAETC,EAAAA,OA4HP,CAAkC7F,GAzHb,SAAC,GAWF,IAVlBgC,EAUiB,EAVjBA,QACAD,EASiB,EATjBA,UACAE,EAQiB,EARjBA,MACA6D,EAOiB,EAPjBA,SACAtF,EAMiB,EANjBA,QAMiB,IALjBuF,UAAAA,OAKiB,SAJjBb,EAIiB,EAJjBA,kBACAc,EAGiB,EAHjBA,iBACAX,EAEiB,EAFjBA,qBAEiB,IADjBnD,UAAAA,OACiB,MADL,KACK,EACjB,GAAwCpB,EAAAA,EAAAA,WAAkB,GAA1D,eAAOmF,EAAP,KAAqBC,EAArB,MAEA3E,EAAAA,EAAAA,YAAU,WACR8D,EAAqB,MACpB,CAACA,KAEJ9D,EAAAA,EAAAA,YAAU,WACR,GAAI2D,EAAmB,CACrB,GAAkC,KAA9BA,EAAkBiB,QAEpB,YADAD,GAAgB,GAIa,UAA3BhB,EAAkBL,MACpBqB,GAAgB,MAGnB,CAAChB,IAEJ,IAKMkB,EAAaL,EACf,CACEvF,QAAS,CACP6F,MAAO7F,EAAQkF,mBAGnB,CAAEE,SAAU,KAAeU,WAAW,GAEtCH,EAAU,GAYd,OAVIjB,IACFiB,EAAUjB,EAAkBqB,kBAEa,KAAvCrB,EAAkBqB,kBAClBrB,EAAkBqB,iBAAiBC,OAAS,KAE5CL,EAAUjB,EAAkBiB,WAK9B,UAAC,KAAD,gBACE1F,KAAMsB,EACNvB,QAASA,GACL4F,GAHN,IAIEK,OAAQ,QACRzE,QAAS,SAAC6B,EAAO6C,GACA,kBAAXA,GACF1E,KAGJqB,UAAW7C,EAAQmG,KAVrB,WAYE,UAAC,IAAD,CAAatD,UAAW7C,EAAQyB,MAAhC,WACE,iBAAKoB,UAAW7C,EAAQoG,UAAxB,UACG1E,EADH,IACeD,MAEf,gBAAKoB,UAAW7C,EAAQqG,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACXpD,GAAI,QACJJ,UAAW7C,EAAQsG,YACnB9B,QAAShD,EACT+E,eAAa,EACbC,KAAK,QANP,UAQE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAWC,SAAS,KACpB,SAAC,IAAD,CACExG,KAAMwF,EACN5C,UAAW7C,EAAQ0G,cACnBlF,QAAS,WA3DbkE,GAAgB,GAChBb,EAAqB,KA6DjBc,QAASA,EACTgB,aAAc,CACZ9D,UAAU,GAAD,OAAK7C,EAAQ4G,SAAb,YACPlC,GAAgD,UAA3BA,EAAkBL,KACnCrE,EAAQ6G,cACR,KAGRC,iBACEpC,GAAgD,UAA3BA,EAAkBL,KAAmB,IAAQ,OAGtE,SAAC,IAAD,CAAexB,UAAW2C,EAAmB,GAAKxF,EAAQ+E,QAA1D,SACGO,a,0BCrKLyB,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,0GACD,SAEJN,EAAQ,EAAUG","sources":["screens/Console/Buckets/BucketDetails/EnableQuota.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","../node_modules/@mui/icons-material/Close.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, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n getBytes,\n k8sScalarUnitsExcluding,\n units,\n} from \"../../../../common/utils\";\nimport { BucketQuota } from \"../types\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../../common/api\";\nimport { BucketQuotaIcon } from \"../../../../icons\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\ninterface IEnableQuotaProps {\n classes: any;\n open: boolean;\n enabled: boolean;\n cfg: BucketQuota | null;\n selectedBucket: string;\n closeModalAndRefresh: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst EnableQuota = ({\n classes,\n open,\n enabled,\n cfg,\n selectedBucket,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n}: IEnableQuotaProps) => {\n const [loading, setLoading] = useState(false);\n const [quotaEnabled, setQuotaEnabled] = useState(false);\n const [quotaSize, setQuotaSize] = useState(\"1\");\n const [quotaUnit, setQuotaUnit] = useState(\"TiB\");\n\n useEffect(() => {\n if (enabled) {\n setQuotaEnabled(true);\n if (cfg) {\n setQuotaSize(`${cfg.quota}`);\n setQuotaUnit(`Gi`);\n\n let maxUnit = \"B\";\n let maxQuota = cfg.quota;\n\n for (let i = 0; i < units.length; i++) {\n if (cfg.quota % Math.pow(1024, i) === 0) {\n maxQuota = cfg.quota / Math.pow(1024, i);\n maxUnit = units[i];\n } else {\n break;\n }\n }\n setQuotaSize(`${maxQuota}`);\n setQuotaUnit(maxUnit);\n }\n }\n }, [enabled, cfg]);\n\n const enableBucketEncryption = () => {\n if (loading) {\n return;\n }\n let req = {\n enabled: quotaEnabled,\n amount: parseInt(getBytes(quotaSize, quotaUnit, true)),\n quota_type: \"hard\",\n };\n\n api\n .invoke(\"PUT\", `/api/v1/buckets/${selectedBucket}/quota`, req)\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\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 \n ) => {\n setQuotaEnabled(event.target.checked);\n }}\n label={\"Enabled\"}\n />\n \n {quotaEnabled && (\n \n \n \n \n ) => {\n if (e.target.validity.valid) {\n setQuotaSize(e.target.value);\n }\n }}\n pattern={\"[0-9]*\"}\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 />\n \n \n \n \n )}\n \n \n {\n closeModalAndRefresh();\n }}\n >\n Cancel\n \n\n \n Save\n \n \n {loading && (\n \n \n \n )}\n \n \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(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 .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["connector","connect","setModalErrorSnackMessage","withStyles","theme","createStyles","formFieldStyles","modalStyleUtils","classes","open","enabled","cfg","selectedBucket","closeModalAndRefresh","useState","loading","setLoading","quotaEnabled","setQuotaEnabled","quotaSize","setQuotaSize","quotaUnit","setQuotaUnit","useEffect","quota","maxUnit","maxQuota","i","units","Math","pow","modalOpen","onClose","title","titleIcon","noValidate","autoComplete","onSubmit","e","preventDefault","req","amount","parseInt","getBytes","quota_type","api","then","catch","err","enableBucketEncryption","container","item","xs","className","formScrollable","formFieldRow","value","id","name","checked","onChange","event","target","label","validity","valid","pattern","required","min","overlayObject","onUnitChange","newValue","unitSelected","unitsList","k8sScalarUnitsExcluding","disabled","modalButtonBar","type","variant","color","onClick","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1687.63ed48b6.chunk.js b/portal-ui/build/static/js/1687.2710a7fa.chunk.js similarity index 98% rename from portal-ui/build/static/js/1687.63ed48b6.chunk.js rename to portal-ui/build/static/js/1687.2710a7fa.chunk.js index c4e6ca571..9e0fbd4f3 100644 --- a/portal-ui/build/static/js/1687.63ed48b6.chunk.js +++ b/portal-ui/build/static/js/1687.2710a7fa.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1687],{23804:function(e,t,r){r(72791);var o=r(11135),i=r(25787),a=r(61889),n=r(80184);t.Z=(0,i.Z)((function(e){return(0,o.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var t=e.classes,r=e.iconComponent,o=e.title,i=e.help;return(0,n.jsx)("div",{className:t.root,children:(0,n.jsxs)(a.ZP,{container:!0,children:[(0,n.jsxs)(a.ZP,{item:!0,xs:12,className:t.leftItems,children:[r,o]}),(0,n.jsx)(a.ZP,{item:!0,xs:12,className:t.helpText,children:i})]})})}))},63856:function(e,t,r){var o=r(1413),i=r(72791),a=r(11135),n=r(25787),s=r(61889),l=r(36151),d=r(27197),c=r(32686),h=r(23814),p=r(80705),m=r(85090),u=r(80184);t.Z=(0,n.Z)((function(e){return(0,a.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},h.OR),h.bN),{},{syncButton:{"&.MuiButton-root .MuiButton-iconSizeMedium > *:first-of-type":{fontSize:18}},schedulerIcon:{opacity:.4,fontSize:10,"& svg":{width:18,height:18}},selectorLabel:{color:"#9D9E9D",fontWeight:"bold",whiteSpace:"nowrap",marginLeft:10,fontSize:12}}))}))((function(e){var t=e.classes,r=e.timeStart,o=e.setTimeStart,a=e.timeEnd,n=e.setTimeEnd,h=e.triggerSync;return(0,u.jsx)(i.Fragment,{children:(0,u.jsxs)(s.ZP,{item:!0,xs:12,className:t.timeContainers,children:[(0,u.jsx)("span",{className:t.filterTitle,children:"Filter:"}),(0,u.jsxs)("div",{className:t.filterContainer,children:[(0,u.jsx)("span",{className:"".concat(t.filterTitle," ").concat(t.schedulerIcon),children:(0,u.jsx)(d.Z,{})}),(0,u.jsx)("span",{className:t.selectorLabel,children:"Start Time:"}),(0,u.jsx)(p.Z,{value:r,onChange:o,forFilterContained:!0,id:"stTime",noInputIcon:!0}),(0,u.jsx)("span",{className:t.divisorLine,children:"\xa0"}),(0,u.jsx)("span",{className:"".concat(t.filterTitle," ").concat(t.schedulerIcon),children:(0,u.jsx)(c.Z,{})}),(0,u.jsx)("span",{className:t.selectorLabel,children:"End Time:"}),(0,u.jsx)(p.Z,{value:a,onChange:n,forFilterContained:!0,id:"endTime",noInputIcon:!0})]}),h&&(0,u.jsx)(l.Z,{type:"button",variant:"contained",color:"primary",onClick:h,endIcon:(0,u.jsx)(m.Z,{}),className:t.syncButton,children:"Sync"})]})})}))},80705:function(e,t,r){var o=r(1413),i=r(72791),a=r(27391),n=r(61889),s=r(30829),l=r(20068),d=r(42261),c=r(55498),h=r(33915),p=r(63466),m=r(27197),u=r(11135),f=r(25787),g=r(84570),x=r(23814),b=r(33976),v=r(80184);t.Z=(0,f.Z)((function(e){return(0,u.Z)((0,o.Z)((0,o.Z)({dateSelectorOverride:{height:40,border:"#EAEDEE 1px solid",marginLeft:15,backgroundColor:"#fff",padding:"0 16px",borderRadius:5,"&.MuiInput-underline:hover:not(.Mui-disabled):before":{borderBottom:0},"&:hover":{borderColor:"#000","&:before, &:after":{borderColor:"transparent",borderBottom:0}},"&:before, &:after":{borderColor:"transparent",borderBottom:0},"& input":{fontSize:12,fontWeight:600,color:"#393939"}},dateSelectorFilterOverride:{width:180,height:42,marginLeft:20,padding:0,borderRadius:5,"&.MuiInput-underline:hover:not(.Mui-disabled):before":{borderBottom:0},"&:hover":{"&:before, &:after":{borderColor:"transparent",borderBottom:0}},"&:before, &:after":{borderColor:"transparent",borderBottom:0},"& input":{fontSize:12,fontWeight:"bold",color:"#081C42"},"@media (max-width: 900px)":{width:103}},dateSelectorFormOverride:{width:"100%",maxWidth:840},parentDateOverride:{flexGrow:1},textBoxContainer:{flexGrow:1},openListIcon:{color:"#9D9E9D",width:8,marginTop:2},paperOverride:{"& .MuiCalendarPicker-root":{padding:"0 22px","& > div":{padding:0,"& > div > div.PrivatePickersFadeTransitionGroup-root:first-of-type":{color:"#0A224C",fontWeight:"bold"},"& > div > div.PrivatePickersFadeTransitionGroup-root:last-of-type":{color:"#9D9E9D","& + button.MuiButtonBase-root":{color:"#9D9E9D"}},"& > div:nth-child(2)":{"& > div":{width:0},"& > button.MuiButtonBase-root":{color:"#0A224C"}}}},"& .MuiTypography-root.MuiTypography-caption":{width:26,height:26,margin:5,color:"#BCBCBC",fontSize:10},"& button.MuiPickersDay-root":{fontWeight:"bold",width:26,height:26,margin:5,textAlign:"center","&.Mui-selected":{backgroundColor:e.palette.primary.main,color:"#fff"}},"& div.MuiPickersDay-hiddenDaySpacingFiller":{width:26,height:26,margin:5},"& div.PrivatePickersSlideTransition-root":{minHeight:240},"& div.MuiCalendarPicker-viewTransitionContainer":{borderTop:"#F0F3F5 1px solid"},"& .MuiClockPicker-arrowSwitcher":{"& > div":{width:0},"& > button.MuiButtonBase-root":{color:"#0A224C"},"& + div > div":{width:255,height:255,backgroundColor:"#fff",border:"#F0F3F5 3px solid","& > div:nth-child(2)":{backgroundColor:"#B4B5B4",width:12,height:12,"&::before":{content:"' '",width:35,height:35,display:"block",position:"absolute",border:"#F0F3F5 3px solid",top:-12,left:-12,borderRadius:"100%"}},"& > div:nth-child(3)":{backgroundColor:"#B4B5B4",width:4},"& > div:last-of-type":{marginTop:15,"& > span":{color:"#0A224C","&.Mui-selected":{color:"#fff"},"&[aria-label='1 hours'], &[aria-label='2 hours'], &[aria-label='3 hours'], &[aria-label='4 hours'], &[aria-label='5 hours'], &[aria-label='6 hours'], &[aria-label='7 hours'], &[aria-label='8 hours'], &[aria-label='9 hours'], &[aria-label='10 hours'], &[aria-label='11 hours'], &[aria-label='12 hours']":{fontWeight:"bold",fontSize:20,marginTop:-1}}}}}}},x.YI),x.Hr))}))((function(e){var t=e.value,r=e.onChange,u=e.classes,f=e.forSearchBlock,x=void 0!==f&&f,Z=e.forFilterContained,j=void 0!==Z&&Z,C=e.label,S=e.tooltip,B=void 0===S?"":S,M=e.required,N=e.id,k=e.disabled,y=void 0!==k&&k,w=e.noInputIcon,F={};void 0!==w&&w||(F={startAdornment:(0,v.jsx)(p.Z,{position:"start",children:(0,v.jsx)(m.Z,{})})}),j&&(F={endAdornment:(0,v.jsx)(p.Z,{position:"end",children:(0,v.jsx)(b.Z,{className:u.openListIcon})})});var T="";x?T=u.dateSelectorOverride:j&&(T=u.dateSelectorFilterOverride);var P=(0,v.jsx)(h.Z,{dateAdapter:c.Z,children:(0,v.jsx)(d.Z,{value:t,onChange:r,InputProps:(0,o.Z)((0,o.Z)({},F),{},{className:T}),label:"",className:x?u.parentDateOverride:u.dateSelectorFormOverride,disabled:y,renderInput:function(e){return(0,v.jsx)(a.Z,(0,o.Z)((0,o.Z)({id:N,variant:"standard"},e),{},{disabled:!0}))},ampm:!1,PopperProps:{className:u.paperOverride}})});return x?P:(0,v.jsx)(i.Fragment,{children:(0,v.jsxs)(n.ZP,{item:!0,xs:12,className:j?"":u.fieldContainer,children:[""!==C&&(0,v.jsxs)(s.Z,{htmlFor:N,className:u.inputLabel,children:[(0,v.jsxs)("span",{children:[C,M?"*":""]}),""!==B&&(0,v.jsx)("div",{className:u.tooltipContainer,children:(0,v.jsx)(l.Z,{title:B,placement:"top-start",children:(0,v.jsx)("div",{className:u.tooltip,children:(0,v.jsx)(g.Z,{})})})})]}),(0,v.jsx)("div",{className:u.textBoxContainer,children:P})]})})}))},56028:function(e,t,r){var o=r(70885),i=r(1413),a=r(72791),n=r(60364),s=r(13400),l=r(55646),d=r(5574),c=r(65661),h=r(39157),p=r(11135),m=r(25787),u=r(23814),f=r(42649),g=r(29823),x=r(28057),b=r(80184),v=(0,n.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:f.MK});t.Z=(0,m.Z)((function(e){return(0,p.Z)((0,i.Z)((0,i.Z)({},u.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},u.sN))}))(v((function(e){var t=e.onClose,r=e.modalOpen,n=e.title,p=e.children,m=e.classes,u=e.wideLimit,f=void 0===u||u,v=e.modalSnackMessage,Z=e.noContentPadding,j=e.setModalSnackMessage,C=e.titleIcon,S=void 0===C?null:C,B=(0,a.useState)(!1),M=(0,o.Z)(B,2),N=M[0],k=M[1];(0,a.useEffect)((function(){j("")}),[j]),(0,a.useEffect)((function(){if(v){if(""===v.message)return void k(!1);"error"!==v.type&&k(!0)}}),[v]);var y=f?{classes:{paper:m.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},w="";return v&&(w=v.detailedErrorMsg,(""===v.detailedErrorMsg||v.detailedErrorMsg.length<5)&&(w=v.message)),(0,b.jsxs)(d.Z,(0,i.Z)((0,i.Z)({open:r,classes:m},y),{},{scroll:"paper",onClose:function(e,r){"backdropClick"!==r&&t()},className:m.root,children:[(0,b.jsxs)(c.Z,{className:m.title,children:[(0,b.jsxs)("div",{className:m.titleText,children:[S," ",n]}),(0,b.jsx)("div",{className:m.closeContainer,children:(0,b.jsx)(s.Z,{"aria-label":"close",id:"close",className:m.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,b.jsx)(g.Z,{})})})]}),(0,b.jsx)(x.Z,{isModal:!0}),(0,b.jsx)(l.Z,{open:N,className:m.snackBarModal,onClose:function(){k(!1),j("")},message:w,ContentProps:{className:"".concat(m.snackBar," ").concat(v&&"error"===v.type?m.errorSnackBar:"")},autoHideDuration:v&&"error"===v.type?1e4:5e3}),(0,b.jsx)(h.Z,{className:Z?"":m.content,children:p})]}))})))},32291:function(e,t,r){var o=r(72791),i=r(60364),a=r(61889),n=r(11135),s=r(25787),l=r(20890),d=r(13400),c=r(95466),h=r(84683),p=r(3925),m=r(74833),u=r(80184),f={toggleList:p.kQ},g=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),f);t.Z=g((0,s.Z)((function(e){return(0,n.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,r=e.label,i=e.actions,n=e.sidebarOpen,s=e.operatorMode,p=e.managerObjects,f=e.toggleList,g=e.middleComponent;return e.features.includes("hide-menu")?(0,u.jsx)(o.Fragment,{}):(0,u.jsxs)(a.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,u.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!n&&(0,u.jsx)("div",{className:t.logo,children:s?(0,u.jsx)(c.Z,{}):(0,u.jsx)(h.Z,{})}),(0,u.jsx)(l.Z,{variant:"h4",className:t.labelStyle,children:r})]}),g&&(0,u.jsx)(a.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:g}),(0,u.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:t.rightMenu,children:[i&&i,p&&p.length>0&&(0,u.jsx)(d.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){f()},id:"object-manager-toggle",size:"large",children:(0,u.jsx)(m.gx,{})})]})]})})))}}]); -//# sourceMappingURL=1687.63ed48b6.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1687],{23804:function(e,t,r){r(72791);var o=r(11135),i=r(25787),a=r(61889),n=r(80184);t.Z=(0,i.Z)((function(e){return(0,o.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var t=e.classes,r=e.iconComponent,o=e.title,i=e.help;return(0,n.jsx)("div",{className:t.root,children:(0,n.jsxs)(a.ZP,{container:!0,children:[(0,n.jsxs)(a.ZP,{item:!0,xs:12,className:t.leftItems,children:[r,o]}),(0,n.jsx)(a.ZP,{item:!0,xs:12,className:t.helpText,children:i})]})})}))},63856:function(e,t,r){var o=r(1413),i=r(72791),a=r(11135),n=r(25787),s=r(61889),l=r(36151),d=r(27197),c=r(32686),h=r(23814),p=r(80705),m=r(85090),u=r(80184);t.Z=(0,n.Z)((function(e){return(0,a.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},h.OR),h.bN),{},{syncButton:{"&.MuiButton-root .MuiButton-iconSizeMedium > *:first-of-type":{fontSize:18}},schedulerIcon:{opacity:.4,fontSize:10,"& svg":{width:18,height:18}},selectorLabel:{color:"#9D9E9D",fontWeight:"bold",whiteSpace:"nowrap",marginLeft:10,fontSize:12}}))}))((function(e){var t=e.classes,r=e.timeStart,o=e.setTimeStart,a=e.timeEnd,n=e.setTimeEnd,h=e.triggerSync;return(0,u.jsx)(i.Fragment,{children:(0,u.jsxs)(s.ZP,{item:!0,xs:12,className:t.timeContainers,children:[(0,u.jsx)("span",{className:t.filterTitle,children:"Filter:"}),(0,u.jsxs)("div",{className:t.filterContainer,children:[(0,u.jsx)("span",{className:"".concat(t.filterTitle," ").concat(t.schedulerIcon),children:(0,u.jsx)(d.Z,{})}),(0,u.jsx)("span",{className:t.selectorLabel,children:"Start Time:"}),(0,u.jsx)(p.Z,{value:r,onChange:o,forFilterContained:!0,id:"stTime",noInputIcon:!0}),(0,u.jsx)("span",{className:t.divisorLine,children:"\xa0"}),(0,u.jsx)("span",{className:"".concat(t.filterTitle," ").concat(t.schedulerIcon),children:(0,u.jsx)(c.Z,{})}),(0,u.jsx)("span",{className:t.selectorLabel,children:"End Time:"}),(0,u.jsx)(p.Z,{value:a,onChange:n,forFilterContained:!0,id:"endTime",noInputIcon:!0})]}),h&&(0,u.jsx)(l.Z,{type:"button",variant:"contained",color:"primary",onClick:h,endIcon:(0,u.jsx)(m.Z,{}),className:t.syncButton,children:"Sync"})]})})}))},80705:function(e,t,r){var o=r(1413),i=r(72791),a=r(27391),n=r(61889),s=r(30829),l=r(20068),d=r(42261),c=r(55498),h=r(33915),p=r(63466),m=r(27197),u=r(11135),f=r(25787),g=r(84570),x=r(23814),b=r(33976),v=r(80184);t.Z=(0,f.Z)((function(e){return(0,u.Z)((0,o.Z)((0,o.Z)({dateSelectorOverride:{height:40,border:"#EAEDEE 1px solid",marginLeft:15,backgroundColor:"#fff",padding:"0 16px",borderRadius:5,"&.MuiInput-underline:hover:not(.Mui-disabled):before":{borderBottom:0},"&:hover":{borderColor:"#000","&:before, &:after":{borderColor:"transparent",borderBottom:0}},"&:before, &:after":{borderColor:"transparent",borderBottom:0},"& input":{fontSize:12,fontWeight:600,color:"#393939"}},dateSelectorFilterOverride:{width:180,height:42,marginLeft:20,padding:0,borderRadius:5,"&.MuiInput-underline:hover:not(.Mui-disabled):before":{borderBottom:0},"&:hover":{"&:before, &:after":{borderColor:"transparent",borderBottom:0}},"&:before, &:after":{borderColor:"transparent",borderBottom:0},"& input":{fontSize:12,fontWeight:"bold",color:"#081C42"},"@media (max-width: 900px)":{width:103}},dateSelectorFormOverride:{width:"100%",maxWidth:840},parentDateOverride:{flexGrow:1},textBoxContainer:{flexGrow:1},openListIcon:{color:"#9D9E9D",width:8,marginTop:2},paperOverride:{"& .MuiCalendarPicker-root":{padding:"0 22px","& > div":{padding:0,"& > div > div.PrivatePickersFadeTransitionGroup-root:first-of-type":{color:"#0A224C",fontWeight:"bold"},"& > div > div.PrivatePickersFadeTransitionGroup-root:last-of-type":{color:"#9D9E9D","& + button.MuiButtonBase-root":{color:"#9D9E9D"}},"& > div:nth-child(2)":{"& > div":{width:0},"& > button.MuiButtonBase-root":{color:"#0A224C"}}}},"& .MuiTypography-root.MuiTypography-caption":{width:26,height:26,margin:5,color:"#BCBCBC",fontSize:10},"& button.MuiPickersDay-root":{fontWeight:"bold",width:26,height:26,margin:5,textAlign:"center","&.Mui-selected":{backgroundColor:e.palette.primary.main,color:"#fff"}},"& div.MuiPickersDay-hiddenDaySpacingFiller":{width:26,height:26,margin:5},"& div.PrivatePickersSlideTransition-root":{minHeight:240},"& div.MuiCalendarPicker-viewTransitionContainer":{borderTop:"#F0F3F5 1px solid"},"& .MuiClockPicker-arrowSwitcher":{"& > div":{width:0},"& > button.MuiButtonBase-root":{color:"#0A224C"},"& + div > div":{width:255,height:255,backgroundColor:"#fff",border:"#F0F3F5 3px solid","& > div:nth-child(2)":{backgroundColor:"#B4B5B4",width:12,height:12,"&::before":{content:"' '",width:35,height:35,display:"block",position:"absolute",border:"#F0F3F5 3px solid",top:-12,left:-12,borderRadius:"100%"}},"& > div:nth-child(3)":{backgroundColor:"#B4B5B4",width:4},"& > div:last-of-type":{marginTop:15,"& > span":{color:"#0A224C","&.Mui-selected":{color:"#fff"},"&[aria-label='1 hours'], &[aria-label='2 hours'], &[aria-label='3 hours'], &[aria-label='4 hours'], &[aria-label='5 hours'], &[aria-label='6 hours'], &[aria-label='7 hours'], &[aria-label='8 hours'], &[aria-label='9 hours'], &[aria-label='10 hours'], &[aria-label='11 hours'], &[aria-label='12 hours']":{fontWeight:"bold",fontSize:20,marginTop:-1}}}}}}},x.YI),x.Hr))}))((function(e){var t=e.value,r=e.onChange,u=e.classes,f=e.forSearchBlock,x=void 0!==f&&f,Z=e.forFilterContained,j=void 0!==Z&&Z,C=e.label,S=e.tooltip,B=void 0===S?"":S,M=e.required,N=e.id,k=e.disabled,y=void 0!==k&&k,w=e.noInputIcon,F={};void 0!==w&&w||(F={startAdornment:(0,v.jsx)(p.Z,{position:"start",children:(0,v.jsx)(m.Z,{})})}),j&&(F={endAdornment:(0,v.jsx)(p.Z,{position:"end",children:(0,v.jsx)(b.Z,{className:u.openListIcon})})});var T="";x?T=u.dateSelectorOverride:j&&(T=u.dateSelectorFilterOverride);var P=(0,v.jsx)(h.Z,{dateAdapter:c.Z,children:(0,v.jsx)(d.Z,{value:t,onChange:r,InputProps:(0,o.Z)((0,o.Z)({},F),{},{className:T}),label:"",className:x?u.parentDateOverride:u.dateSelectorFormOverride,disabled:y,renderInput:function(e){return(0,v.jsx)(a.Z,(0,o.Z)((0,o.Z)({id:N,variant:"standard"},e),{},{disabled:!0}))},ampm:!1,PopperProps:{className:u.paperOverride}})});return x?P:(0,v.jsx)(i.Fragment,{children:(0,v.jsxs)(n.ZP,{item:!0,xs:12,className:j?"":u.fieldContainer,children:[""!==C&&(0,v.jsxs)(s.Z,{htmlFor:N,className:u.inputLabel,children:[(0,v.jsxs)("span",{children:[C,M?"*":""]}),""!==B&&(0,v.jsx)("div",{className:u.tooltipContainer,children:(0,v.jsx)(l.Z,{title:B,placement:"top-start",children:(0,v.jsx)("div",{className:u.tooltip,children:(0,v.jsx)(g.Z,{})})})})]}),(0,v.jsx)("div",{className:u.textBoxContainer,children:P})]})})}))},56028:function(e,t,r){var o=r(70885),i=r(1413),a=r(72791),n=r(60364),s=r(13400),l=r(55646),d=r(5574),c=r(65661),h=r(39157),p=r(11135),m=r(25787),u=r(23814),f=r(42649),g=r(29823),x=r(28057),b=r(80184),v=(0,n.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:f.MK});t.Z=(0,m.Z)((function(e){return(0,p.Z)((0,i.Z)((0,i.Z)({},u.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},u.sN))}))(v((function(e){var t=e.onClose,r=e.modalOpen,n=e.title,p=e.children,m=e.classes,u=e.wideLimit,f=void 0===u||u,v=e.modalSnackMessage,Z=e.noContentPadding,j=e.setModalSnackMessage,C=e.titleIcon,S=void 0===C?null:C,B=(0,a.useState)(!1),M=(0,o.Z)(B,2),N=M[0],k=M[1];(0,a.useEffect)((function(){j("")}),[j]),(0,a.useEffect)((function(){if(v){if(""===v.message)return void k(!1);"error"!==v.type&&k(!0)}}),[v]);var y=f?{classes:{paper:m.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},w="";return v&&(w=v.detailedErrorMsg,(""===v.detailedErrorMsg||v.detailedErrorMsg.length<5)&&(w=v.message)),(0,b.jsxs)(d.Z,(0,i.Z)((0,i.Z)({open:r,classes:m},y),{},{scroll:"paper",onClose:function(e,r){"backdropClick"!==r&&t()},className:m.root,children:[(0,b.jsxs)(c.Z,{className:m.title,children:[(0,b.jsxs)("div",{className:m.titleText,children:[S," ",n]}),(0,b.jsx)("div",{className:m.closeContainer,children:(0,b.jsx)(s.Z,{"aria-label":"close",id:"close",className:m.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,b.jsx)(g.Z,{})})})]}),(0,b.jsx)(x.Z,{isModal:!0}),(0,b.jsx)(l.Z,{open:N,className:m.snackBarModal,onClose:function(){k(!1),j("")},message:w,ContentProps:{className:"".concat(m.snackBar," ").concat(v&&"error"===v.type?m.errorSnackBar:"")},autoHideDuration:v&&"error"===v.type?1e4:5e3}),(0,b.jsx)(h.Z,{className:Z?"":m.content,children:p})]}))})))},32291:function(e,t,r){var o=r(72791),i=r(60364),a=r(61889),n=r(11135),s=r(25787),l=r(20890),d=r(13400),c=r(95466),h=r(84683),p=r(3925),m=r(13048),u=r(80184),f={toggleList:p.kQ},g=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),f);t.Z=g((0,s.Z)((function(e){return(0,n.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,r=e.label,i=e.actions,n=e.sidebarOpen,s=e.operatorMode,p=e.managerObjects,f=e.toggleList,g=e.middleComponent;return e.features.includes("hide-menu")?(0,u.jsx)(o.Fragment,{}):(0,u.jsxs)(a.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,u.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!n&&(0,u.jsx)("div",{className:t.logo,children:s?(0,u.jsx)(c.Z,{}):(0,u.jsx)(h.Z,{})}),(0,u.jsx)(l.Z,{variant:"h4",className:t.labelStyle,children:r})]}),g&&(0,u.jsx)(a.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:g}),(0,u.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:t.rightMenu,children:[i&&i,p&&p.length>0&&(0,u.jsx)(d.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){f()},id:"object-manager-toggle",size:"large",children:(0,u.jsx)(m.gx,{})})]})]})})))}}]); +//# sourceMappingURL=1687.2710a7fa.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1687.63ed48b6.chunk.js.map b/portal-ui/build/static/js/1687.2710a7fa.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/1687.63ed48b6.chunk.js.map rename to portal-ui/build/static/js/1687.2710a7fa.chunk.js.map index a06279abb..6d527ad38 100644 --- a/portal-ui/build/static/js/1687.63ed48b6.chunk.js.map +++ b/portal-ui/build/static/js/1687.2710a7fa.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1687.63ed48b6.chunk.js","mappings":"sKA0EA,KAAeA,EAAAA,EAAAA,IApDA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,KAAM,CACJC,OAAQ,oBACRC,aAAc,EACdC,gBAAiB,UACjBC,YAAa,GACbC,WAAY,GACZC,cAAe,GACfC,aAAc,IAEhBC,UAAW,CACTC,SAAU,GACVC,WAAY,OACZC,aAAc,GACdC,QAAS,OACTC,WAAY,SACZ,cAAe,CACbC,YAAa,GACbC,OAAQ,GACRC,MAAO,KAGXC,SAAU,CACRR,SAAU,GACVL,YAAa,OA2BnB,EAhBgB,SAAC,GAAuD,IAArDc,EAAoD,EAApDA,QAASC,EAA2C,EAA3CA,cAAeC,EAA4B,EAA5BA,MAAOC,EAAqB,EAArBA,KAChD,OACE,gBAAKC,UAAWJ,EAAQlB,KAAxB,UACE,UAAC,KAAD,CAAMuB,WAAS,EAAf,WACE,UAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQV,UAAtC,UACGW,EACAC,MAEH,SAAC,KAAD,CAAMI,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQD,SAAtC,SACGI,a,6JCiDX,KAAexB,EAAAA,EAAAA,IAhFA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,0BACR2B,EAAAA,IACAC,EAAAA,IAFO,IAGVC,WAAY,CACV,+DAAgE,CAC9DnB,SAAU,KAGdoB,cAAe,CACbC,QAAS,GACTrB,SAAU,GACV,QAAS,CACPO,MAAO,GACPD,OAAQ,KAGZgB,cAAe,CACbC,MAAO,UACPtB,WAAY,OACZuB,WAAY,SACZC,WAAY,GACZzB,SAAU,SA0DhB,EAtD0B,SAAC,GAOA,IANzBS,EAMwB,EANxBA,QACAiB,EAKwB,EALxBA,UACAC,EAIwB,EAJxBA,aACAC,EAGwB,EAHxBA,QACAC,EAEwB,EAFxBA,WACAC,EACwB,EADxBA,YAEA,OACE,SAAC,EAAAC,SAAD,WACE,UAAC,KAAD,CAAMhB,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQuB,eAAtC,WACE,iBAAMnB,UAAWJ,EAAQwB,YAAzB,sBACA,iBAAKpB,UAAWJ,EAAQyB,gBAAxB,WACE,iBAAMrB,UAAS,UAAKJ,EAAQwB,YAAb,YAA4BxB,EAAQW,eAAnD,UACE,SAAC,IAAD,OAEF,iBAAMP,UAAWJ,EAAQa,cAAzB,0BACA,SAAC,IAAD,CACEa,MAAOT,EACPU,SAAUT,EACVU,oBAAkB,EAClBC,GAAG,SACHC,aAAW,KAEb,iBAAM1B,UAAWJ,EAAQ+B,YAAzB,mBACA,iBAAM3B,UAAS,UAAKJ,EAAQwB,YAAb,YAA4BxB,EAAQW,eAAnD,UACE,SAAC,IAAD,OAEF,iBAAMP,UAAWJ,EAAQa,cAAzB,wBACA,SAAC,IAAD,CACEa,MAAOP,EACPQ,SAAUP,EACVQ,oBAAkB,EAClBC,GAAG,UACHC,aAAW,OAGdT,IACC,SAAC,IAAD,CACEW,KAAK,SACLC,QAAQ,YACRnB,MAAM,UACNoB,QAASb,EACTc,SAAS,SAAC,IAAD,IACT/B,UAAWJ,EAAQU,WANrB,2B,oNCsOV,KAAe/B,EAAAA,EAAAA,IA9RA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gBACXuD,qBAAsB,CACpBvC,OAAQ,GACRd,OAAQ,oBACRiC,WAAY,GACZ/B,gBAAiB,OACjBoD,QAAS,SACTrD,aAAc,EACd,uDAAwD,CACtDsD,aAAc,GAEhB,UAAW,CACTC,YAAa,OACb,oBAAqB,CACnBA,YAAa,cACbD,aAAc,IAGlB,oBAAqB,CACnBC,YAAa,cACbD,aAAc,GAEhB,UAAW,CACT/C,SAAU,GACVC,WAAY,IACZsB,MAAO,YAGX0B,2BAA4B,CAC1B1C,MAAO,IACPD,OAAQ,GACRmB,WAAY,GACZqB,QAAS,EACTrD,aAAc,EACd,uDAAwD,CACtDsD,aAAc,GAEhB,UAAW,CACT,oBAAqB,CACnBC,YAAa,cACbD,aAAc,IAGlB,oBAAqB,CACnBC,YAAa,cACbD,aAAc,GAEhB,UAAW,CACT/C,SAAU,GACVC,WAAY,OACZsB,MAAO,WAET,4BAA6B,CAC3BhB,MAAO,MAGX2C,yBAA0B,CACxB3C,MAAO,OACP4C,SAAU,KAEZC,mBAAoB,CAClBC,SAAU,GAEZC,iBAAkB,CAChBD,SAAU,GAEZE,aAAc,CACZhC,MAAO,UACPhB,MAAO,EACPiD,UAAW,GAEbC,cAAe,CACb,4BAA6B,CAC3BX,QAAS,SACT,UAAW,CACTA,QAAS,EACT,qEACE,CACEvB,MAAO,UACPtB,WAAY,QAEhB,oEAAqE,CACnEsB,MAAO,UACP,iCAAkC,CAChCA,MAAO,YAGX,uBAAwB,CACtB,UAAW,CACThB,MAAO,GAET,gCAAiC,CAC/BgB,MAAO,cAKf,8CAA+C,CAC7ChB,MAAO,GACPD,OAAQ,GACRoD,OAAQ,EACRnC,MAAO,UACPvB,SAAU,IAEZ,8BAA+B,CAC7BC,WAAY,OACZM,MAAO,GACPD,OAAQ,GACRoD,OAAQ,EACRC,UAAW,SACX,iBAAkB,CAChBjE,gBAAiBL,EAAMuE,QAAQC,QAAQC,KACvCvC,MAAO,SAGX,6CAA8C,CAC5ChB,MAAO,GACPD,OAAQ,GACRoD,OAAQ,GAEV,2CAA4C,CAC1CK,UAAW,KAEb,kDAAmD,CACjDC,UAAW,qBAEb,kCAAmC,CACjC,UAAW,CACTzD,MAAO,GAET,gCAAiC,CAC/BgB,MAAO,WAET,gBAAiB,CACfhB,MAAO,IACPD,OAAQ,IACRZ,gBAAiB,OACjBF,OAAQ,oBACR,uBAAwB,CACtBE,gBAAiB,UACjBa,MAAO,GACPD,OAAQ,GACR,YAAa,CACX2D,QAAS,MACT1D,MAAO,GACPD,OAAQ,GACRH,QAAS,QACT+D,SAAU,WACV1E,OAAQ,oBACR2E,KAAM,GACNC,MAAO,GACP3E,aAAc,SAGlB,uBAAwB,CACtBC,gBAAiB,UACjBa,MAAO,GAET,uBAAwB,CACtBiD,UAAW,GACX,WAAY,CACVjC,MAAO,UACP,iBAAkB,CAChBA,MAAO,QAET,gTACE,CACEtB,WAAY,OACZD,SAAU,GACVwD,WAAY,SAOvBa,EAAAA,IACAC,EAAAA,OA4GP,EAzG8B,SAAC,GAYP,IAXtBnC,EAWqB,EAXrBA,MACAC,EAUqB,EAVrBA,SACA3B,EASqB,EATrBA,QASqB,IARrB8D,eAAAA,OAQqB,aAPrBlC,mBAAAA,OAOqB,SANrBmC,EAMqB,EANrBA,MAMqB,IALrBC,QAAAA,OAKqB,MALX,GAKW,EAJrBC,EAIqB,EAJrBA,SACApC,EAGqB,EAHrBA,GAGqB,IAFrBqC,SAAAA,OAEqB,aADrBpC,YAEIqC,EAAY,QADK,WAInBA,EAAY,CACVC,gBACE,SAAC,IAAD,CAAgBX,SAAS,QAAzB,UACE,SAAC,IAAD,QAMJ7B,IACFuC,EAAY,CACVE,cACE,SAAC,IAAD,CAAgBZ,SAAS,MAAzB,UACE,SAAC,IAAD,CAAcrD,UAAWJ,EAAQ8C,mBAMzC,IAAIwB,EAAiB,GAEjBR,EACFQ,EAAiBtE,EAAQoC,qBAChBR,IACT0C,EAAiBtE,EAAQwC,4BAG3B,IAAM+B,GACJ,SAAC,IAAD,CAAsBC,YAAaC,EAAAA,EAAnC,UACE,SAAC,IAAD,CACE/C,MAAOA,EACPC,SAAUA,EACV+C,YAAU,kBACLP,GADK,IAER/D,UAAWkE,IAEbP,MAAM,GACN3D,UACE0D,EACI9D,EAAQ2C,mBACR3C,EAAQyC,yBAEdyB,SAAUA,EACVS,YAAa,SAACC,GAAD,OACX,SAAC,KAAD,gBAAW/C,GAAIA,EAAII,QAAQ,YAAe2C,GAA1C,IAAiDV,UAAQ,MAE3DW,MAAM,EACNC,YAAa,CACX1E,UAAWJ,EAAQgD,mBAM3B,OAAIc,EACKS,GAIP,SAAC,EAAAjD,SAAD,WACE,UAAC,KAAD,CACEhB,MAAI,EACJC,GAAI,GACJH,UAAYwB,EAA8C,GAAzB5B,EAAQ+E,eAH3C,UAKa,KAAVhB,IACC,UAAC,IAAD,CAAYiB,QAASnD,EAAIzB,UAAWJ,EAAQiF,WAA5C,WACE,4BACGlB,EACAE,EAAW,IAAM,MAEP,KAAZD,IACC,gBAAK5D,UAAWJ,EAAQkF,iBAAxB,UACE,SAAC,IAAD,CAAShF,MAAO8D,EAASmB,UAAU,YAAnC,UACE,gBAAK/E,UAAWJ,EAAQgE,QAAxB,UACE,SAAC,IAAD,cAQZ,gBAAK5D,UAAWJ,EAAQ6C,iBAAxB,SAA2C0B,a,wMCnJ7Ca,GAAYC,EAAAA,EAAAA,KAJD,SAACC,GAAD,MAAsB,CACrCC,kBAAmBD,EAAME,OAAOC,iBAGE,CAClCC,qBAAAA,EAAAA,KAGF,KAAe/G,EAAAA,EAAAA,IAvIA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACR8G,EAAAA,IADO,IAEVnC,QAAS,CACPnB,QAAS,GACTjD,cAAe,GAEjBwG,iBAAkB,CAChB9F,MAAO,OACP4C,SAAU,MAETmD,EAAAA,OA4HP,CAAkCT,GAzHb,SAAC,GAWF,IAVlBU,EAUiB,EAVjBA,QACAC,EASiB,EATjBA,UACA7F,EAQiB,EARjBA,MACA8F,EAOiB,EAPjBA,SACAhG,EAMiB,EANjBA,QAMiB,IALjBiG,UAAAA,OAKiB,SAJjBV,EAIiB,EAJjBA,kBACAW,EAGiB,EAHjBA,iBACAR,EAEiB,EAFjBA,qBAEiB,IADjBS,UAAAA,OACiB,MADL,KACK,EACjB,GAAwCC,EAAAA,EAAAA,WAAkB,GAA1D,eAAOC,EAAP,KAAqBC,EAArB,MAEAC,EAAAA,EAAAA,YAAU,WACRb,EAAqB,MACpB,CAACA,KAEJa,EAAAA,EAAAA,YAAU,WACR,GAAIhB,EAAmB,CACrB,GAAkC,KAA9BA,EAAkBiB,QAEpB,YADAF,GAAgB,GAIa,UAA3Bf,EAAkBvD,MACpBsE,GAAgB,MAGnB,CAACf,IAEJ,IAKMkB,EAAaR,EACf,CACEjG,QAAS,CACP0G,MAAO1G,EAAQ4F,mBAGnB,CAAElD,SAAU,KAAeiE,WAAW,GAEtCH,EAAU,GAYd,OAVIjB,IACFiB,EAAUjB,EAAkBqB,kBAEa,KAAvCrB,EAAkBqB,kBAClBrB,EAAkBqB,iBAAiBC,OAAS,KAE5CL,EAAUjB,EAAkBiB,WAK9B,UAAC,KAAD,gBACEM,KAAMf,EACN/F,QAASA,GACLyG,GAHN,IAIEM,OAAQ,QACRjB,QAAS,SAACkB,EAAOC,GACA,kBAAXA,GACFnB,KAGJ1F,UAAWJ,EAAQlB,KAVrB,WAYE,UAAC,IAAD,CAAasB,UAAWJ,EAAQE,MAAhC,WACE,iBAAKE,UAAWJ,EAAQkH,UAAxB,UACGf,EADH,IACejG,MAEf,gBAAKE,UAAWJ,EAAQmH,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACXtF,GAAI,QACJzB,UAAWJ,EAAQoH,YACnBlF,QAAS4D,EACTuB,eAAa,EACbC,KAAK,QANP,UAQE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAWC,SAAS,KACpB,SAAC,IAAD,CACET,KAAMT,EACNjG,UAAWJ,EAAQwH,cACnB1B,QAAS,WA3DbQ,GAAgB,GAChBZ,EAAqB,KA6DjBc,QAASA,EACTiB,aAAc,CACZrH,UAAU,GAAD,OAAKJ,EAAQ0H,SAAb,YACPnC,GAAgD,UAA3BA,EAAkBvD,KACnChC,EAAQ2H,cACR,KAGRC,iBACErC,GAAgD,UAA3BA,EAAkBvD,KAAmB,IAAQ,OAGtE,SAAC,IAAD,CAAe5B,UAAW8F,EAAmB,GAAKlG,EAAQwD,QAA1D,SACGwC,a,6JCCH6B,EAAqB,CACzBC,WAAAA,EAAAA,IAGI1C,GAAYC,EAAAA,EAAAA,KAXD,SAACC,GAAD,MAAsB,CACrCyC,YAAazC,EAAME,OAAOuC,YAC1BC,aAAc1C,EAAME,OAAOwC,aAC3BC,eAAgB3C,EAAM4C,cAAcC,cAAcC,gBAClDC,SAAU/C,EAAMgD,QAAQC,QAAQF,YAOER,GAEpC,IAAezC,GAAUzG,EAAAA,EAAAA,IAnIV,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACX2J,gBAAiB,CACf1I,MAAO,OACPwD,UAAW,GACX5D,QAAS,OACTT,gBAAiB,OACjB0E,KAAM,EACN8E,UAAW,8BAEb1E,MAAO,CACLrE,QAAS,OACTgJ,eAAgB,aAChB/I,WAAY,UAEdgJ,WAAY,CACV7H,MAAO,OACPvB,SAAU,GACVC,WAAY,IACZwB,WAAY,GACZ+B,UAAW,GAEb6F,UAAW,CACT1F,UAAW,SAEb2F,KAAM,CACJ7H,WAAY,GACZ8H,KAAMlK,EAAMuE,QAAQC,QAAQC,KAC5B,cAAe,CACbvD,MAAO,MAGXiJ,gBAAiB,CACfrJ,QAAS,OACTgJ,eAAgB,SAChB/I,WAAY,cAgGOhB,EA5FN,SAAC,GAUA,IATlBqB,EASiB,EATjBA,QACA+D,EAQiB,EARjBA,MACAiF,EAOiB,EAPjBA,QACAjB,EAMiB,EANjBA,YACAC,EAKiB,EALjBA,aACAC,EAIiB,EAJjBA,eACAH,EAGiB,EAHjBA,WACAiB,EAEiB,EAFjBA,gBAGA,OADiB,EADjBV,SAEaY,SAAS,cACb,SAAC,EAAA3H,SAAD,KAGP,UAAC,KAAD,CACEjB,WAAS,EACTD,UAAS,UAAKJ,EAAQwI,gBAAb,gBACTU,UAAU,MACVvJ,WAAW,SAJb,WAME,UAAC,KAAD,CACEW,MAAI,EACJC,GAAI,GACJ4I,GAAI,GACJC,GAAIL,EAAkB,EAAI,EAC1B3I,UAAWJ,EAAQ+D,MACnBsF,GAAI,CACFlK,WAAY,CAAC,OAAQ,OAAQ,IAAK,MAPtC,WAUI4I,IACA,gBAAK3H,UAAWJ,EAAQ6I,KAAxB,SACGb,GAAe,SAAC,IAAD,KAAmB,SAAC,IAAD,OAGvC,SAAC,IAAD,CAAY/F,QAAQ,KAAK7B,UAAWJ,EAAQ2I,WAA5C,SACG5E,OAGJgF,IACC,SAAC,KAAD,CACEzI,MAAI,EACJC,GAAI,GACJ4I,GAAI,GACJC,GAAI,EACJhJ,UAAWJ,EAAQ+I,gBACnBM,GAAI,CAAEtG,UAAW,CAAC,OAAQ,OAAQ,IAAK,MANzC,SAQGgG,KAGL,UAAC,KAAD,CACEzI,MAAI,EACJC,GAAI,GACJ4I,GAAI,GACJC,GAAIL,EAAkB,EAAI,EAC1B3I,UAAWJ,EAAQ4I,UALrB,UAOGI,GAAWA,EACXf,GAAkBA,EAAepB,OAAS,IACzC,SAAC,IAAD,CACE/F,MAAM,UACN,aAAW,eACXwI,UAAU,OACVpH,QAAS,WACP4F,KAEFjG,GAAG,wBACHyF,KAAK,QARP,UAUE,SAAC,KAAD","sources":["common/HelpBox.tsx","screens/Console/Common/FormComponents/DateRangeSelector/DateRangeSelector.tsx","screens/Console/Common/FormComponents/DateTimePickerWrapper/DateTimePickerWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PageHeader/PageHeader.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
\n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Button } from \"@mui/material\";\nimport ScheduleIcon from \"@mui/icons-material/Schedule\";\nimport WatchLaterIcon from \"@mui/icons-material/WatchLater\";\nimport { actionsTray, widgetContainerCommon } from \"../common/styleLibrary\";\nimport DateTimePickerWrapper from \"../DateTimePickerWrapper/DateTimePickerWrapper\";\nimport SyncIcon from \"../../../../../icons/SyncIcon\";\n\ninterface IDateRangeSelector {\n classes: any;\n timeStart: any;\n setTimeStart: (date: any) => void;\n timeEnd: any;\n setTimeEnd: (date: any) => void;\n triggerSync?: () => void;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...widgetContainerCommon,\n syncButton: {\n \"&.MuiButton-root .MuiButton-iconSizeMedium > *:first-of-type\": {\n fontSize: 18,\n },\n },\n schedulerIcon: {\n opacity: 0.4,\n fontSize: 10,\n \"& svg\": {\n width: 18,\n height: 18,\n },\n },\n selectorLabel: {\n color: \"#9D9E9D\",\n fontWeight: \"bold\",\n whiteSpace: \"nowrap\",\n marginLeft: 10,\n fontSize: 12,\n },\n });\n\nconst DateRangeSelector = ({\n classes,\n timeStart,\n setTimeStart,\n timeEnd,\n setTimeEnd,\n triggerSync,\n}: IDateRangeSelector) => {\n return (\n \n \n Filter:\n
\n \n \n \n Start Time:\n \n  \n \n \n \n End Time:\n \n
\n {triggerSync && (\n }\n className={classes.syncButton}\n >\n Sync\n \n )}\n
\n
\n );\n};\n\nexport default withStyles(styles)(DateRangeSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Grid, InputLabel, TextField, Tooltip } from \"@mui/material\";\nimport DateTimePicker from \"@mui/lab/DateTimePicker\";\nimport AdapterMoment from \"@mui/lab/AdapterMoment\";\nimport LocalizationProvider from \"@mui/lab/LocalizationProvider\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport ScheduleIcon from \"@mui/icons-material/Schedule\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport OpenListIcon from \"../../../../../icons/OpenListIcon\";\n\ninterface IDateTimePicker {\n value: any;\n onChange: (value: any) => any;\n classes: any;\n forSearchBlock?: boolean;\n forFilterContained?: boolean;\n label?: string;\n required?: boolean;\n tooltip?: string;\n id: string;\n disabled?: boolean;\n noInputIcon?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateSelectorOverride: {\n height: 40,\n border: \"#EAEDEE 1px solid\",\n marginLeft: 15,\n backgroundColor: \"#fff\",\n padding: \"0 16px\",\n borderRadius: 5,\n \"&.MuiInput-underline:hover:not(.Mui-disabled):before\": {\n borderBottom: 0,\n },\n \"&:hover\": {\n borderColor: \"#000\",\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n },\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n \"& input\": {\n fontSize: 12,\n fontWeight: 600,\n color: \"#393939\",\n },\n },\n dateSelectorFilterOverride: {\n width: 180,\n height: 42,\n marginLeft: 20,\n padding: 0,\n borderRadius: 5,\n \"&.MuiInput-underline:hover:not(.Mui-disabled):before\": {\n borderBottom: 0,\n },\n \"&:hover\": {\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n },\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n \"& input\": {\n fontSize: 12,\n fontWeight: \"bold\",\n color: \"#081C42\",\n },\n \"@media (max-width: 900px)\": {\n width: 103,\n },\n },\n dateSelectorFormOverride: {\n width: \"100%\",\n maxWidth: 840,\n },\n parentDateOverride: {\n flexGrow: 1,\n },\n textBoxContainer: {\n flexGrow: 1,\n },\n openListIcon: {\n color: \"#9D9E9D\",\n width: 8,\n marginTop: 2,\n },\n paperOverride: {\n \"& .MuiCalendarPicker-root\": {\n padding: \"0 22px\",\n \"& > div\": {\n padding: 0,\n \"& > div > div.PrivatePickersFadeTransitionGroup-root:first-of-type\":\n {\n color: \"#0A224C\",\n fontWeight: \"bold\",\n },\n \"& > div > div.PrivatePickersFadeTransitionGroup-root:last-of-type\": {\n color: \"#9D9E9D\",\n \"& + button.MuiButtonBase-root\": {\n color: \"#9D9E9D\",\n },\n },\n \"& > div:nth-child(2)\": {\n \"& > div\": {\n width: 0,\n },\n \"& > button.MuiButtonBase-root\": {\n color: \"#0A224C\",\n },\n },\n },\n },\n \"& .MuiTypography-root.MuiTypography-caption\": {\n width: 26,\n height: 26,\n margin: 5,\n color: \"#BCBCBC\",\n fontSize: 10,\n },\n \"& button.MuiPickersDay-root\": {\n fontWeight: \"bold\",\n width: 26,\n height: 26,\n margin: 5,\n textAlign: \"center\",\n \"&.Mui-selected\": {\n backgroundColor: theme.palette.primary.main,\n color: \"#fff\",\n },\n },\n \"& div.MuiPickersDay-hiddenDaySpacingFiller\": {\n width: 26,\n height: 26,\n margin: 5,\n },\n \"& div.PrivatePickersSlideTransition-root\": {\n minHeight: 240,\n },\n \"& div.MuiCalendarPicker-viewTransitionContainer\": {\n borderTop: \"#F0F3F5 1px solid\",\n },\n \"& .MuiClockPicker-arrowSwitcher\": {\n \"& > div\": {\n width: 0,\n },\n \"& > button.MuiButtonBase-root\": {\n color: \"#0A224C\",\n },\n \"& + div > div\": {\n width: 255,\n height: 255,\n backgroundColor: \"#fff\",\n border: \"#F0F3F5 3px solid\",\n \"& > div:nth-child(2)\": {\n backgroundColor: \"#B4B5B4\",\n width: 12,\n height: 12,\n \"&::before\": {\n content: \"' '\",\n width: 35,\n height: 35,\n display: \"block\",\n position: \"absolute\",\n border: \"#F0F3F5 3px solid\",\n top: -12,\n left: -12,\n borderRadius: \"100%\",\n },\n },\n \"& > div:nth-child(3)\": {\n backgroundColor: \"#B4B5B4\",\n width: 4,\n },\n \"& > div:last-of-type\": {\n marginTop: 15,\n \"& > span\": {\n color: \"#0A224C\",\n \"&.Mui-selected\": {\n color: \"#fff\",\n },\n \"&[aria-label='1 hours'], &[aria-label='2 hours'], &[aria-label='3 hours'], &[aria-label='4 hours'], &[aria-label='5 hours'], &[aria-label='6 hours'], &[aria-label='7 hours'], &[aria-label='8 hours'], &[aria-label='9 hours'], &[aria-label='10 hours'], &[aria-label='11 hours'], &[aria-label='12 hours']\":\n {\n fontWeight: \"bold\",\n fontSize: 20,\n marginTop: -1,\n },\n },\n },\n },\n },\n },\n ...fieldBasic,\n ...tooltipHelper,\n });\n\nconst DateTimePickerWrapper = ({\n value,\n onChange,\n classes,\n forSearchBlock = false,\n forFilterContained = false,\n label,\n tooltip = \"\",\n required,\n id,\n disabled = false,\n noInputIcon = false,\n}: IDateTimePicker) => {\n let adornment = {};\n\n if (!noInputIcon) {\n adornment = {\n startAdornment: (\n \n \n \n ),\n };\n }\n\n if (forFilterContained) {\n adornment = {\n endAdornment: (\n \n \n \n ),\n };\n }\n\n let classOverriden = \"\";\n\n if (forSearchBlock) {\n classOverriden = classes.dateSelectorOverride;\n } else if (forFilterContained) {\n classOverriden = classes.dateSelectorFilterOverride;\n }\n\n const inputItem = (\n \n (\n \n )}\n ampm={false}\n PopperProps={{\n className: classes.paperOverride,\n }}\n />\n \n );\n\n if (forSearchBlock) {\n return inputItem;\n }\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n
\n )}\n\n
{inputItem}
\n \n
\n );\n};\n\nexport default withStyles(styles)(DateTimePickerWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
\n {operatorMode ? : }\n
\n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","actionsTray","widgetContainerCommon","syncButton","schedulerIcon","opacity","selectorLabel","color","whiteSpace","marginLeft","timeStart","setTimeStart","timeEnd","setTimeEnd","triggerSync","Fragment","timeContainers","filterTitle","filterContainer","value","onChange","forFilterContained","id","noInputIcon","divisorLine","type","variant","onClick","endIcon","dateSelectorOverride","padding","borderBottom","borderColor","dateSelectorFilterOverride","dateSelectorFormOverride","maxWidth","parentDateOverride","flexGrow","textBoxContainer","openListIcon","marginTop","paperOverride","margin","textAlign","palette","primary","main","minHeight","borderTop","content","position","top","left","fieldBasic","tooltipHelper","forSearchBlock","label","tooltip","required","disabled","adornment","startAdornment","endAdornment","classOverriden","inputItem","dateAdapter","AdapterMoment","InputProps","renderInput","props","ampm","PopperProps","fieldContainer","htmlFor","inputLabel","tooltipContainer","placement","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","customDialogSize","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","useState","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","toggleList","sidebarOpen","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","boxShadow","justifyContent","labelStyle","rightMenu","logo","fill","middleComponent","actions","includes","direction","sm","md","sx","component"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1687.2710a7fa.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/FormComponents/DateRangeSelector/DateRangeSelector.tsx","screens/Console/Common/FormComponents/DateTimePickerWrapper/DateTimePickerWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PageHeader/PageHeader.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
\n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Button } from \"@mui/material\";\nimport ScheduleIcon from \"@mui/icons-material/Schedule\";\nimport WatchLaterIcon from \"@mui/icons-material/WatchLater\";\nimport { actionsTray, widgetContainerCommon } from \"../common/styleLibrary\";\nimport DateTimePickerWrapper from \"../DateTimePickerWrapper/DateTimePickerWrapper\";\nimport SyncIcon from \"../../../../../icons/SyncIcon\";\n\ninterface IDateRangeSelector {\n classes: any;\n timeStart: any;\n setTimeStart: (date: any) => void;\n timeEnd: any;\n setTimeEnd: (date: any) => void;\n triggerSync?: () => void;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...widgetContainerCommon,\n syncButton: {\n \"&.MuiButton-root .MuiButton-iconSizeMedium > *:first-of-type\": {\n fontSize: 18,\n },\n },\n schedulerIcon: {\n opacity: 0.4,\n fontSize: 10,\n \"& svg\": {\n width: 18,\n height: 18,\n },\n },\n selectorLabel: {\n color: \"#9D9E9D\",\n fontWeight: \"bold\",\n whiteSpace: \"nowrap\",\n marginLeft: 10,\n fontSize: 12,\n },\n });\n\nconst DateRangeSelector = ({\n classes,\n timeStart,\n setTimeStart,\n timeEnd,\n setTimeEnd,\n triggerSync,\n}: IDateRangeSelector) => {\n return (\n \n \n Filter:\n
\n \n \n \n Start Time:\n \n  \n \n \n \n End Time:\n \n
\n {triggerSync && (\n }\n className={classes.syncButton}\n >\n Sync\n \n )}\n
\n
\n );\n};\n\nexport default withStyles(styles)(DateRangeSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Grid, InputLabel, TextField, Tooltip } from \"@mui/material\";\nimport DateTimePicker from \"@mui/lab/DateTimePicker\";\nimport AdapterMoment from \"@mui/lab/AdapterMoment\";\nimport LocalizationProvider from \"@mui/lab/LocalizationProvider\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport ScheduleIcon from \"@mui/icons-material/Schedule\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport OpenListIcon from \"../../../../../icons/OpenListIcon\";\n\ninterface IDateTimePicker {\n value: any;\n onChange: (value: any) => any;\n classes: any;\n forSearchBlock?: boolean;\n forFilterContained?: boolean;\n label?: string;\n required?: boolean;\n tooltip?: string;\n id: string;\n disabled?: boolean;\n noInputIcon?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateSelectorOverride: {\n height: 40,\n border: \"#EAEDEE 1px solid\",\n marginLeft: 15,\n backgroundColor: \"#fff\",\n padding: \"0 16px\",\n borderRadius: 5,\n \"&.MuiInput-underline:hover:not(.Mui-disabled):before\": {\n borderBottom: 0,\n },\n \"&:hover\": {\n borderColor: \"#000\",\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n },\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n \"& input\": {\n fontSize: 12,\n fontWeight: 600,\n color: \"#393939\",\n },\n },\n dateSelectorFilterOverride: {\n width: 180,\n height: 42,\n marginLeft: 20,\n padding: 0,\n borderRadius: 5,\n \"&.MuiInput-underline:hover:not(.Mui-disabled):before\": {\n borderBottom: 0,\n },\n \"&:hover\": {\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n },\n \"&:before, &:after\": {\n borderColor: \"transparent\",\n borderBottom: 0,\n },\n \"& input\": {\n fontSize: 12,\n fontWeight: \"bold\",\n color: \"#081C42\",\n },\n \"@media (max-width: 900px)\": {\n width: 103,\n },\n },\n dateSelectorFormOverride: {\n width: \"100%\",\n maxWidth: 840,\n },\n parentDateOverride: {\n flexGrow: 1,\n },\n textBoxContainer: {\n flexGrow: 1,\n },\n openListIcon: {\n color: \"#9D9E9D\",\n width: 8,\n marginTop: 2,\n },\n paperOverride: {\n \"& .MuiCalendarPicker-root\": {\n padding: \"0 22px\",\n \"& > div\": {\n padding: 0,\n \"& > div > div.PrivatePickersFadeTransitionGroup-root:first-of-type\":\n {\n color: \"#0A224C\",\n fontWeight: \"bold\",\n },\n \"& > div > div.PrivatePickersFadeTransitionGroup-root:last-of-type\": {\n color: \"#9D9E9D\",\n \"& + button.MuiButtonBase-root\": {\n color: \"#9D9E9D\",\n },\n },\n \"& > div:nth-child(2)\": {\n \"& > div\": {\n width: 0,\n },\n \"& > button.MuiButtonBase-root\": {\n color: \"#0A224C\",\n },\n },\n },\n },\n \"& .MuiTypography-root.MuiTypography-caption\": {\n width: 26,\n height: 26,\n margin: 5,\n color: \"#BCBCBC\",\n fontSize: 10,\n },\n \"& button.MuiPickersDay-root\": {\n fontWeight: \"bold\",\n width: 26,\n height: 26,\n margin: 5,\n textAlign: \"center\",\n \"&.Mui-selected\": {\n backgroundColor: theme.palette.primary.main,\n color: \"#fff\",\n },\n },\n \"& div.MuiPickersDay-hiddenDaySpacingFiller\": {\n width: 26,\n height: 26,\n margin: 5,\n },\n \"& div.PrivatePickersSlideTransition-root\": {\n minHeight: 240,\n },\n \"& div.MuiCalendarPicker-viewTransitionContainer\": {\n borderTop: \"#F0F3F5 1px solid\",\n },\n \"& .MuiClockPicker-arrowSwitcher\": {\n \"& > div\": {\n width: 0,\n },\n \"& > button.MuiButtonBase-root\": {\n color: \"#0A224C\",\n },\n \"& + div > div\": {\n width: 255,\n height: 255,\n backgroundColor: \"#fff\",\n border: \"#F0F3F5 3px solid\",\n \"& > div:nth-child(2)\": {\n backgroundColor: \"#B4B5B4\",\n width: 12,\n height: 12,\n \"&::before\": {\n content: \"' '\",\n width: 35,\n height: 35,\n display: \"block\",\n position: \"absolute\",\n border: \"#F0F3F5 3px solid\",\n top: -12,\n left: -12,\n borderRadius: \"100%\",\n },\n },\n \"& > div:nth-child(3)\": {\n backgroundColor: \"#B4B5B4\",\n width: 4,\n },\n \"& > div:last-of-type\": {\n marginTop: 15,\n \"& > span\": {\n color: \"#0A224C\",\n \"&.Mui-selected\": {\n color: \"#fff\",\n },\n \"&[aria-label='1 hours'], &[aria-label='2 hours'], &[aria-label='3 hours'], &[aria-label='4 hours'], &[aria-label='5 hours'], &[aria-label='6 hours'], &[aria-label='7 hours'], &[aria-label='8 hours'], &[aria-label='9 hours'], &[aria-label='10 hours'], &[aria-label='11 hours'], &[aria-label='12 hours']\":\n {\n fontWeight: \"bold\",\n fontSize: 20,\n marginTop: -1,\n },\n },\n },\n },\n },\n },\n ...fieldBasic,\n ...tooltipHelper,\n });\n\nconst DateTimePickerWrapper = ({\n value,\n onChange,\n classes,\n forSearchBlock = false,\n forFilterContained = false,\n label,\n tooltip = \"\",\n required,\n id,\n disabled = false,\n noInputIcon = false,\n}: IDateTimePicker) => {\n let adornment = {};\n\n if (!noInputIcon) {\n adornment = {\n startAdornment: (\n \n \n \n ),\n };\n }\n\n if (forFilterContained) {\n adornment = {\n endAdornment: (\n \n \n \n ),\n };\n }\n\n let classOverriden = \"\";\n\n if (forSearchBlock) {\n classOverriden = classes.dateSelectorOverride;\n } else if (forFilterContained) {\n classOverriden = classes.dateSelectorFilterOverride;\n }\n\n const inputItem = (\n \n (\n \n )}\n ampm={false}\n PopperProps={{\n className: classes.paperOverride,\n }}\n />\n \n );\n\n if (forSearchBlock) {\n return inputItem;\n }\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n
\n )}\n\n
{inputItem}
\n \n
\n );\n};\n\nexport default withStyles(styles)(DateTimePickerWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
\n {operatorMode ? : }\n
\n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","actionsTray","widgetContainerCommon","syncButton","schedulerIcon","opacity","selectorLabel","color","whiteSpace","marginLeft","timeStart","setTimeStart","timeEnd","setTimeEnd","triggerSync","Fragment","timeContainers","filterTitle","filterContainer","value","onChange","forFilterContained","id","noInputIcon","divisorLine","type","variant","onClick","endIcon","dateSelectorOverride","padding","borderBottom","borderColor","dateSelectorFilterOverride","dateSelectorFormOverride","maxWidth","parentDateOverride","flexGrow","textBoxContainer","openListIcon","marginTop","paperOverride","margin","textAlign","palette","primary","main","minHeight","borderTop","content","position","top","left","fieldBasic","tooltipHelper","forSearchBlock","label","tooltip","required","disabled","adornment","startAdornment","endAdornment","classOverriden","inputItem","dateAdapter","AdapterMoment","InputProps","renderInput","props","ampm","PopperProps","fieldContainer","htmlFor","inputLabel","tooltipContainer","placement","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","customDialogSize","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","useState","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","toggleList","sidebarOpen","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","boxShadow","justifyContent","labelStyle","rightMenu","logo","fill","middleComponent","actions","includes","direction","sm","md","sx","component"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1829.99ee609f.chunk.js b/portal-ui/build/static/js/1829.bdec7da8.chunk.js similarity index 97% rename from portal-ui/build/static/js/1829.99ee609f.chunk.js rename to portal-ui/build/static/js/1829.bdec7da8.chunk.js index 1e26d9f1d..50983b132 100644 --- a/portal-ui/build/static/js/1829.99ee609f.chunk.js +++ b/portal-ui/build/static/js/1829.bdec7da8.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1829],{23804:function(e,n,t){t(72791);var a=t(11135),i=t(25787),s=t(61889),r=t(80184);n.Z=(0,i.Z)((function(e){return(0,a.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,a=e.title,i=e.help;return(0,r.jsx)("div",{className:n.root,children:(0,r.jsxs)(s.ZP,{container:!0,children:[(0,r.jsxs)(s.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,a]}),(0,r.jsx)(s.ZP,{item:!0,xs:12,className:n.helpText,children:i})]})})}))},47986:function(e,n,t){t(72791);var a=t(61889),i=t(64554),s=t(23804),r=t(80184);n.Z=function(e){var n=e.iconComponent,t=e.entity;return(0,r.jsx)(a.ZP,{container:!0,alignItems:"center",children:(0,r.jsx)(a.ZP,{item:!0,xs:12,children:(0,r.jsx)(s.Z,{title:"".concat(t," not available"),iconComponent:n,help:(0,r.jsxs)(i.Z,{sx:{fontSize:"14px",display:"flex",border:"none",flexFlow:{xs:"column",md:"row"},"& a":{color:function(e){return e.colors.link},textDecoration:"underline"}},children:[(0,r.jsx)("div",{children:"This feature is not available for a single-disk setup. "}),(0,r.jsxs)("div",{children:["Please deploy a server in"," ",(0,r.jsx)("a",{href:"https://docs.min.io/minio/baremetal/installation/deploy-minio-distributed.html?ref=con",target:"_blank",rel:"noreferrer",children:"Distributed Mode"})," ","to use this feature."]})]})})})})}},34866:function(e,n,t){var a=t(1413),i=t(72791),s=t(61889),r=t(94454),o=t(30829),c=t(20068),l=t(11135),d=t(25787),u=t(23814),f=t(84570),m=t(80184);n.Z=(0,d.Z)((function(e){return(0,l.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},u.YI),u.Hr),u.lM),{},{fieldContainer:(0,a.Z)((0,a.Z)({},u.YI.fieldContainer),{},{display:"flex",justifyContent:"flex-start",alignItems:"center",margin:"15px 0",marginBottom:0,flexBasis:"initial"}),noTopMargin:{marginTop:0}}))}))((function(e){var n=e.label,t=e.onChange,a=e.value,l=e.id,d=e.name,u=e.checked,h=void 0!==u&&u,x=e.disabled,p=void 0!==x&&x,g=e.noTopMargin,b=void 0!==g&&g,j=e.tooltip,Z=void 0===j?"":j,v=e.overrideLabelClasses,S=void 0===v?"":v,C=e.classes;return(0,m.jsx)(i.Fragment,{children:(0,m.jsxs)(s.ZP,{item:!0,xs:12,className:"".concat(C.fieldContainer," ").concat(b?C.noTopMargin:""),children:[(0,m.jsx)("div",{children:(0,m.jsx)(r.Z,{name:d,id:l,value:a,color:"primary",inputProps:{"aria-label":"secondary checkbox"},checked:h,onChange:t,checkedIcon:(0,m.jsx)("span",{className:C.checkedIcon}),icon:(0,m.jsx)("span",{className:C.unCheckedIcon}),disabled:p})}),""!==n&&(0,m.jsxs)(o.Z,{htmlFor:l,className:"".concat(C.noMinWidthLabel," ").concat(S),children:[(0,m.jsx)("span",{children:n}),""!==Z&&(0,m.jsx)("div",{className:C.tooltipContainer,children:(0,m.jsx)(c.Z,{title:Z,placement:"top-start",children:(0,m.jsx)("div",{className:C.tooltip,children:(0,m.jsx)(f.Z,{})})})})]})]})})}))},74794:function(e,n,t){var a=t(1413),i=(t(72791),t(61889)),s=t(11135),r=t(25787),o=t(23814),c=t(80184);n.Z=(0,r.Z)((function(e){return(0,s.Z)((0,a.Z)({},o.Bw))}))((function(e){var n=e.classes,t=e.className,a=void 0===t?"":t,s=e.children;return(0,c.jsx)("div",{className:n.contentSpacer,children:(0,c.jsx)(i.ZP,{container:!0,children:(0,c.jsx)(i.ZP,{item:!0,xs:12,className:a,children:s})})})}))},32291:function(e,n,t){var a=t(72791),i=t(60364),s=t(61889),r=t(11135),o=t(25787),c=t(20890),l=t(13400),d=t(95466),u=t(84683),f=t(3925),m=t(74833),h=t(80184),x={toggleList:f.kQ},p=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),x);n.Z=p((0,o.Z)((function(e){return(0,r.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,i=e.actions,r=e.sidebarOpen,o=e.operatorMode,f=e.managerObjects,x=e.toggleList,p=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(a.Fragment,{}):(0,h.jsxs)(s.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(s.ZP,{item:!0,xs:12,sm:12,md:p?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!r&&(0,h.jsx)("div",{className:n.logo,children:o?(0,h.jsx)(d.Z,{}):(0,h.jsx)(u.Z,{})}),(0,h.jsx)(c.Z,{variant:"h4",className:n.labelStyle,children:t})]}),p&&(0,h.jsx)(s.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:p}),(0,h.jsxs)(s.ZP,{item:!0,xs:12,sm:12,md:p?3:6,className:n.rightMenu,children:[i&&i,f&&f.length>0&&(0,h.jsx)(l.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){x()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(m.gx,{})})]})]})})))},61829:function(e,n,t){t.r(n);var a=t(70885),i=t(1413),s=t(72791),r=t(60364),o=t(28353),c=t(4834),l=t(61889),d=t(68096),u=t(58406),f=t(23786),m=t(27391),h=t(36151),x=t(95087),p=t(11135),g=t(25787),b=t(26824),j=t(45248),Z=t(23814),v=t(56087),S=t(74833),C=t(34866),k=t(32291),y=t(81207),N=t(74794),w=t(38442),P=t(47986),H=t(80184),I=(0,g.Z)((function(e){return(0,p.Z)({root:{lineHeight:"50px",marginRight:15,"label + &":{marginTop:e.spacing(3)},"& .MuiSelect-select:focus":{backgroundColor:"transparent"}},input:{height:50,fontSize:13,lineHeight:"50px"}})}))(c.ZP),T=(0,r.$j)((function(e){return{distributedSetup:e.system.distributedSetup}}),null);n.default=T((0,g.Z)((function(e){return(0,p.Z)((0,i.Z)((0,i.Z)((0,i.Z)({graphContainer:{backgroundColor:"#fff",border:"#EAEDEE 1px solid",borderRadius:3,padding:"19px 38px",marginTop:15},scanInfo:{marginTop:20,display:"flex",flexDirection:"row",justifyContent:"space-between"},scanData:{fontSize:13},formBox:{padding:15,border:"1px solid #EAEAEA"},buttonBar:{display:"flex",alignItems:"center",justifyContent:"flex-end"},bucketField:{flex:1},prefixField:(0,i.Z)((0,i.Z)({},Z.qg.searchField),{},{marginLeft:10,flex:1}),actionsTray:(0,i.Z)((0,i.Z)({},Z.OR.actionsTray),{},{marginBottom:0})},Z.IX),Z.qg),(0,Z.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.distributedSetup,i=(0,s.useState)(!1),r=(0,a.Z)(i,2),c=r[0],p=r[1],g=(0,s.useState)(""),Z=(0,a.Z)(g,2),T=Z[0],E=Z[1],B=(0,s.useState)([]),F=(0,a.Z)(B,2),M=F[0],D=F[1],z=(0,s.useState)(""),R=(0,a.Z)(z,2),L=R[0],A=R[1],O=(0,s.useState)(!1),G=(0,a.Z)(O,2),W=G[0],Y=G[1],_=(0,s.useState)(!1),q=(0,a.Z)(_,2),U=q[0],$=q[1],J=(0,s.useState)(!1),Q=(0,a.Z)(J,2),V=Q[0],X=Q[1],K=(0,s.useState)({beforeHeal:[0,0,0,0],afterHeal:[0,0,0,0],objectsHealed:0,objectsScanned:0,healDuration:0,sizeScanned:""}),ee=(0,a.Z)(K,2),ne=ee[0],te=ee[1];(0,s.useEffect)((function(){y.Z.invoke("GET","/api/v1/buckets").then((function(e){var n=[];null!==e.buckets&&(n=e.buckets),D(n)})).catch((function(e){console.log(e)}))}),[]),(0,s.useEffect)((function(){!0===U&&X(!1)}),[U]),(0,s.useEffect)((function(){!0===V&&$(!1)}),[V]);var ae=function(e){return[e.Green,e.Yellow,e.Red,e.Grey]};(0,s.useEffect)((function(){if(c){var e={Green:0,Yellow:0,Red:0,Grey:0},n={Green:0,Yellow:0,Red:0,Grey:0},t=new URL(window.location.toString()),i=t.port,s=(0,b.x2)(t.protocol),r=new x.w3cwebsocket("".concat(s,"://").concat(t.hostname,":").concat(i,"/ws/heal/").concat(T,"?prefix=").concat(L,"&recursive=").concat(W,"&force-start=").concat(U,"&force-stop=").concat(V));if(null!==r)return r.onopen=function(){console.log("WebSocket Client Connected"),r.send("ok")},r.onmessage=function(t){for(var i=JSON.parse(t.data.toString()),s=0,r=Object.entries(i.healthAfterCols);s0&&(0,h.jsx)(l.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){x()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(m.gx,{})})]})]})})))},61829:function(e,n,t){t.r(n);var a=t(70885),i=t(1413),s=t(72791),r=t(60364),o=t(28353),c=t(4834),l=t(61889),d=t(68096),u=t(58406),f=t(23786),m=t(27391),h=t(36151),x=t(95087),p=t(11135),g=t(25787),b=t(26824),j=t(45248),Z=t(23814),v=t(56087),S=t(13048),C=t(34866),k=t(32291),y=t(81207),N=t(74794),w=t(38442),P=t(47986),H=t(80184),I=(0,g.Z)((function(e){return(0,p.Z)({root:{lineHeight:"50px",marginRight:15,"label + &":{marginTop:e.spacing(3)},"& .MuiSelect-select:focus":{backgroundColor:"transparent"}},input:{height:50,fontSize:13,lineHeight:"50px"}})}))(c.ZP),T=(0,r.$j)((function(e){return{distributedSetup:e.system.distributedSetup}}),null);n.default=T((0,g.Z)((function(e){return(0,p.Z)((0,i.Z)((0,i.Z)((0,i.Z)({graphContainer:{backgroundColor:"#fff",border:"#EAEDEE 1px solid",borderRadius:3,padding:"19px 38px",marginTop:15},scanInfo:{marginTop:20,display:"flex",flexDirection:"row",justifyContent:"space-between"},scanData:{fontSize:13},formBox:{padding:15,border:"1px solid #EAEAEA"},buttonBar:{display:"flex",alignItems:"center",justifyContent:"flex-end"},bucketField:{flex:1},prefixField:(0,i.Z)((0,i.Z)({},Z.qg.searchField),{},{marginLeft:10,flex:1}),actionsTray:(0,i.Z)((0,i.Z)({},Z.OR.actionsTray),{},{marginBottom:0})},Z.IX),Z.qg),(0,Z.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.distributedSetup,i=(0,s.useState)(!1),r=(0,a.Z)(i,2),c=r[0],p=r[1],g=(0,s.useState)(""),Z=(0,a.Z)(g,2),T=Z[0],E=Z[1],B=(0,s.useState)([]),F=(0,a.Z)(B,2),M=F[0],D=F[1],z=(0,s.useState)(""),R=(0,a.Z)(z,2),L=R[0],A=R[1],O=(0,s.useState)(!1),G=(0,a.Z)(O,2),W=G[0],Y=G[1],_=(0,s.useState)(!1),q=(0,a.Z)(_,2),U=q[0],$=q[1],J=(0,s.useState)(!1),Q=(0,a.Z)(J,2),V=Q[0],X=Q[1],K=(0,s.useState)({beforeHeal:[0,0,0,0],afterHeal:[0,0,0,0],objectsHealed:0,objectsScanned:0,healDuration:0,sizeScanned:""}),ee=(0,a.Z)(K,2),ne=ee[0],te=ee[1];(0,s.useEffect)((function(){y.Z.invoke("GET","/api/v1/buckets").then((function(e){var n=[];null!==e.buckets&&(n=e.buckets),D(n)})).catch((function(e){console.log(e)}))}),[]),(0,s.useEffect)((function(){!0===U&&X(!1)}),[U]),(0,s.useEffect)((function(){!0===V&&$(!1)}),[V]);var ae=function(e){return[e.Green,e.Yellow,e.Red,e.Grey]};(0,s.useEffect)((function(){if(c){var e={Green:0,Yellow:0,Red:0,Grey:0},n={Green:0,Yellow:0,Red:0,Grey:0},t=new URL(window.location.toString()),i=t.port,s=(0,b.x2)(t.protocol),r=new x.w3cwebsocket("".concat(s,"://").concat(t.hostname,":").concat(i,"/ws/heal/").concat(T,"?prefix=").concat(L,"&recursive=").concat(W,"&force-start=").concat(U,"&force-stop=").concat(V));if(null!==r)return r.onopen=function(){console.log("WebSocket Client Connected"),r.send("ok")},r.onmessage=function(t){for(var i=JSON.parse(t.data.toString()),s=0,r=Object.entries(i.healthAfterCols);s.\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
\n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box, Grid } from \"@mui/material\";\nimport HelpBox from \"../../../../common/HelpBox\";\n\ninterface IDistributedOnly {\n iconComponent: any;\n entity: string;\n}\n\nconst DistributedOnly = ({ iconComponent, entity }: IDistributedOnly) => {\n return (\n \n \n theme.colors.link,\n textDecoration: \"underline\",\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 .\nimport React from \"react\";\nimport { Checkbox, Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n checkboxIcons,\n fieldBasic,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\n\ninterface CheckBoxProps {\n label: string;\n classes: any;\n onChange: (e: React.ChangeEvent) => void;\n value: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n overrideLabelClasses?: string;\n index?: number;\n noTopMargin?: boolean;\n checked: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n ...checkboxIcons,\n fieldContainer: {\n ...fieldBasic.fieldContainer,\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n margin: \"15px 0\",\n marginBottom: 0,\n flexBasis: \"initial\",\n },\n noTopMargin: {\n marginTop: 0,\n },\n });\n\nconst CheckboxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n checked = false,\n disabled = false,\n noTopMargin = false,\n tooltip = \"\",\n overrideLabelClasses = \"\",\n classes,\n}: CheckBoxProps) => {\n return (\n \n \n
\n }\n icon={}\n disabled={disabled}\n />\n
\n {label !== \"\" && (\n \n {label}\n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n \n )}\n \n
\n );\n};\n\nexport default withStyles(styles)(CheckboxWrapper);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
\n \n \n {children}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
\n {operatorMode ? : }\n
\n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { HorizontalBar } from \"react-chartjs-2\";\nimport {\n Button,\n FormControl,\n Grid,\n InputBase,\n MenuItem,\n Select,\n TextField,\n} from \"@mui/material\";\nimport { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { wsProtocol } from \"../../../utils/wsUtils\";\nimport { Bucket, BucketList } from \"../Watch/types\";\nimport { colorH, HealStatus } from \"./types\";\nimport { niceBytes } from \"../../../common/utils\";\nimport {\n actionsTray,\n containerForHeader,\n inlineCheckboxes,\n searchField,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport { AppState } from \"../../../store\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { HealIcon } from \"../../../icons\";\nimport CheckboxWrapper from \"../Common/FormComponents/CheckboxWrapper/CheckboxWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport api from \"../../../common/api\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport { SecureComponent } from \"../../../common/SecureComponent\";\nimport DistributedOnly from \"../Common/DistributedOnly/DistributedOnly\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n graphContainer: {\n backgroundColor: \"#fff\",\n border: \"#EAEDEE 1px solid\",\n borderRadius: 3,\n padding: \"19px 38px\",\n marginTop: 15,\n },\n scanInfo: {\n marginTop: 20,\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n },\n scanData: {\n fontSize: 13,\n },\n formBox: {\n padding: 15,\n border: \"1px solid #EAEAEA\",\n },\n buttonBar: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n },\n bucketField: {\n flex: 1,\n },\n prefixField: {\n ...searchField.searchField,\n marginLeft: 10,\n flex: 1,\n },\n actionsTray: {\n ...actionsTray.actionsTray,\n marginBottom: 0,\n },\n ...inlineCheckboxes,\n ...searchField,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IHeal {\n classes: any;\n distributedSetup: boolean;\n}\n\nconst SelectStyled = withStyles((theme: Theme) =>\n createStyles({\n root: {\n lineHeight: \"50px\",\n marginRight: 15,\n \"label + &\": {\n marginTop: theme.spacing(3),\n },\n \"& .MuiSelect-select:focus\": {\n backgroundColor: \"transparent\",\n },\n },\n input: {\n height: 50,\n fontSize: 13,\n lineHeight: \"50px\",\n },\n })\n)(InputBase);\n\nconst Heal = ({ classes, distributedSetup }: IHeal) => {\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\n .invoke(\"GET\", `/api/v1/buckets`)\n .then((res: BucketList) => {\n let buckets: Bucket[] = [];\n if (res.buckets !== null) {\n buckets = res.buckets;\n }\n setBucketList(buckets);\n })\n .catch((err: ErrorResponseHandler) => {\n console.log(err);\n });\n };\n\n useEffect(() => {\n fetchBucketList();\n }, []);\n\n // forceStart and forceStop need to be mutually exclusive\n useEffect(() => {\n if (forceStart === true) {\n setForceStop(false);\n }\n }, [forceStart]);\n\n useEffect(() => {\n if (forceStop === true) {\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 const wsProt = wsProtocol(url.protocol);\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}/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 labels: [\"Green\", \"Yellow\", \"Red\", \"Grey\"],\n datasets: [\n {\n label: \"After Healing\",\n data: hStatus.afterHeal,\n backgroundColor: \"rgba(0, 0, 255, 0.2)\",\n borderColor: \"rgba(54, 162, 235, 1)\",\n borderWidth: 1,\n },\n {\n label: \"Before Healing\",\n data: hStatus.beforeHeal,\n backgroundColor: \"rgba(153, 102, 255, 0.2)\",\n borderColor: \"rgba(153, 102, 255, 1)\",\n borderWidth: 1,\n },\n ],\n };\n const bucketNames = bucketList.map((bucketName) => ({\n label: bucketName.name,\n value: bucketName.name,\n }));\n\n return (\n \n \n \n {!distributedSetup ? (\n } />\n ) : (\n \n \n \n \n {\n setBucketName(e.target.value as string);\n }}\n className={classes.searchField}\n input={}\n displayEmpty\n >\n \n Select Bucket\n \n {bucketNames.map((option) => (\n \n {option.label}\n \n ))}\n \n \n {\n setPrefix(e.target.value);\n }}\n variant=\"standard\"\n />\n \n \n {\n setRecursive(e.target.checked);\n }}\n disabled={false}\n label=\"Recursive\"\n />\n {\n setForceStart(e.target.checked);\n }}\n disabled={false}\n label=\"Force Start\"\n />\n {\n setForceStop(e.target.checked);\n }}\n disabled={false}\n label=\"Force Stop\"\n />\n \n \n setStart(true)}\n >\n Start\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\nconst mapState = (state: AppState) => ({\n distributedSetup: state.system.distributedSetup,\n});\n\nconst connector = connect(mapState, null);\n\nexport default connector(withStyles(styles)(Heal));\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseNormalClosure = 1000;\nexport const WSCloseCloseGoingAway = 1001;\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","entity","sx","flexFlow","md","color","colors","link","textDecoration","href","target","rel","fieldBasic","tooltipHelper","checkboxIcons","fieldContainer","justifyContent","margin","flexBasis","noTopMargin","marginTop","label","onChange","value","id","name","checked","disabled","tooltip","overrideLabelClasses","inputProps","checkedIcon","icon","unCheckedIcon","htmlFor","noMinWidthLabel","tooltipContainer","placement","pageContentStyles","children","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","labelStyle","marginLeft","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","actions","includes","Fragment","direction","sm","variant","length","component","onClick","size","SelectStyled","lineHeight","spacing","input","InputBase","distributedSetup","graphContainer","padding","scanInfo","flexDirection","scanData","formBox","buttonBar","bucketField","flex","prefixField","searchField","actionsTray","inlineCheckboxes","containerForHeader","useState","start","setStart","bucketName","setBucketName","bucketList","setBucketList","prefix","setPrefix","recursive","setRecursive","forceStart","setForceStart","forceStop","setForceStop","beforeHeal","afterHeal","objectsHealed","objectsScanned","healDuration","sizeScanned","hStatus","setHStatus","useEffect","api","then","res","buckets","catch","err","log","colorHealthArr","Green","Yellow","Red","Grey","cB","cA","url","URL","window","location","toString","port","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","onopen","send","onmessage","message","m","JSON","parse","data","Object","entries","healthAfterCols","key","itemsScanned","healthBeforeCols","niceBytes","bytesScanned","onclose","close","labels","datasets","borderColor","borderWidth","bucketNames","map","scopes","IAM_SCOPES","resource","CONSOLE_UI_RESOURCE","e","displayEmpty","option","InputProps","disableUnderline","type","options","text","legend","position","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1829.bdec7da8.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/DistributedOnly/DistributedOnly.tsx","screens/Console/Common/FormComponents/CheckboxWrapper/CheckboxWrapper.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Heal/Heal.tsx","utils/wsUtils.ts"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
\n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box, Grid } from \"@mui/material\";\nimport HelpBox from \"../../../../common/HelpBox\";\n\ninterface IDistributedOnly {\n iconComponent: any;\n entity: string;\n}\n\nconst DistributedOnly = ({ iconComponent, entity }: IDistributedOnly) => {\n return (\n \n \n theme.colors.link,\n textDecoration: \"underline\",\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 .\nimport React from \"react\";\nimport { Checkbox, Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n checkboxIcons,\n fieldBasic,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\n\ninterface CheckBoxProps {\n label: string;\n classes: any;\n onChange: (e: React.ChangeEvent) => void;\n value: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n overrideLabelClasses?: string;\n index?: number;\n noTopMargin?: boolean;\n checked: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n ...checkboxIcons,\n fieldContainer: {\n ...fieldBasic.fieldContainer,\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n margin: \"15px 0\",\n marginBottom: 0,\n flexBasis: \"initial\",\n },\n noTopMargin: {\n marginTop: 0,\n },\n });\n\nconst CheckboxWrapper = ({\n label,\n onChange,\n value,\n id,\n name,\n checked = false,\n disabled = false,\n noTopMargin = false,\n tooltip = \"\",\n overrideLabelClasses = \"\",\n classes,\n}: CheckBoxProps) => {\n return (\n \n \n
\n }\n icon={}\n disabled={disabled}\n />\n
\n {label !== \"\" && (\n \n {label}\n {tooltip !== \"\" && (\n
\n \n
\n \n
\n
\n
\n )}\n \n )}\n \n
\n );\n};\n\nexport default withStyles(styles)(CheckboxWrapper);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
\n \n \n {children}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
\n {operatorMode ? : }\n
\n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { HorizontalBar } from \"react-chartjs-2\";\nimport {\n Button,\n FormControl,\n Grid,\n InputBase,\n MenuItem,\n Select,\n TextField,\n} from \"@mui/material\";\nimport { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { wsProtocol } from \"../../../utils/wsUtils\";\nimport { Bucket, BucketList } from \"../Watch/types\";\nimport { colorH, HealStatus } from \"./types\";\nimport { niceBytes } from \"../../../common/utils\";\nimport {\n actionsTray,\n containerForHeader,\n inlineCheckboxes,\n searchField,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport { AppState } from \"../../../store\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { HealIcon } from \"../../../icons\";\nimport CheckboxWrapper from \"../Common/FormComponents/CheckboxWrapper/CheckboxWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport api from \"../../../common/api\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport { SecureComponent } from \"../../../common/SecureComponent\";\nimport DistributedOnly from \"../Common/DistributedOnly/DistributedOnly\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n graphContainer: {\n backgroundColor: \"#fff\",\n border: \"#EAEDEE 1px solid\",\n borderRadius: 3,\n padding: \"19px 38px\",\n marginTop: 15,\n },\n scanInfo: {\n marginTop: 20,\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n },\n scanData: {\n fontSize: 13,\n },\n formBox: {\n padding: 15,\n border: \"1px solid #EAEAEA\",\n },\n buttonBar: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n },\n bucketField: {\n flex: 1,\n },\n prefixField: {\n ...searchField.searchField,\n marginLeft: 10,\n flex: 1,\n },\n actionsTray: {\n ...actionsTray.actionsTray,\n marginBottom: 0,\n },\n ...inlineCheckboxes,\n ...searchField,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IHeal {\n classes: any;\n distributedSetup: boolean;\n}\n\nconst SelectStyled = withStyles((theme: Theme) =>\n createStyles({\n root: {\n lineHeight: \"50px\",\n marginRight: 15,\n \"label + &\": {\n marginTop: theme.spacing(3),\n },\n \"& .MuiSelect-select:focus\": {\n backgroundColor: \"transparent\",\n },\n },\n input: {\n height: 50,\n fontSize: 13,\n lineHeight: \"50px\",\n },\n })\n)(InputBase);\n\nconst Heal = ({ classes, distributedSetup }: IHeal) => {\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\n .invoke(\"GET\", `/api/v1/buckets`)\n .then((res: BucketList) => {\n let buckets: Bucket[] = [];\n if (res.buckets !== null) {\n buckets = res.buckets;\n }\n setBucketList(buckets);\n })\n .catch((err: ErrorResponseHandler) => {\n console.log(err);\n });\n };\n\n useEffect(() => {\n fetchBucketList();\n }, []);\n\n // forceStart and forceStop need to be mutually exclusive\n useEffect(() => {\n if (forceStart === true) {\n setForceStop(false);\n }\n }, [forceStart]);\n\n useEffect(() => {\n if (forceStop === true) {\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 const wsProt = wsProtocol(url.protocol);\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}/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 labels: [\"Green\", \"Yellow\", \"Red\", \"Grey\"],\n datasets: [\n {\n label: \"After Healing\",\n data: hStatus.afterHeal,\n backgroundColor: \"rgba(0, 0, 255, 0.2)\",\n borderColor: \"rgba(54, 162, 235, 1)\",\n borderWidth: 1,\n },\n {\n label: \"Before Healing\",\n data: hStatus.beforeHeal,\n backgroundColor: \"rgba(153, 102, 255, 0.2)\",\n borderColor: \"rgba(153, 102, 255, 1)\",\n borderWidth: 1,\n },\n ],\n };\n const bucketNames = bucketList.map((bucketName) => ({\n label: bucketName.name,\n value: bucketName.name,\n }));\n\n return (\n \n \n \n {!distributedSetup ? (\n } />\n ) : (\n \n \n \n \n {\n setBucketName(e.target.value as string);\n }}\n className={classes.searchField}\n input={}\n displayEmpty\n >\n \n Select Bucket\n \n {bucketNames.map((option) => (\n \n {option.label}\n \n ))}\n \n \n {\n setPrefix(e.target.value);\n }}\n variant=\"standard\"\n />\n \n \n {\n setRecursive(e.target.checked);\n }}\n disabled={false}\n label=\"Recursive\"\n />\n {\n setForceStart(e.target.checked);\n }}\n disabled={false}\n label=\"Force Start\"\n />\n {\n setForceStop(e.target.checked);\n }}\n disabled={false}\n label=\"Force Stop\"\n />\n \n \n setStart(true)}\n >\n Start\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\nconst mapState = (state: AppState) => ({\n distributedSetup: state.system.distributedSetup,\n});\n\nconst connector = connect(mapState, null);\n\nexport default connector(withStyles(styles)(Heal));\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseNormalClosure = 1000;\nexport const WSCloseCloseGoingAway = 1001;\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","entity","sx","flexFlow","md","color","colors","link","textDecoration","href","target","rel","fieldBasic","tooltipHelper","checkboxIcons","fieldContainer","justifyContent","margin","flexBasis","noTopMargin","marginTop","label","onChange","value","id","name","checked","disabled","tooltip","overrideLabelClasses","inputProps","checkedIcon","icon","unCheckedIcon","htmlFor","noMinWidthLabel","tooltipContainer","placement","pageContentStyles","children","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","labelStyle","marginLeft","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","actions","includes","Fragment","direction","sm","variant","length","component","onClick","size","SelectStyled","lineHeight","spacing","input","InputBase","distributedSetup","graphContainer","padding","scanInfo","flexDirection","scanData","formBox","buttonBar","bucketField","flex","prefixField","searchField","actionsTray","inlineCheckboxes","containerForHeader","useState","start","setStart","bucketName","setBucketName","bucketList","setBucketList","prefix","setPrefix","recursive","setRecursive","forceStart","setForceStart","forceStop","setForceStop","beforeHeal","afterHeal","objectsHealed","objectsScanned","healDuration","sizeScanned","hStatus","setHStatus","useEffect","api","then","res","buckets","catch","err","log","colorHealthArr","Green","Yellow","Red","Grey","cB","cA","url","URL","window","location","toString","port","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","onopen","send","onmessage","message","m","JSON","parse","data","Object","entries","healthAfterCols","key","itemsScanned","healthBeforeCols","niceBytes","bytesScanned","onclose","close","labels","datasets","borderColor","borderWidth","bucketNames","map","scopes","IAM_SCOPES","resource","CONSOLE_UI_RESOURCE","e","displayEmpty","option","InputProps","disableUnderline","type","options","text","legend","position","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1836.ea648525.chunk.js b/portal-ui/build/static/js/1836.6c654dc4.chunk.js similarity index 99% rename from portal-ui/build/static/js/1836.ea648525.chunk.js rename to portal-ui/build/static/js/1836.6c654dc4.chunk.js index 0d44e747e..9df0146c8 100644 --- a/portal-ui/build/static/js/1836.ea648525.chunk.js +++ b/portal-ui/build/static/js/1836.6c654dc4.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1836],{74794:function(e,o,t){var i=t(1413),r=(t(72791),t(61889)),n=t(11135),a=t(25787),s=t(23814),c=t(80184);o.Z=(0,a.Z)((function(e){return(0,n.Z)((0,i.Z)({},s.Bw))}))((function(e){var o=e.classes,t=e.className,i=void 0===t?"":t,n=e.children;return(0,c.jsx)("div",{className:o.contentSpacer,children:(0,c.jsx)(r.ZP,{container:!0,children:(0,c.jsx)(r.ZP,{item:!0,xs:12,className:i,children:n})})})}))},56028:function(e,o,t){var i=t(70885),r=t(1413),n=t(72791),a=t(60364),s=t(13400),c=t(55646),l=t(5574),d=t(65661),h=t(39157),p=t(11135),u=t(25787),f=t(23814),m=t(42649),g=t(29823),y=t(28057),x=t(80184),b=(0,a.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:m.MK});o.Z=(0,u.Z)((function(e){return(0,p.Z)((0,r.Z)((0,r.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(b((function(e){var o=e.onClose,t=e.modalOpen,a=e.title,p=e.children,u=e.classes,f=e.wideLimit,m=void 0===f||f,b=e.modalSnackMessage,w=e.noContentPadding,v=e.setModalSnackMessage,j=e.titleIcon,k=void 0===j?null:j,L=(0,n.useState)(!1),S=(0,i.Z)(L,2),N=S[0],T=S[1];(0,n.useEffect)((function(){v("")}),[v]),(0,n.useEffect)((function(){if(b){if(""===b.message)return void T(!1);"error"!==b.type&&T(!0)}}),[b]);var A=m?{classes:{paper:u.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},I="";return b&&(I=b.detailedErrorMsg,(""===b.detailedErrorMsg||b.detailedErrorMsg.length<5)&&(I=b.message)),(0,x.jsxs)(l.Z,(0,r.Z)((0,r.Z)({open:t,classes:u},A),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&o()},className:u.root,children:[(0,x.jsxs)(d.Z,{className:u.title,children:[(0,x.jsxs)("div",{className:u.titleText,children:[k," ",a]}),(0,x.jsx)("div",{className:u.closeContainer,children:(0,x.jsx)(s.Z,{"aria-label":"close",id:"close",className:u.closeButton,onClick:o,disableRipple:!0,size:"small",children:(0,x.jsx)(g.Z,{})})})]}),(0,x.jsx)(y.Z,{isModal:!0}),(0,x.jsx)(c.Z,{open:N,className:u.snackBarModal,onClose:function(){T(!1),v("")},message:I,ContentProps:{className:"".concat(u.snackBar," ").concat(b&&"error"===b.type?u.errorSnackBar:"")},autoHideDuration:b&&"error"===b.type?1e4:5e3}),(0,x.jsx)(h.Z,{className:w?"":u.content,children:p})]}))})))},32291:function(e,o,t){var i=t(72791),r=t(60364),n=t(61889),a=t(11135),s=t(25787),c=t(20890),l=t(13400),d=t(95466),h=t(84683),p=t(3925),u=t(74833),f=t(80184),m={toggleList:p.kQ},g=(0,r.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),m);o.Z=g((0,s.Z)((function(e){return(0,a.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var o=e.classes,t=e.label,r=e.actions,a=e.sidebarOpen,s=e.operatorMode,p=e.managerObjects,m=e.toggleList,g=e.middleComponent;return e.features.includes("hide-menu")?(0,f.jsx)(i.Fragment,{}):(0,f.jsxs)(n.ZP,{container:!0,className:"".concat(o.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,f.jsxs)(n.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:o.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,f.jsx)("div",{className:o.logo,children:s?(0,f.jsx)(d.Z,{}):(0,f.jsx)(h.Z,{})}),(0,f.jsx)(c.Z,{variant:"h4",className:o.labelStyle,children:t})]}),g&&(0,f.jsx)(n.ZP,{item:!0,xs:12,sm:12,md:6,className:o.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:g}),(0,f.jsxs)(n.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:o.rightMenu,children:[r&&r,p&&p.length>0&&(0,f.jsx)(l.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){m()},id:"object-manager-toggle",size:"large",children:(0,f.jsx)(u.gx,{})})]})]})})))},81836:function(e,o,t){t.r(o),t.d(o,{default:function(){return _}});var i=t(70885),r=t(1413),n=t(72791),a=t(60364),s=t(11135),c=t(25787),l=t(40986),d=t(64554),h=t(28182),p=t(61889),u=t(36151),f=t(20890),m=t(23814),g=t(32291),y=t(56028),x=t(80184),b=(0,c.Z)((function(e){return(0,s.Z)((0,r.Z)({pageTitle:{fontSize:18,marginBottom:20,textAlign:"center"},pageSubTitle:{textAlign:"center"}},(0,m.Bz)(e.spacing(4))))}))((function(e){var o=e.classes,t=e.open,i=e.closeModal;return t?(0,x.jsxs)(y.Z,{title:"",modalOpen:t,onClose:function(){i()},"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[" ",(0,x.jsxs)(p.ZP,{container:!0,alignItems:"center",item:!0,xs:12,children:[(0,x.jsxs)(p.ZP,{item:!0,xs:12,children:[(0,x.jsx)(f.Z,{component:"h2",variant:"h6",className:o.pageTitle,children:"GNU AFFERO GENERAL PUBLIC LICENSE"}),(0,x.jsx)("p",{className:o.pageSubTitle,children:"Version 3, 19 November 2007"})]}),(0,x.jsxs)(p.ZP,{item:!0,className:o.subnetLicenseKey,xs:12,children:[(0,x.jsxs)("p",{children:["Copyright \xa9 2007 Free Software Foundation, Inc. <",(0,x.jsx)("a",{target:"_blank",href:"https://fsf.org/",rel:"noreferrer",children:"https://fsf.org/"}),">"]}),(0,x.jsxs)("p",{children:[" ","Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed."]}),(0,x.jsx)("h1",{children:"Preamble"}),(0,x.jsx)("p",{children:"The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software."}),(0,x.jsx)("p",{children:"The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users."}),(0,x.jsx)("p",{children:"When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things."}),(0,x.jsx)("p",{children:"Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software."}),(0,x.jsx)("p",{children:"A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public."}),(0,x.jsx)("p",{children:"The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version."}),(0,x.jsx)("p",{children:"An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license."}),(0,x.jsx)("p",{children:"The precise terms and conditions for copying, distribution and modification follow."}),(0,x.jsx)("h2",{children:"TERMS AND CONDITIONS"}),(0,x.jsx)("h2",{children:"0. Definitions."}),(0,x.jsx)("p",{children:'"This License" refers to version 3 of the GNU Affero General Public License.'}),(0,x.jsx)("p",{children:'"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.'}),(0,x.jsx)("p",{children:'"The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations.'}),(0,x.jsx)("p",{children:'To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.'}),(0,x.jsx)("p",{children:'A "covered work" means either the unmodified Program or a work based on the Program.'}),(0,x.jsx)("p",{children:'To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.'}),(0,x.jsx)("p",{children:'To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.'}),(0,x.jsx)("p",{children:'An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.'}),(0,x.jsx)("h2",{children:"1. Source Code."}),(0,x.jsx)("p",{children:'The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work.'}),(0,x.jsx)("p",{children:'A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.'}),(0,x.jsx)("p",{children:'The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.'}),(0,x.jsx)("p",{children:'The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work\'s System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.'}),(0,x.jsx)("p",{children:"The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source."}),(0,x.jsx)("p",{children:"The Corresponding Source for a work in source code form is that same work."}),(0,x.jsx)("h2",{children:"2. Basic Permissions."}),(0,x.jsx)("p",{children:"All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law."}),(0,x.jsx)("p",{children:"You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you."}),(0,x.jsx)("p",{children:"Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary."}),(0,x.jsx)("h2",{children:"3. Protecting Users' Legal Rights From Anti-Circumvention Law."}),(0,x.jsx)("p",{children:"No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures."}),(0,x.jsx)("p",{children:"When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures."}),(0,x.jsx)("h2",{children:"4. Conveying Verbatim Copies."}),(0,x.jsx)("p",{children:"You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program."}),(0,x.jsx)("p",{children:"You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee."}),(0,x.jsx)("h2",{children:"5. Conveying Modified Source Versions."}),(0,x.jsx)("p",{children:"You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:"}),(0,x.jsx)("p",{children:(0,x.jsxs)("ul",{children:[(0,x.jsx)("li",{children:"a) The work must carry prominent notices stating that you modified it, and giving a relevant date."}),(0,x.jsx)("li",{children:'b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices".'}),(0,x.jsx)("li",{children:"c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it."}),(0,x.jsx)("li",{children:"d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so."})]})}),(0,x.jsx)("p",{children:'A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation\'s users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.'}),(0,x.jsx)("h2",{children:"6. Conveying Non-Source Forms."}),(0,x.jsx)("p",{children:"You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:"}),(0,x.jsx)("p",{children:(0,x.jsxs)("ul",{children:[(0,x.jsx)("li",{children:"a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange."}),(0,x.jsx)("li",{children:"b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge."}),(0,x.jsx)("li",{children:"c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b."}),(0,x.jsx)("li",{children:"d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements."}),(0,x.jsx)("li",{children:"e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d."})]})}),(0,x.jsx)("p",{children:"A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work."}),(0,x.jsx)("p",{children:'A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.'}),(0,x.jsx)("p",{children:'"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.'}),(0,x.jsx)("p",{children:"If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM)."}),(0,x.jsx)("p",{children:"The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network."}),(0,x.jsx)("p",{children:"Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying."}),(0,x.jsx)("h2",{children:"7. Additional Terms."}),(0,x.jsx)("p",{children:'"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.'}),(0,x.jsx)("p",{children:"When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission."}),(0,x.jsx)("p",{children:"Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:"}),(0,x.jsx)("p",{children:(0,x.jsxs)("ul",{children:[(0,x.jsx)("li",{children:"a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or"}),(0,x.jsx)("li",{children:"b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or"}),(0,x.jsx)("li",{children:"c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or"}),(0,x.jsx)("li",{children:"d) Limiting the use for publicity purposes of names of licensors or authors of the material; or"}),(0,x.jsx)("li",{children:"e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or"}),(0,x.jsx)("li",{children:"f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors."})]})}),(0,x.jsx)("p",{children:'All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.'}),(0,x.jsx)("p",{children:"If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms."}),(0,x.jsx)("p",{children:"Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way."}),(0,x.jsx)("h2",{children:"8. Termination."}),(0,x.jsx)("p",{children:"You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11)."}),(0,x.jsx)("p",{children:"However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation."}),(0,x.jsx)("p",{children:"Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice."}),(0,x.jsx)("p",{children:"Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10."}),(0,x.jsx)("h2",{children:"9. Acceptance Not Required for Having Copies."}),(0,x.jsx)("p",{children:"You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so."}),(0,x.jsx)("h2",{children:"10. Automatic Licensing of Downstream Recipients."}),(0,x.jsx)("p",{children:"Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License."}),(0,x.jsx)("p",{children:'An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party\'s predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.'}),(0,x.jsx)("p",{children:"You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it."}),(0,x.jsx)("h2",{children:"11. Patents."}),(0,x.jsx)("p",{children:'A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor\'s "contributor version".'}),(0,x.jsx)("p",{children:'A contributor\'s "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.'}),(0,x.jsx)("p",{children:"Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version."}),(0,x.jsx)("p",{children:'In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.'}),(0,x.jsx)("p",{children:'If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient\'s use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.'}),(0,x.jsx)("p",{children:"If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it."}),(0,x.jsx)("p",{children:'A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.'}),(0,x.jsx)("p",{children:"Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law."}),(0,x.jsx)("h2",{children:"12. No Surrender of Others' Freedom."}),(0,x.jsx)("p",{children:"If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program."}),(0,x.jsx)("h2",{children:"13. Remote Network Interaction; Use with the GNU General Public License."}),(0,x.jsx)("p",{children:"Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph."}),(0,x.jsx)("p",{children:"Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License."}),(0,x.jsx)("h2",{children:"14. Revised Versions of this License."}),(0,x.jsx)("p",{children:"The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns."}),(0,x.jsx)("p",{children:'Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation.'}),(0,x.jsx)("p",{children:'Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation.'}),(0,x.jsx)("p",{children:"Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version."}),(0,x.jsx)("h2",{children:"15. Disclaimer of Warranty."}),(0,x.jsx)("p",{children:'THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.'}),(0,x.jsx)("h2",{children:"16. Limitation of Liability."}),(0,x.jsx)("p",{children:"IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES."}),(0,x.jsx)("h2",{children:"17. Interpretation of Sections 15 and 16."}),(0,x.jsx)("p",{children:"If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee."}),(0,x.jsx)("p",{children:"END OF TERMS AND CONDITIONS"}),(0,x.jsx)("h2",{children:"How to Apply These Terms to Your New Programs"}),(0,x.jsx)("p",{children:"If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms."}),(0,x.jsx)("p",{children:'To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.'}),(0,x.jsx)("p",{children:(0,x.jsx)("code",{children:" Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see ."})}),(0,x.jsx)("p",{children:"Also add information on how to contact you by electronic and paper mail."}),(0,x.jsx)("p",{children:'If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements.'}),(0,x.jsxs)("p",{children:['You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see <',(0,x.jsx)("a",{target:"_blank",href:"https://www.gnu.org/licenses/",rel:"noreferrer",children:"https://www.gnu.org/licenses/"}),">."]})]})]})]}):null})),w=t(81207),v=t(74833),j=t(38442),k=t(56087),L=t(4942),S=t(18384),N=t(13967),T=t(20068),A=t(95193),I="community",E="standard",C="enterprise",P=[{label:"Unit Price",isHeader:!0},{desc:"Features",featureTitleRow:!0},{desc:"License"},{desc:"Software Release"},{desc:"SLA"},{desc:"Support"},{desc:"Critical Security and Bug Detection"},{desc:"Panic Button"},{desc:"Health Diagnostics"},{desc:"Annual Architecture Review"},{desc:"Annual Performance Review"},{desc:"Indemnification"},{desc:"Security and Policy Review"}],R=[{label:"Community",isHeader:!0},{id:"com_feat_title",featureTitleRow:!0},{id:"com_license",label:"GNU AGPL v3",isOssLicenseLink:!0},{id:"com_release",label:"Upstream"},{id:"com_sla",label:"No SLA"},{id:"com_support",label:"Community:",detail:"Public Slack Channel + Github Issues"},{id:"com_security",label:"Self"},{id:"com_panic",xsLabel:"N/A"},{id:"com_diag",xsLabel:"N/A"},{id:"com_arch",xsLabel:"N/A"},{id:"com_perf",xsLabel:"N/A"},{id:"com_indemnity",xsLabel:"N/A"},{id:"com_sec_policy",xsLabel:"N/A"}],Z=[{label:"Standard",isHeader:!0},{id:"std_feat_title",featureTitleRow:!0},{id:"std_license",label:"Commercial"},{id:"std_release",label:"1 Year Long Term Support"},{id:"std_sla",label:"<48 Hours",detail:"(Local Business Hours)"},{id:"std_support",label:"L4 Direct Engineering",detail:"support via SUBNET"},{id:"std_security",label:"Continuous Scan and Alert"},{id:"std_panic",label:"1 Per year"},{id:"std_diag",label:"24/7/365"},{id:"std_arch",xsLabel:"N/A"},{id:"std_perf",xsLabel:"N/A"},{id:"std_indemnity",xsLabel:"N/A"},{id:"std_sec_policy",xsLabel:"N/A"}],O=[{label:"Enterprise",isHeader:!0},{id:"end_feat_title",featureTitleRow:!0},{id:"ent_license",label:"Commercial"},{id:"ent_release",label:"5 Years Long Term Support"},{id:"ent_sla",label:"<1 hour"},{id:"ent_support",label:"L4 Direct Engineering support via",detail:"SUBNET, Phone, Web Conference"},{id:"ent_security",label:"Continuous Scan and Alert"},{id:"ent_panic",label:"Unlimited"},{id:"ent_diag",label:"24/7/365"},{id:"ent_arch",yesIcon:!0},{id:"ent_perf",yesIcon:!0},{id:"ent_indemnity",yesIcon:!0},{id:"ent_sec_policy",yesIcon:!0}],M=[E,C],G=function(e){var o=e.isActive,t=e.isXsViewActive,i=e.title,r=e.onClick,n=e.children,a=i.toLowerCase();return(0,x.jsx)(d.Z,{className:(0,h.Z)((0,L.Z)({"plan-header":!0,active:o},"xs-active",t)),onClick:function(){r&&r(a)},sx:{display:"flex",alignItems:"flex-start",justifyContent:"center",flexFlow:"column",paddingLeft:"26px",borderLeft:"1px solid #eaeaea","& .plan-header":{display:"flex",alignItems:"center",justifyContent:"center",flexFlow:"column"},"& .title-block":{paddingTop:"20px",display:"flex",alignItems:"flex-start",flexFlow:"column",width:"100%",marginTop:"auto",marginBottom:"auto","& .title-main":{display:"flex",alignItems:"center",justifyContent:"center",flex:1},"& .min-icon":{marginLeft:"13px",height:"13px",width:"13px"},"& .title":{fontSize:"22px",fontWeight:600}},"& .price-line":{fontSize:"16px",fontWeight:600},"& .minimum-cost":{fontSize:"14px",fontWeight:400,marginBottom:"5px"},"& .open-source":{fontSize:"14px",display:"flex",marginBottom:"5px",alignItems:"center","& .min-icon":{marginRight:"8px",height:"12px",width:"12px"}},"& .cur-plan-text":{fontSize:"12px",textTransform:"uppercase"},"@media (max-width: 600px)":{cursor:"pointer","& .title-block":{"& .title":{fontSize:"14px",fontWeight:600}}},"&.active, &.active.xs-active":{borderTop:"3px solid #2781B0",color:"#ffffff","& .min-icon":{fill:"#ffffff"}},"&.active":{background:"#2781B0",color:"#ffffff"},"&.xs-active":{background:"#eaeaea"}},children:n})},F=function(e){return(0,x.jsx)(d.Z,{className:"feature-title",children:(0,x.jsx)(d.Z,{className:"feature-title-info",children:(0,x.jsxs)("div",{className:"xs-only",children:[e.featureLabel," "]})})})},D=function(e){return(0,x.jsx)(d.Z,{className:"feature-item",children:(0,x.jsxs)(d.Z,{className:"feature-item-info",children:[(0,x.jsxs)("div",{className:"xs-only",children:[e.featureLabel," "]}),(0,x.jsxs)(d.Z,{className:"plan-feature",children:[(0,x.jsx)("div",{children:e.label||""}),e.detail?(0,x.jsx)("div",{children:e.detail}):null,(0,x.jsxs)("div",{className:"xs-only",children:[e.xsLabel," "]})]})]})})},U=(0,c.Z)((function(e){return(0,s.Z)({link:{textDecoration:"underline !important",color:e.palette.info.main},linkButton:{fontFamily:'"Lato", sans-serif',fontWeight:"normal",textTransform:"none",fontSize:"inherit",height:0,padding:0,margin:0},tableContainer:{marginLeft:28},detailsContainerBorder:{borderLeft:"1px solid #e2e2e2"},detailsTitle:{fontSize:19,fontWeight:700,marginBottom:26,paddingTop:18,lineHeight:1}})}))((function(e){var o,t=e.licenseInfo,r=e.setLicenseModal,a=e.operatorMode,s=(0,N.Z)(),c=(0,A.Z)(s.breakpoints.down("sm")),l=t?null===t||void 0===t||null===(o=t.plan)||void 0===o?void 0:o.toLowerCase():"community",h=l===I,p=l===E,f=l===C,m=M.includes(l),g=(0,n.useState)(""),y=(0,i.Z)(g,2),b=y[0],w=y[1],j=b===I,k=b===E,L=b===C,U=function(e,o,t,i){var r="community"!==l?"https://subnet.min.io":e;return(0,x.jsx)(u.Z,{variant:t,color:"primary",target:"_blank",rel:"noopener noreferrer",sx:{"&.MuiButton-contained":{padding:0,paddingLeft:"8px",paddingRight:"8px"}},href:r,disabled:l!==I&&l!==i,onClick:function(e){e.preventDefault(),window.open("".concat(r,"?ref=").concat(a?"op":"con"),"_blank")},children:o})},B=function(e){w(e)};(0,n.useEffect)((function(){w(c?l||"community":"")}),[c,l]);var H="?ref=".concat(a?"op":"con"),z=P;return(0,x.jsx)(n.Fragment,{children:(0,x.jsxs)(d.Z,{sx:{border:"1px solid #eaeaea",borderTop:"0px",marginBottom:"45px",overflow:"auto",overflowY:"hidden","&::-webkit-scrollbar":{width:"5px",height:"5px"},"&::-webkit-scrollbar-track":{background:"#F0F0F0",borderRadius:0,boxShadow:"inset 0px 0px 0px 0px #F0F0F0"},"&::-webkit-scrollbar-thumb":{background:"#777474",borderRadius:0},"&::-webkit-scrollbar-thumb:hover":{background:"#5A6375"}},children:[(0,x.jsx)(d.Z,{className:"title-blue-bar",sx:{height:"8px",borderBottom:"8px solid rgb(6 48 83)"}}),(0,x.jsxs)(d.Z,{className:m?"paid-plans-only":"",sx:{display:"grid",margin:"0 1.5rem 0 1.5rem",gridTemplateColumns:{sm:"1fr 1fr 1fr 1fr",xs:"1fr 1fr 1fr"},"&.paid-plans-only":{display:"grid",gridTemplateColumns:"1fr 1fr 1fr"},"& .features-col":{flex:1,minWidth:"260px","@media (max-width: 600px)":{display:"none"}},"& .xs-only":{display:"none"},"& .button-box":{display:"flex",alignItems:"center",justifyContent:"center",padding:"5px 0px 5px 0px",borderLeft:"1px solid #eaeaea"},"& .plan-header":{height:"153px",borderBottom:"1px solid #eaeaea"},"& .feature-title":{height:"25px",paddingLeft:"26px",fontSize:"14px",background:"#E5E5E5","@media (max-width: 600px)":{"& .feature-title-info .xs-only":{display:"block"}}},"& .feature-name":{minHeight:"60px",padding:"5px",borderBottom:"1px solid #eaeaea",display:"flex",alignItems:"center",paddingLeft:"26px",fontSize:"14px",fontWeight:600},"& .feature-item":{display:"flex",flexFlow:"column",alignItems:"flex-start",justifyContent:"center",minHeight:"60px",padding:"5px",borderBottom:"1px solid #eaeaea",borderLeft:" 1px solid #eaeaea",paddingLeft:"26px",fontSize:"14px","@media (max-width: 900px)":{maxHeight:"30px",overflow:"hidden"},"& .link-text":{color:"#2781B0"},"&.icon-yes":{width:"15px",height:"15px"}},"& .feature-item-info":{flex:1,display:"flex",flexFlow:"column",alignItems:"flex-start",justifyContent:"space-around","@media (max-width: 600px)":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"space-between",width:"100%","& .xs-only":{display:"block",flex:1},"& .plan-feature":{flex:1,textAlign:"right",paddingRight:"10px"}}},"& .plan-col":{minWidth:"260px",flex:1},"& .active-plan-col":{background:"#FDFDFD 0% 0% no-repeat padding-box",boxShadow:" 0px 3px 20px #00000038","& .plan-header":{backgroundColor:"#2781B0"},"& .feature-title":{background:"#F7F7F7"},"& .title-main":{position:"relative",top:"-17px"},"& .cur-plan-text":{position:"relative",top:"-17px"}}},children:[(0,x.jsx)(d.Z,{className:"features-col",children:z.map((function(e){var o=e.featureTitleRow;return e.isHeader?m?(0,x.jsxs)(d.Z,{className:"plan-header",sx:{fontSize:"14px",paddingLeft:"26px",display:"flex",alignItems:"center",justifyContent:"flex-start","& .link-text":{color:"#2781B0"},"& .min-icon":{marginRight:"10px",color:"#2781B0",fill:"#2781B0"}},children:[(0,x.jsx)(v.jR,{}),(0,x.jsxs)("a",{href:"https://subnet.min.io/terms-and-conditions/".concat(l),rel:"noreferrer noopener",className:"link-text",children:["View License agreement ",(0,x.jsx)("br",{}),"for the registered plan."]})]},e.desc):(0,x.jsx)(d.Z,{className:"plan-header",sx:{fontSize:"14px",fontWeight:600,paddingLeft:"26px",display:"flex",alignItems:"center",justifyContent:"flex-start"},children:e.label},e.desc):o?(0,x.jsx)(d.Z,{className:"feature-title",sx:{fontSize:"14px",fontWeight:600,textTransform:"uppercase"},children:(0,x.jsxs)("div",{children:[e.desc," "]})},e.desc):(0,x.jsx)(d.Z,{className:"feature-name",children:(0,x.jsxs)("div",{children:[e.desc," "]})},e.desc)}))}),m?null:(0,x.jsxs)(d.Z,{className:"plan-col ".concat(h?"active-plan-col":"non-active-plan-col"),children:[R.map((function(e,o){var t=z[o].desc,i=e.featureTitleRow,n=e.isHeader,a=e.isOssLicenseLink;return n?(0,x.jsxs)(G,{isActive:h,isXsViewActive:j,title:"community",onClick:c?B:null,children:[(0,x.jsxs)(d.Z,{className:"title-block",children:[(0,x.jsxs)(d.Z,{className:"title-main",children:[(0,x.jsx)("div",{className:"title",children:"Community"}),(0,x.jsx)(T.Z,{title:"Designed for developers who are building open source applications in compliance with the AGPL v3 license and are able to support themselves. The community version of MinIO has all the functionality of the Standard and Enterprise editions.",placement:"top-start",children:(0,x.jsx)("div",{className:"tool-tip",children:(0,x.jsx)(v.M9,{})})})]}),(0,x.jsx)("div",{className:"cur-plan-text",children:h?"Current Plan":""})]}),(0,x.jsxs)("div",{className:"open-source",children:[(0,x.jsx)(v.JU,{}),"Open Source"]})]}):i?(0,x.jsx)(F,{featureLabel:t},e.id):a?(0,x.jsx)(d.Z,{className:"feature-item",sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:(0,x.jsx)("a",{href:"https://www.gnu.org/licenses/agpl-3.0.en.html",rel:"noreferrer noopener",className:"link-text",onClick:function(e){e.preventDefault(),e.stopPropagation(),r&&r(!0)},children:"GNU AGPL v3"})},e.id):(0,x.jsx)(D,{featureLabel:t,label:e.label,detail:e.detail,xsLabel:e.xsLabel},e.id)})),(0,x.jsx)(d.Z,{className:"button-box",children:U("https://slack.min.io".concat(H),"Join Slack","outlined",I)})]}),(0,x.jsxs)(d.Z,{className:"plan-col ".concat(p?"active-plan-col":"non-active-plan-col"),children:[Z.map((function(e,o){var t=z[o].desc,i=e.featureTitleRow;return e.isHeader?(0,x.jsxs)(G,{isActive:p,isXsViewActive:k,title:"Standard",onClick:c?B:null,children:[(0,x.jsxs)(d.Z,{className:"title-block",children:[(0,x.jsxs)(d.Z,{className:"title-main",children:[(0,x.jsx)("div",{className:"title",children:"Standard"}),(0,x.jsx)(T.Z,{title:"Designed for customers who require a commercial license and can mostly self-support but want the peace of mind that comes with the MinIO Subscription Network\u2019s suite of operational capabilities and direct-to-engineer interaction. The Standard version is fully featured but with SLA limitations. ",placement:"top-start",children:(0,x.jsx)("div",{className:"tool-tip",children:(0,x.jsx)(v.M9,{})})})]}),(0,x.jsx)("div",{className:"cur-plan-text",children:p?"Current Plan":""})]}),(0,x.jsx)("div",{className:"price-line",children:"$10 per TiB per month"}),(0,x.jsx)("div",{className:"minimum-cost",children:"(Minimum of 100TiB)"})]}):i?(0,x.jsx)(F,{featureLabel:t},e.id):(0,x.jsx)(D,{featureLabel:t,label:e.label,detail:e.detail,xsLabel:e.xsLabel},e.id)})),(0,x.jsx)(d.Z,{className:"button-box",children:U("https://min.io/signup".concat(H),M.includes(l)?"Login to SUBNET":"Subscribe","contained",E)})]}),(0,x.jsxs)(d.Z,{className:"plan-col ".concat(f?"active-plan-col":"non-active-plan-col"),children:[O.map((function(e,o){var t=z[o].desc,i=e.featureTitleRow,r=e.isHeader,n=e.yesIcon;return r?(0,x.jsxs)(G,{isActive:f,isXsViewActive:L,title:"Enterprise",onClick:c?B:null,children:[(0,x.jsxs)(d.Z,{className:"title-block",children:[(0,x.jsxs)(d.Z,{className:"title-main",children:[(0,x.jsx)("div",{className:"title",children:"Enterprise"}),(0,x.jsx)(T.Z,{title:"Designed for mission critical environments where both a license and strict SLAs are required. The Enterprise version is fully featured but comes with additional capabilities. ",placement:"top-start",children:(0,x.jsx)("div",{className:"tool-tip",children:(0,x.jsx)(v.M9,{})})})]}),(0,x.jsx)("div",{className:"cur-plan-text",children:f?"Current Plan":""})]}),(0,x.jsx)("div",{className:"price-line",children:"$20 per TiB per month"}),(0,x.jsx)("div",{className:"minimum-cost",children:"(Minimum of 100TiB)"})]}):i?(0,x.jsx)(F,{featureLabel:t},e.id):n?(0,x.jsx)(d.Z,{className:"feature-item",children:(0,x.jsxs)(d.Z,{className:"feature-item-info",children:[(0,x.jsx)("div",{className:"xs-only",children:" "}),(0,x.jsx)(d.Z,{className:"plan-feature",children:(0,x.jsx)(S.Z,{})})]})}):(0,x.jsx)(D,{featureLabel:t,label:e.label,detail:e.detail},e.id)})),(0,x.jsx)(d.Z,{className:"button-box",children:U("https://min.io/signup".concat(H),M.includes(l)?"Login to SUBNET":"Subscribe","contained",C)})]})]})]})})})),B=t(91523),H=t(74794),z=t(74440),_=(0,a.$j)((function(e){return{operatorMode:e.system.operatorMode}}),null)((0,c.Z)((function(e){return(0,s.Z)((0,r.Z)((0,r.Z)({pageTitle:{backgroundColor:"rgb(250,250,252)",marginTop:40,border:"1px solid #E5E5E5",paddingTop:33,paddingLeft:28,paddingBottom:30,paddingRight:28,fontSize:16,fontWeight:"bold","& ul":{marginLeft:"-25px",listStyleType:"square",color:"#1C5A8D",fontSize:"16px","& li":{float:"left",fontSize:14,marginRight:40},"& li::before":{color:"red",content:"\u2022"}}},licDet:{fontSize:11,color:"#5E5E5E"},linkMore:{marginTop:10,marginBottom:20},chooseFlavorText:{color:"#000000",fontSize:14},link:{textDecoration:"underline !important",color:e.palette.info.main},linkButton:{fontFamily:'"Lato", sans-serif',fontWeight:"normal",textTransform:"none",fontSize:"inherit",height:0,padding:0,margin:0},openSourcePolicy:{fontSize:14,color:"#1C5A8D",fontWeight:"bold"},licenseInfo:{position:"relative"},licenseInfoTitle:{textTransform:"none",color:"#999999",fontSize:11},licenseInfoValue:{textTransform:"none",fontSize:14,fontWeight:"bold"},subnetSubTitle:{fontSize:14},verifiedIcon:{width:96,position:"absolute",right:0,bottom:29},loadingLoginStrategy:{textAlign:"center"}},(0,m.Bz)(e.spacing(4))),{},{mainContainer:{border:"1px solid #EAEDEE",padding:40,margin:40},icon:{color:e.palette.primary.main,fontSize:16,fontWeight:"bold",marginBottom:20,"& .min-icon":{width:44,height:44,marginRight:15}}}))}))((function(e){var o=e.classes,t=e.operatorMode,r=(0,n.useState)(!1),a=(0,i.Z)(r,2),s=a[0],c=a[1],m=(0,n.useState)(!1),y=(0,i.Z)(m,2),L=y[0],S=y[1],N=(0,n.useState)(),T=(0,i.Z)(N,2),A=T[0],I=T[1],E=(0,n.useState)(0),C=(0,i.Z)(E,2),P=C[0],R=C[1],Z=(0,n.useState)(!1),O=(0,i.Z)(Z,2),M=O[0],G=O[1],F=(0,n.useState)(!0),D=(0,i.Z)(F,2),_=D[0],W=D[1];(0,n.useState)(!1);var Y=(0,n.useState)(!1),q=(0,i.Z)(Y,2),V=q[0],X=q[1],Q=(0,j.F)(k.C3,k.LC[k.gA.LICENSE],!0),K=(0,n.useCallback)((function(){M||(Q?(G(!0),w.Z.invoke("GET","/api/v1/subnet/info").then((function(e){e&&("STANDARD"===e.plan?R(1):"ENTERPRISE"===e.plan?R(2):R(1),I(e)),X(!0),G(!1)})).catch((function(){X(!1),G(!1)}))):G(!1))}),[M,Q]);if((0,n.useEffect)((function(){_&&(K(),W(!1))}),[K,_,W]),M)return(0,x.jsx)(p.ZP,{item:!0,xs:12,children:(0,x.jsx)(l.Z,{})});var $=A&&V;return(0,x.jsxs)(n.Fragment,{children:[(0,x.jsx)(g.Z,{label:"License"}),(0,x.jsxs)(H.Z,{children:[(0,x.jsx)(p.ZP,{item:!0,xs:12,children:$&&(0,x.jsx)(z.Z,{email:null===A||void 0===A?void 0:A.email})}),!$&&(0,x.jsxs)(p.ZP,{item:!0,xs:12,sx:{display:"flex",flexFlow:"column"},children:[(0,x.jsxs)(d.Z,{sx:{padding:"25px",border:"1px solid #eaeaea",display:"flex",alignItems:"center",justifyContent:"center",flexFlow:{sm:"row",xs:"column"}},children:[(0,x.jsxs)(d.Z,{sx:{marginRight:"8px",fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center","& .min-icon":{width:"83px",height:"14px",marginLeft:"5px",marginRight:"5px"}},children:["Are you already a customer of ",(0,x.jsx)(v.BH,{}),"?"]}),(0,x.jsxs)(B.rU,{to:k.gA.REGISTER_SUPPORT,className:o.link,style:{fontSize:"14px",display:"flex",alignItems:"center"},children:["Register this cluster"," ",(0,x.jsx)(v.YI,{style:{width:"13px",height:"8px",marginLeft:"5px",marginTop:"3px"}})]})]}),(0,x.jsxs)("div",{className:o.pageTitle,children:[(0,x.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{height:"18px",width:"18px"}},children:[(0,x.jsx)(v.M9,{}),(0,x.jsx)(d.Z,{sx:{fontSize:"16px",marginLeft:"15px"},children:"Choosing between GNU AGPL v3 and Commercial License"})]}),(0,x.jsx)("br",{}),(0,x.jsx)(d.Z,{sx:{fontSize:"14px",fontWeight:"normal",lineHeight:"17px"},children:"If you are building proprietary applications, you may want to choose the commercial license included as part of the Standard and Enterprise subscription plans. Applications must otherwise comply with all the GNU AGPLv3 License & Trademark obligations. Follow the links below to learn more about the compliance policy."}),(0,x.jsxs)(d.Z,{component:"ul",children:[(0,x.jsx)("li",{children:(0,x.jsx)("a",{href:"https://min.io/compliance?ref=".concat(t?"op":"con"),className:o.openSourcePolicy,target:"_blank",rel:"nofollow noopener noreferrer",children:"Learn more about GNU AGPL v3"})}),(0,x.jsx)("li",{children:(0,x.jsx)("a",{href:"https://min.io/logo?ref=".concat(t?"op":"con"),className:o.openSourcePolicy,target:"_blank",rel:"nofollow noopener noreferrer",children:"MinIO Trademark Compliance"})})]}),(0,x.jsx)("div",{style:{clear:"both"}})]}),(0,x.jsx)(d.Z,{sx:{padding:"40px 0px 40px 0px",fontSize:"16px",fontWeight:600},children:"MinIO License and Support plans"})]}),(0,x.jsx)(U,{activateProductModal:s,closeModalAndFetchLicenseInfo:function(){c(!1),K()},licenseInfo:A,setLicenseModal:S,operatorMode:t,currentPlanID:P,setActivateProductModal:c}),(0,x.jsx)(p.ZP,{item:!0,xs:12,children:(0,x.jsx)(p.ZP,{container:!0,marginTop:"35px",sx:{border:"1px solid #eaeaea",padding:"15px"},children:(0,x.jsx)(p.ZP,{item:!0,xs:12,lg:12,children:(0,x.jsxs)(n.Fragment,{children:[(0,x.jsx)(b,{open:L,closeModal:function(){return S(!1)}}),(0,x.jsxs)(d.Z,{sx:{display:"flex",marginBottom:"15px",flexFlow:{sm:"row",xs:"column"},alignItems:{xs:"flex-start",sm:"center"}},children:[(0,x.jsx)(d.Z,{children:(0,x.jsx)(v.DJ,{})}),(0,x.jsxs)(d.Z,{sx:{flex:1,marginLeft:{sm:"15px",xs:"0"}},children:[(0,x.jsx)("div",{children:" GNU Affero General Public License"}),(0,x.jsx)("div",{className:o.licDet,children:"Version 3. 19 November 2007"})]}),(0,x.jsx)(d.Z,{children:(0,x.jsx)("img",{src:"/agpl-logo.svg",height:40,alt:"agpl"})})]}),(0,x.jsxs)(p.ZP,{container:!0,children:[(0,x.jsx)(f.Z,{children:"The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the Community in the case of network server software."}),(0,x.jsx)("br",{}),(0,x.jsx)(f.Z,{children:"The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users."}),(0,x.jsx)("div",{className:o.linkMore,children:(0,x.jsxs)(u.Z,{variant:"text",color:"primary",size:"small",className:(0,h.Z)(o.link,o.linkButton),onClick:function(){return S(!0)},children:["Read more"," ",(0,x.jsx)(v.YI,{style:{width:"13px",height:"8px",marginLeft:"5px",marginTop:"3px"}})]})})]})]})})})})]})]})})))},74440:function(e,o,t){t(72791);var i=t(64554),r=t(97506),n=t(80184);o.Z=function(e){var o=e.email,t=void 0===o?"":o;return(0,n.jsxs)(i.Z,{sx:{height:"67px",color:"#ffffff",display:"flex",position:"relative",top:"-30px",left:"-32px",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,n.jsxs)(i.Z,{className:"registered-box",children:[(0,n.jsx)(i.Z,{sx:{fontSize:"16px",fontWeight:400},children:"Register status:"}),(0,n.jsxs)(i.Z,{className:"reg-badge-box",children:[(0,n.jsx)(r.Z,{}),(0,n.jsx)(i.Z,{sx:{fontWeight:600},children:"Registered"})]})]}),(0,n.jsxs)(i.Z,{className:"registered-acc-box",sx:{alignItems:"center",justifyContent:"flex-start",display:{sm:"flex",xs:"none"}},children:[(0,n.jsx)(i.Z,{sx:{fontSize:"16px",fontWeight:400},children:"Registered to:"}),(0,n.jsx)(i.Z,{sx:{marginLeft:"8px",fontWeight:600},children:t})]})]})}},18384:function(e,o,t){var i=t(95318);o.Z=void 0;var r=i(t(45649)),n=t(80184),a=(0,r.default)((0,n.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckCircle");o.Z=a},29823:function(e,o,t){var i=t(95318);o.Z=void 0;var r=i(t(45649)),n=t(80184),a=(0,r.default)((0,n.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");o.Z=a},95193:function(e,o,t){var i;t.d(o,{Z:function(){return p}});var r=t(70885),n=t(72791),a=t(69120),s=t(33073),c=t(40162);function l(e,o,t,i,a){var s="undefined"!==typeof window&&"undefined"!==typeof window.matchMedia,l=n.useState((function(){return a&&s?t(e).matches:i?i(e).matches:o})),d=(0,r.Z)(l,2),h=d[0],p=d[1];return(0,c.Z)((function(){var o=!0;if(s){var i=t(e),r=function(){o&&p(i.matches)};return r(),i.addListener(r),function(){o=!1,i.removeListener(r)}}}),[e,t,s]),h}var d=(i||(i=t.t(n,2))).useSyncExternalStore;function h(e,o,t,i){var a=n.useCallback((function(){return o}),[o]),s=n.useMemo((function(){if(null!==i){var o=i(e).matches;return function(){return o}}return a}),[a,e,i]),c=n.useMemo((function(){if(null===t)return[a,function(){return function(){}}];var o=t(e);return[function(){return o.matches},function(e){return o.addListener(e),function(){o.removeListener(e)}}]}),[a,t,e]),l=(0,r.Z)(c,2),h=l[0],p=l[1];return d(p,h,s)}function p(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=(0,a.Z)(),i="undefined"!==typeof window&&"undefined"!==typeof window.matchMedia,r=(0,s.Z)({name:"MuiUseMediaQuery",props:o,theme:t}),n=r.defaultMatches,c=void 0!==n&&n,p=r.matchMedia,u=void 0===p?i?window.matchMedia:null:p,f=r.ssrMatchMedia,m=void 0===f?null:f,g=r.noSsr;var y="function"===typeof e?e(t):e;y=y.replace(/^@media( ?)/m,"");var x=void 0!==d?h:l,b=x(y,c,u,m,g);return b}}}]); -//# sourceMappingURL=1836.ea648525.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1836],{74794:function(e,o,t){var i=t(1413),r=(t(72791),t(61889)),n=t(11135),a=t(25787),s=t(23814),c=t(80184);o.Z=(0,a.Z)((function(e){return(0,n.Z)((0,i.Z)({},s.Bw))}))((function(e){var o=e.classes,t=e.className,i=void 0===t?"":t,n=e.children;return(0,c.jsx)("div",{className:o.contentSpacer,children:(0,c.jsx)(r.ZP,{container:!0,children:(0,c.jsx)(r.ZP,{item:!0,xs:12,className:i,children:n})})})}))},56028:function(e,o,t){var i=t(70885),r=t(1413),n=t(72791),a=t(60364),s=t(13400),c=t(55646),l=t(5574),d=t(65661),h=t(39157),p=t(11135),u=t(25787),f=t(23814),m=t(42649),g=t(29823),y=t(28057),x=t(80184),b=(0,a.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:m.MK});o.Z=(0,u.Z)((function(e){return(0,p.Z)((0,r.Z)((0,r.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(b((function(e){var o=e.onClose,t=e.modalOpen,a=e.title,p=e.children,u=e.classes,f=e.wideLimit,m=void 0===f||f,b=e.modalSnackMessage,w=e.noContentPadding,v=e.setModalSnackMessage,j=e.titleIcon,k=void 0===j?null:j,L=(0,n.useState)(!1),S=(0,i.Z)(L,2),N=S[0],T=S[1];(0,n.useEffect)((function(){v("")}),[v]),(0,n.useEffect)((function(){if(b){if(""===b.message)return void T(!1);"error"!==b.type&&T(!0)}}),[b]);var A=m?{classes:{paper:u.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},I="";return b&&(I=b.detailedErrorMsg,(""===b.detailedErrorMsg||b.detailedErrorMsg.length<5)&&(I=b.message)),(0,x.jsxs)(l.Z,(0,r.Z)((0,r.Z)({open:t,classes:u},A),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&o()},className:u.root,children:[(0,x.jsxs)(d.Z,{className:u.title,children:[(0,x.jsxs)("div",{className:u.titleText,children:[k," ",a]}),(0,x.jsx)("div",{className:u.closeContainer,children:(0,x.jsx)(s.Z,{"aria-label":"close",id:"close",className:u.closeButton,onClick:o,disableRipple:!0,size:"small",children:(0,x.jsx)(g.Z,{})})})]}),(0,x.jsx)(y.Z,{isModal:!0}),(0,x.jsx)(c.Z,{open:N,className:u.snackBarModal,onClose:function(){T(!1),v("")},message:I,ContentProps:{className:"".concat(u.snackBar," ").concat(b&&"error"===b.type?u.errorSnackBar:"")},autoHideDuration:b&&"error"===b.type?1e4:5e3}),(0,x.jsx)(h.Z,{className:w?"":u.content,children:p})]}))})))},32291:function(e,o,t){var i=t(72791),r=t(60364),n=t(61889),a=t(11135),s=t(25787),c=t(20890),l=t(13400),d=t(95466),h=t(84683),p=t(3925),u=t(13048),f=t(80184),m={toggleList:p.kQ},g=(0,r.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),m);o.Z=g((0,s.Z)((function(e){return(0,a.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var o=e.classes,t=e.label,r=e.actions,a=e.sidebarOpen,s=e.operatorMode,p=e.managerObjects,m=e.toggleList,g=e.middleComponent;return e.features.includes("hide-menu")?(0,f.jsx)(i.Fragment,{}):(0,f.jsxs)(n.ZP,{container:!0,className:"".concat(o.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,f.jsxs)(n.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:o.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,f.jsx)("div",{className:o.logo,children:s?(0,f.jsx)(d.Z,{}):(0,f.jsx)(h.Z,{})}),(0,f.jsx)(c.Z,{variant:"h4",className:o.labelStyle,children:t})]}),g&&(0,f.jsx)(n.ZP,{item:!0,xs:12,sm:12,md:6,className:o.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:g}),(0,f.jsxs)(n.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:o.rightMenu,children:[r&&r,p&&p.length>0&&(0,f.jsx)(l.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){m()},id:"object-manager-toggle",size:"large",children:(0,f.jsx)(u.gx,{})})]})]})})))},81836:function(e,o,t){t.r(o),t.d(o,{default:function(){return _}});var i=t(70885),r=t(1413),n=t(72791),a=t(60364),s=t(11135),c=t(25787),l=t(40986),d=t(64554),h=t(28182),p=t(61889),u=t(36151),f=t(20890),m=t(23814),g=t(32291),y=t(56028),x=t(80184),b=(0,c.Z)((function(e){return(0,s.Z)((0,r.Z)({pageTitle:{fontSize:18,marginBottom:20,textAlign:"center"},pageSubTitle:{textAlign:"center"}},(0,m.Bz)(e.spacing(4))))}))((function(e){var o=e.classes,t=e.open,i=e.closeModal;return t?(0,x.jsxs)(y.Z,{title:"",modalOpen:t,onClose:function(){i()},"aria-labelledby":"alert-dialog-title","aria-describedby":"alert-dialog-description",children:[" ",(0,x.jsxs)(p.ZP,{container:!0,alignItems:"center",item:!0,xs:12,children:[(0,x.jsxs)(p.ZP,{item:!0,xs:12,children:[(0,x.jsx)(f.Z,{component:"h2",variant:"h6",className:o.pageTitle,children:"GNU AFFERO GENERAL PUBLIC LICENSE"}),(0,x.jsx)("p",{className:o.pageSubTitle,children:"Version 3, 19 November 2007"})]}),(0,x.jsxs)(p.ZP,{item:!0,className:o.subnetLicenseKey,xs:12,children:[(0,x.jsxs)("p",{children:["Copyright \xa9 2007 Free Software Foundation, Inc. <",(0,x.jsx)("a",{target:"_blank",href:"https://fsf.org/",rel:"noreferrer",children:"https://fsf.org/"}),">"]}),(0,x.jsxs)("p",{children:[" ","Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed."]}),(0,x.jsx)("h1",{children:"Preamble"}),(0,x.jsx)("p",{children:"The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the community in the case of network server software."}),(0,x.jsx)("p",{children:"The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users."}),(0,x.jsx)("p",{children:"When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for them if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs, and that you know you can do these things."}),(0,x.jsx)("p",{children:"Developers that use our General Public Licenses protect your rights with two steps: (1) assert copyright on the software, and (2) offer you this License which gives you legal permission to copy, distribute and/or modify the software."}),(0,x.jsx)("p",{children:"A secondary benefit of defending all users' freedom is that improvements made in alternate versions of the program, if they receive widespread use, become available for other developers to incorporate. Many developers of free software are heartened and encouraged by the resulting cooperation. However, in the case of software used on network servers, this result may fail to come about. The GNU General Public License permits making a modified version and letting the public access it on a server without ever releasing its source code to the public."}),(0,x.jsx)("p",{children:"The GNU Affero General Public License is designed specifically to ensure that, in such cases, the modified source code becomes available to the community. It requires the operator of a network server to provide the source code of the modified version running there to the users of that server. Therefore, public use of a modified version, on a publicly accessible server, gives the public access to the source code of the modified version."}),(0,x.jsx)("p",{children:"An older license, called the Affero General Public License and published by Affero, was designed to accomplish similar goals. This is a different license, not a version of the Affero GPL, but Affero has released a new version of the Affero GPL which permits relicensing under this license."}),(0,x.jsx)("p",{children:"The precise terms and conditions for copying, distribution and modification follow."}),(0,x.jsx)("h2",{children:"TERMS AND CONDITIONS"}),(0,x.jsx)("h2",{children:"0. Definitions."}),(0,x.jsx)("p",{children:'"This License" refers to version 3 of the GNU Affero General Public License.'}),(0,x.jsx)("p",{children:'"Copyright" also means copyright-like laws that apply to other kinds of works, such as semiconductor masks.'}),(0,x.jsx)("p",{children:'"The Program" refers to any copyrightable work licensed under this License. Each licensee is addressed as "you". "Licensees" and "recipients" may be individuals or organizations.'}),(0,x.jsx)("p",{children:'To "modify" a work means to copy from or adapt all or part of the work in a fashion requiring copyright permission, other than the making of an exact copy. The resulting work is called a "modified version" of the earlier work or a work "based on" the earlier work.'}),(0,x.jsx)("p",{children:'A "covered work" means either the unmodified Program or a work based on the Program.'}),(0,x.jsx)("p",{children:'To "propagate" a work means to do anything with it that, without permission, would make you directly or secondarily liable for infringement under applicable copyright law, except executing it on a computer or modifying a private copy. Propagation includes copying, distribution (with or without modification), making available to the public, and in some countries other activities as well.'}),(0,x.jsx)("p",{children:'To "convey" a work means any kind of propagation that enables other parties to make or receive copies. Mere interaction with a user through a computer network, with no transfer of a copy, is not conveying.'}),(0,x.jsx)("p",{children:'An interactive user interface displays "Appropriate Legal Notices" to the extent that it includes a convenient and prominently visible feature that (1) displays an appropriate copyright notice, and (2) tells the user that there is no warranty for the work (except to the extent that warranties are provided), that licensees may convey the work under this License, and how to view a copy of this License. If the interface presents a list of user commands or options, such as a menu, a prominent item in the list meets this criterion.'}),(0,x.jsx)("h2",{children:"1. Source Code."}),(0,x.jsx)("p",{children:'The "source code" for a work means the preferred form of the work for making modifications to it. "Object code" means any non-source form of a work.'}),(0,x.jsx)("p",{children:'A "Standard Interface" means an interface that either is an official standard defined by a recognized standards body, or, in the case of interfaces specified for a particular programming language, one that is widely used among developers working in that language.'}),(0,x.jsx)("p",{children:'The "System Libraries" of an executable work include anything, other than the work as a whole, that (a) is included in the normal form of packaging a Major Component, but which is not part of that Major Component, and (b) serves only to enable use of the work with that Major Component, or to implement a Standard Interface for which an implementation is available to the public in source code form. A "Major Component", in this context, means a major essential component (kernel, window system, and so on) of the specific operating system (if any) on which the executable work runs, or a compiler used to produce the work, or an object code interpreter used to run it.'}),(0,x.jsx)("p",{children:'The "Corresponding Source" for a work in object code form means all the source code needed to generate, install, and (for an executable work) run the object code and to modify the work, including scripts to control those activities. However, it does not include the work\'s System Libraries, or general-purpose tools or generally available free programs which are used unmodified in performing those activities but which are not part of the work. For example, Corresponding Source includes interface definition files associated with source files for the work, and the source code for shared libraries and dynamically linked subprograms that the work is specifically designed to require, such as by intimate data communication or control flow between those subprograms and other parts of the work.'}),(0,x.jsx)("p",{children:"The Corresponding Source need not include anything that users can regenerate automatically from other parts of the Corresponding Source."}),(0,x.jsx)("p",{children:"The Corresponding Source for a work in source code form is that same work."}),(0,x.jsx)("h2",{children:"2. Basic Permissions."}),(0,x.jsx)("p",{children:"All rights granted under this License are granted for the term of copyright on the Program, and are irrevocable provided the stated conditions are met. This License explicitly affirms your unlimited permission to run the unmodified Program. The output from running a covered work is covered by this License only if the output, given its content, constitutes a covered work. This License acknowledges your rights of fair use or other equivalent, as provided by copyright law."}),(0,x.jsx)("p",{children:"You may make, run and propagate covered works that you do not convey, without conditions so long as your license otherwise remains in force. You may convey covered works to others for the sole purpose of having them make modifications exclusively for you, or provide you with facilities for running those works, provided that you comply with the terms of this License in conveying all material for which you do not control copyright. Those thus making or running the covered works for you must do so exclusively on your behalf, under your direction and control, on terms that prohibit them from making any copies of your copyrighted material outside their relationship with you."}),(0,x.jsx)("p",{children:"Conveying under any other circumstances is permitted solely under the conditions stated below. Sublicensing is not allowed; section 10 makes it unnecessary."}),(0,x.jsx)("h2",{children:"3. Protecting Users' Legal Rights From Anti-Circumvention Law."}),(0,x.jsx)("p",{children:"No covered work shall be deemed part of an effective technological measure under any applicable law fulfilling obligations under article 11 of the WIPO copyright treaty adopted on 20 December 1996, or similar laws prohibiting or restricting circumvention of such measures."}),(0,x.jsx)("p",{children:"When you convey a covered work, you waive any legal power to forbid circumvention of technological measures to the extent such circumvention is effected by exercising rights under this License with respect to the covered work, and you disclaim any intention to limit operation or modification of the work as a means of enforcing, against the work's users, your or third parties' legal rights to forbid circumvention of technological measures."}),(0,x.jsx)("h2",{children:"4. Conveying Verbatim Copies."}),(0,x.jsx)("p",{children:"You may convey verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice; keep intact all notices stating that this License and any non-permissive terms added in accord with section 7 apply to the code; keep intact all notices of the absence of any warranty; and give all recipients a copy of this License along with the Program."}),(0,x.jsx)("p",{children:"You may charge any price or no price for each copy that you convey, and you may offer support or warranty protection for a fee."}),(0,x.jsx)("h2",{children:"5. Conveying Modified Source Versions."}),(0,x.jsx)("p",{children:"You may convey a work based on the Program, or the modifications to produce it from the Program, in the form of source code under the terms of section 4, provided that you also meet all of these conditions:"}),(0,x.jsx)("p",{children:(0,x.jsxs)("ul",{children:[(0,x.jsx)("li",{children:"a) The work must carry prominent notices stating that you modified it, and giving a relevant date."}),(0,x.jsx)("li",{children:'b) The work must carry prominent notices stating that it is released under this License and any conditions added under section 7. This requirement modifies the requirement in section 4 to "keep intact all notices".'}),(0,x.jsx)("li",{children:"c) You must license the entire work, as a whole, under this License to anyone who comes into possession of a copy. This License will therefore apply, along with any applicable section 7 additional terms, to the whole of the work, and all its parts, regardless of how they are packaged. This License gives no permission to license the work in any other way, but it does not invalidate such permission if you have separately received it."}),(0,x.jsx)("li",{children:"d) If the work has interactive user interfaces, each must display Appropriate Legal Notices; however, if the Program has interactive interfaces that do not display Appropriate Legal Notices, your work need not make them do so."})]})}),(0,x.jsx)("p",{children:'A compilation of a covered work with other separate and independent works, which are not by their nature extensions of the covered work, and which are not combined with it such as to form a larger program, in or on a volume of a storage or distribution medium, is called an "aggregate" if the compilation and its resulting copyright are not used to limit the access or legal rights of the compilation\'s users beyond what the individual works permit. Inclusion of a covered work in an aggregate does not cause this License to apply to the other parts of the aggregate.'}),(0,x.jsx)("h2",{children:"6. Conveying Non-Source Forms."}),(0,x.jsx)("p",{children:"You may convey a covered work in object code form under the terms of sections 4 and 5, provided that you also convey the machine-readable Corresponding Source under the terms of this License, in one of these ways:"}),(0,x.jsx)("p",{children:(0,x.jsxs)("ul",{children:[(0,x.jsx)("li",{children:"a) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by the Corresponding Source fixed on a durable physical medium customarily used for software interchange."}),(0,x.jsx)("li",{children:"b) Convey the object code in, or embodied in, a physical product (including a physical distribution medium), accompanied by a written offer, valid for at least three years and valid for as long as you offer spare parts or customer support for that product model, to give anyone who possesses the object code either (1) a copy of the Corresponding Source for all the software in the product that is covered by this License, on a durable physical medium customarily used for software interchange, for a price no more than your reasonable cost of physically performing this conveying of source, or (2) access to copy the Corresponding Source from a network server at no charge."}),(0,x.jsx)("li",{children:"c) Convey individual copies of the object code with a copy of the written offer to provide the Corresponding Source. This alternative is allowed only occasionally and noncommercially, and only if you received the object code with such an offer, in accord with subsection 6b."}),(0,x.jsx)("li",{children:"d) Convey the object code by offering access from a designated place (gratis or for a charge), and offer equivalent access to the Corresponding Source in the same way through the same place at no further charge. You need not require recipients to copy the Corresponding Source along with the object code. If the place to copy the object code is a network server, the Corresponding Source may be on a different server (operated by you or a third party) that supports equivalent copying facilities, provided you maintain clear directions next to the object code saying where to find the Corresponding Source. Regardless of what server hosts the Corresponding Source, you remain obligated to ensure that it is available for as long as needed to satisfy these requirements."}),(0,x.jsx)("li",{children:"e) Convey the object code using peer-to-peer transmission, provided you inform other peers where the object code and Corresponding Source of the work are being offered to the general public at no charge under subsection 6d."})]})}),(0,x.jsx)("p",{children:"A separable portion of the object code, whose source code is excluded from the Corresponding Source as a System Library, need not be included in conveying the object code work."}),(0,x.jsx)("p",{children:'A "User Product" is either (1) a "consumer product", which means any tangible personal property which is normally used for personal, family, or household purposes, or (2) anything designed or sold for incorporation into a dwelling. In determining whether a product is a consumer product, doubtful cases shall be resolved in favor of coverage. For a particular product received by a particular user, "normally used" refers to a typical or common use of that class of product, regardless of the status of the particular user or of the way in which the particular user actually uses, or expects or is expected to use, the product. A product is a consumer product regardless of whether the product has substantial commercial, industrial or non-consumer uses, unless such uses represent the only significant mode of use of the product.'}),(0,x.jsx)("p",{children:'"Installation Information" for a User Product means any methods, procedures, authorization keys, or other information required to install and execute modified versions of a covered work in that User Product from a modified version of its Corresponding Source. The information must suffice to ensure that the continued functioning of the modified object code is in no case prevented or interfered with solely because modification has been made.'}),(0,x.jsx)("p",{children:"If you convey an object code work under this section in, or with, or specifically for use in, a User Product, and the conveying occurs as part of a transaction in which the right of possession and use of the User Product is transferred to the recipient in perpetuity or for a fixed term (regardless of how the transaction is characterized), the Corresponding Source conveyed under this section must be accompanied by the Installation Information. But this requirement does not apply if neither you nor any third party retains the ability to install modified object code on the User Product (for example, the work has been installed in ROM)."}),(0,x.jsx)("p",{children:"The requirement to provide Installation Information does not include a requirement to continue to provide support service, warranty, or updates for a work that has been modified or installed by the recipient, or for the User Product in which it has been modified or installed. Access to a network may be denied when the modification itself materially and adversely affects the operation of the network or violates the rules and protocols for communication across the network."}),(0,x.jsx)("p",{children:"Corresponding Source conveyed, and Installation Information provided, in accord with this section must be in a format that is publicly documented (and with an implementation available to the public in source code form), and must require no special password or key for unpacking, reading or copying."}),(0,x.jsx)("h2",{children:"7. Additional Terms."}),(0,x.jsx)("p",{children:'"Additional permissions" are terms that supplement the terms of this License by making exceptions from one or more of its conditions. Additional permissions that are applicable to the entire Program shall be treated as though they were included in this License, to the extent that they are valid under applicable law. If additional permissions apply only to part of the Program, that part may be used separately under those permissions, but the entire Program remains governed by this License without regard to the additional permissions.'}),(0,x.jsx)("p",{children:"When you convey a copy of a covered work, you may at your option remove any additional permissions from that copy, or from any part of it. (Additional permissions may be written to require their own removal in certain cases when you modify the work.) You may place additional permissions on material, added by you to a covered work, for which you have or can give appropriate copyright permission."}),(0,x.jsx)("p",{children:"Notwithstanding any other provision of this License, for material you add to a covered work, you may (if authorized by the copyright holders of that material) supplement the terms of this License with terms:"}),(0,x.jsx)("p",{children:(0,x.jsxs)("ul",{children:[(0,x.jsx)("li",{children:"a) Disclaiming warranty or limiting liability differently from the terms of sections 15 and 16 of this License; or"}),(0,x.jsx)("li",{children:"b) Requiring preservation of specified reasonable legal notices or author attributions in that material or in the Appropriate Legal Notices displayed by works containing it; or"}),(0,x.jsx)("li",{children:"c) Prohibiting misrepresentation of the origin of that material, or requiring that modified versions of such material be marked in reasonable ways as different from the original version; or"}),(0,x.jsx)("li",{children:"d) Limiting the use for publicity purposes of names of licensors or authors of the material; or"}),(0,x.jsx)("li",{children:"e) Declining to grant rights under trademark law for use of some trade names, trademarks, or service marks; or"}),(0,x.jsx)("li",{children:"f) Requiring indemnification of licensors and authors of that material by anyone who conveys the material (or modified versions of it) with contractual assumptions of liability to the recipient, for any liability that these contractual assumptions directly impose on those licensors and authors."})]})}),(0,x.jsx)("p",{children:'All other non-permissive additional terms are considered "further restrictions" within the meaning of section 10. If the Program as you received it, or any part of it, contains a notice stating that it is governed by this License along with a term that is a further restriction, you may remove that term. If a license document contains a further restriction but permits relicensing or conveying under this License, you may add to a covered work material governed by the terms of that license document, provided that the further restriction does not survive such relicensing or conveying.'}),(0,x.jsx)("p",{children:"If you add terms to a covered work in accord with this section, you must place, in the relevant source files, a statement of the additional terms that apply to those files, or a notice indicating where to find the applicable terms."}),(0,x.jsx)("p",{children:"Additional terms, permissive or non-permissive, may be stated in the form of a separately written license, or stated as exceptions; the above requirements apply either way."}),(0,x.jsx)("h2",{children:"8. Termination."}),(0,x.jsx)("p",{children:"You may not propagate or modify a covered work except as expressly provided under this License. Any attempt otherwise to propagate or modify it is void, and will automatically terminate your rights under this License (including any patent licenses granted under the third paragraph of section 11)."}),(0,x.jsx)("p",{children:"However, if you cease all violation of this License, then your license from a particular copyright holder is reinstated (a) provisionally, unless and until the copyright holder explicitly and finally terminates your license, and (b) permanently, if the copyright holder fails to notify you of the violation by some reasonable means prior to 60 days after the cessation."}),(0,x.jsx)("p",{children:"Moreover, your license from a particular copyright holder is reinstated permanently if the copyright holder notifies you of the violation by some reasonable means, this is the first time you have received notice of violation of this License (for any work) from that copyright holder, and you cure the violation prior to 30 days after your receipt of the notice."}),(0,x.jsx)("p",{children:"Termination of your rights under this section does not terminate the licenses of parties who have received copies or rights from you under this License. If your rights have been terminated and not permanently reinstated, you do not qualify to receive new licenses for the same material under section 10."}),(0,x.jsx)("h2",{children:"9. Acceptance Not Required for Having Copies."}),(0,x.jsx)("p",{children:"You are not required to accept this License in order to receive or run a copy of the Program. Ancillary propagation of a covered work occurring solely as a consequence of using peer-to-peer transmission to receive a copy likewise does not require acceptance. However, nothing other than this License grants you permission to propagate or modify any covered work. These actions infringe copyright if you do not accept this License. Therefore, by modifying or propagating a covered work, you indicate your acceptance of this License to do so."}),(0,x.jsx)("h2",{children:"10. Automatic Licensing of Downstream Recipients."}),(0,x.jsx)("p",{children:"Each time you convey a covered work, the recipient automatically receives a license from the original licensors, to run, modify and propagate that work, subject to this License. You are not responsible for enforcing compliance by third parties with this License."}),(0,x.jsx)("p",{children:'An "entity transaction" is a transaction transferring control of an organization, or substantially all assets of one, or subdividing an organization, or merging organizations. If propagation of a covered work results from an entity transaction, each party to that transaction who receives a copy of the work also receives whatever licenses to the work the party\'s predecessor in interest had or could give under the previous paragraph, plus a right to possession of the Corresponding Source of the work from the predecessor in interest, if the predecessor has it or can get it with reasonable efforts.'}),(0,x.jsx)("p",{children:"You may not impose any further restrictions on the exercise of the rights granted or affirmed under this License. For example, you may not impose a license fee, royalty, or other charge for exercise of rights granted under this License, and you may not initiate litigation (including a cross-claim or counterclaim in a lawsuit) alleging that any patent claim is infringed by making, using, selling, offering for sale, or importing the Program or any portion of it."}),(0,x.jsx)("h2",{children:"11. Patents."}),(0,x.jsx)("p",{children:'A "contributor" is a copyright holder who authorizes use under this License of the Program or a work on which the Program is based. The work thus licensed is called the contributor\'s "contributor version".'}),(0,x.jsx)("p",{children:'A contributor\'s "essential patent claims" are all patent claims owned or controlled by the contributor, whether already acquired or hereafter acquired, that would be infringed by some manner, permitted by this License, of making, using, or selling its contributor version, but do not include claims that would be infringed only as a consequence of further modification of the contributor version. For purposes of this definition, "control" includes the right to grant patent sublicenses in a manner consistent with the requirements of this License.'}),(0,x.jsx)("p",{children:"Each contributor grants you a non-exclusive, worldwide, royalty-free patent license under the contributor's essential patent claims, to make, use, sell, offer for sale, import and otherwise run, modify and propagate the contents of its contributor version."}),(0,x.jsx)("p",{children:'In the following three paragraphs, a "patent license" is any express agreement or commitment, however denominated, not to enforce a patent (such as an express permission to practice a patent or covenant not to sue for patent infringement). To "grant" such a patent license to a party means to make such an agreement or commitment not to enforce a patent against the party.'}),(0,x.jsx)("p",{children:'If you convey a covered work, knowingly relying on a patent license, and the Corresponding Source of the work is not available for anyone to copy, free of charge and under the terms of this License, through a publicly available network server or other readily accessible means, then you must either (1) cause the Corresponding Source to be so available, or (2) arrange to deprive yourself of the benefit of the patent license for this particular work, or (3) arrange, in a manner consistent with the requirements of this License, to extend the patent license to downstream recipients. "Knowingly relying" means you have actual knowledge that, but for the patent license, your conveying the covered work in a country, or your recipient\'s use of the covered work in a country, would infringe one or more identifiable patents in that country that you have reason to believe are valid.'}),(0,x.jsx)("p",{children:"If, pursuant to or in connection with a single transaction or arrangement, you convey, or propagate by procuring conveyance of, a covered work, and grant a patent license to some of the parties receiving the covered work authorizing them to use, propagate, modify or convey a specific copy of the covered work, then the patent license you grant is automatically extended to all recipients of the covered work and works based on it."}),(0,x.jsx)("p",{children:'A patent license is "discriminatory" if it does not include within the scope of its coverage, prohibits the exercise of, or is conditioned on the non-exercise of one or more of the rights that are specifically granted under this License. You may not convey a covered work if you are a party to an arrangement with a third party that is in the business of distributing software, under which you make payment to the third party based on the extent of your activity of conveying the work, and under which the third party grants, to any of the parties who would receive the covered work from you, a discriminatory patent license (a) in connection with copies of the covered work conveyed by you (or copies made from those copies), or (b) primarily for and in connection with specific products or compilations that contain the covered work, unless you entered into that arrangement, or that patent license was granted, prior to 28 March 2007.'}),(0,x.jsx)("p",{children:"Nothing in this License shall be construed as excluding or limiting any implied license or other defenses to infringement that may otherwise be available to you under applicable patent law."}),(0,x.jsx)("h2",{children:"12. No Surrender of Others' Freedom."}),(0,x.jsx)("p",{children:"If conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot convey a covered work so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not convey it at all. For example, if you agree to terms that obligate you to collect a royalty for further conveying from those to whom you convey the Program, the only way you could satisfy both those terms and this License would be to refrain entirely from conveying the Program."}),(0,x.jsx)("h2",{children:"13. Remote Network Interaction; Use with the GNU General Public License."}),(0,x.jsx)("p",{children:"Notwithstanding any other provision of this License, if you modify the Program, your modified version must prominently offer all users interacting with it remotely through a computer network (if your version supports such interaction) an opportunity to receive the Corresponding Source of your version by providing access to the Corresponding Source from a network server at no charge, through some standard or customary means of facilitating copying of software. This Corresponding Source shall include the Corresponding Source for any work covered by version 3 of the GNU General Public License that is incorporated pursuant to the following paragraph."}),(0,x.jsx)("p",{children:"Notwithstanding any other provision of this License, you have permission to link or combine any covered work with a work licensed under version 3 of the GNU General Public License into a single combined work, and to convey the resulting work. The terms of this License will continue to apply to the part which is the covered work, but the work with which it is combined will remain governed by version 3 of the GNU General Public License."}),(0,x.jsx)("h2",{children:"14. Revised Versions of this License."}),(0,x.jsx)("p",{children:"The Free Software Foundation may publish revised and/or new versions of the GNU Affero General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns."}),(0,x.jsx)("p",{children:'Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation.'}),(0,x.jsx)("p",{children:'Each version is given a distinguishing version number. If the Program specifies that a certain numbered version of the GNU Affero General Public License "or any later version" applies to it, you have the option of following the terms and conditions either of that numbered version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of the GNU Affero General Public License, you may choose any version ever published by the Free Software Foundation.'}),(0,x.jsx)("p",{children:"Later license versions may give you additional or different permissions. However, no additional obligations are imposed on any author or copyright holder as a result of your choosing to follow a later version."}),(0,x.jsx)("h2",{children:"15. Disclaimer of Warranty."}),(0,x.jsx)("p",{children:'THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.'}),(0,x.jsx)("h2",{children:"16. Limitation of Liability."}),(0,x.jsx)("p",{children:"IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES."}),(0,x.jsx)("h2",{children:"17. Interpretation of Sections 15 and 16."}),(0,x.jsx)("p",{children:"If the disclaimer of warranty and limitation of liability provided above cannot be given local legal effect according to their terms, reviewing courts shall apply local law that most closely approximates an absolute waiver of all civil liability in connection with the Program, unless a warranty or assumption of liability accompanies a copy of the Program in return for a fee."}),(0,x.jsx)("p",{children:"END OF TERMS AND CONDITIONS"}),(0,x.jsx)("h2",{children:"How to Apply These Terms to Your New Programs"}),(0,x.jsx)("p",{children:"If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms."}),(0,x.jsx)("p",{children:'To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively state the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.'}),(0,x.jsx)("p",{children:(0,x.jsx)("code",{children:" Copyright (C) This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details. You should have received a copy of the GNU Affero General Public License along with this program. If not, see ."})}),(0,x.jsx)("p",{children:"Also add information on how to contact you by electronic and paper mail."}),(0,x.jsx)("p",{children:'If your software can interact with users remotely through a computer network, you should also make sure that it provides a way for users to get its source. For example, if your program is a web application, its interface could display a "Source" link that leads users to an archive of the code. There are many ways you could offer source, and different solutions will be better for different programs; see section 13 for the specific requirements.'}),(0,x.jsxs)("p",{children:['You should also get your employer (if you work as a programmer) or school, if any, to sign a "copyright disclaimer" for the program, if necessary. For more information on this, and how to apply and follow the GNU AGPL, see <',(0,x.jsx)("a",{target:"_blank",href:"https://www.gnu.org/licenses/",rel:"noreferrer",children:"https://www.gnu.org/licenses/"}),">."]})]})]})]}):null})),w=t(81207),v=t(13048),j=t(38442),k=t(56087),L=t(4942),S=t(18384),N=t(13967),T=t(20068),A=t(95193),I="community",E="standard",C="enterprise",P=[{label:"Unit Price",isHeader:!0},{desc:"Features",featureTitleRow:!0},{desc:"License"},{desc:"Software Release"},{desc:"SLA"},{desc:"Support"},{desc:"Critical Security and Bug Detection"},{desc:"Panic Button"},{desc:"Health Diagnostics"},{desc:"Annual Architecture Review"},{desc:"Annual Performance Review"},{desc:"Indemnification"},{desc:"Security and Policy Review"}],R=[{label:"Community",isHeader:!0},{id:"com_feat_title",featureTitleRow:!0},{id:"com_license",label:"GNU AGPL v3",isOssLicenseLink:!0},{id:"com_release",label:"Upstream"},{id:"com_sla",label:"No SLA"},{id:"com_support",label:"Community:",detail:"Public Slack Channel + Github Issues"},{id:"com_security",label:"Self"},{id:"com_panic",xsLabel:"N/A"},{id:"com_diag",xsLabel:"N/A"},{id:"com_arch",xsLabel:"N/A"},{id:"com_perf",xsLabel:"N/A"},{id:"com_indemnity",xsLabel:"N/A"},{id:"com_sec_policy",xsLabel:"N/A"}],Z=[{label:"Standard",isHeader:!0},{id:"std_feat_title",featureTitleRow:!0},{id:"std_license",label:"Commercial"},{id:"std_release",label:"1 Year Long Term Support"},{id:"std_sla",label:"<48 Hours",detail:"(Local Business Hours)"},{id:"std_support",label:"L4 Direct Engineering",detail:"support via SUBNET"},{id:"std_security",label:"Continuous Scan and Alert"},{id:"std_panic",label:"1 Per year"},{id:"std_diag",label:"24/7/365"},{id:"std_arch",xsLabel:"N/A"},{id:"std_perf",xsLabel:"N/A"},{id:"std_indemnity",xsLabel:"N/A"},{id:"std_sec_policy",xsLabel:"N/A"}],O=[{label:"Enterprise",isHeader:!0},{id:"end_feat_title",featureTitleRow:!0},{id:"ent_license",label:"Commercial"},{id:"ent_release",label:"5 Years Long Term Support"},{id:"ent_sla",label:"<1 hour"},{id:"ent_support",label:"L4 Direct Engineering support via",detail:"SUBNET, Phone, Web Conference"},{id:"ent_security",label:"Continuous Scan and Alert"},{id:"ent_panic",label:"Unlimited"},{id:"ent_diag",label:"24/7/365"},{id:"ent_arch",yesIcon:!0},{id:"ent_perf",yesIcon:!0},{id:"ent_indemnity",yesIcon:!0},{id:"ent_sec_policy",yesIcon:!0}],M=[E,C],G=function(e){var o=e.isActive,t=e.isXsViewActive,i=e.title,r=e.onClick,n=e.children,a=i.toLowerCase();return(0,x.jsx)(d.Z,{className:(0,h.Z)((0,L.Z)({"plan-header":!0,active:o},"xs-active",t)),onClick:function(){r&&r(a)},sx:{display:"flex",alignItems:"flex-start",justifyContent:"center",flexFlow:"column",paddingLeft:"26px",borderLeft:"1px solid #eaeaea","& .plan-header":{display:"flex",alignItems:"center",justifyContent:"center",flexFlow:"column"},"& .title-block":{paddingTop:"20px",display:"flex",alignItems:"flex-start",flexFlow:"column",width:"100%",marginTop:"auto",marginBottom:"auto","& .title-main":{display:"flex",alignItems:"center",justifyContent:"center",flex:1},"& .min-icon":{marginLeft:"13px",height:"13px",width:"13px"},"& .title":{fontSize:"22px",fontWeight:600}},"& .price-line":{fontSize:"16px",fontWeight:600},"& .minimum-cost":{fontSize:"14px",fontWeight:400,marginBottom:"5px"},"& .open-source":{fontSize:"14px",display:"flex",marginBottom:"5px",alignItems:"center","& .min-icon":{marginRight:"8px",height:"12px",width:"12px"}},"& .cur-plan-text":{fontSize:"12px",textTransform:"uppercase"},"@media (max-width: 600px)":{cursor:"pointer","& .title-block":{"& .title":{fontSize:"14px",fontWeight:600}}},"&.active, &.active.xs-active":{borderTop:"3px solid #2781B0",color:"#ffffff","& .min-icon":{fill:"#ffffff"}},"&.active":{background:"#2781B0",color:"#ffffff"},"&.xs-active":{background:"#eaeaea"}},children:n})},F=function(e){return(0,x.jsx)(d.Z,{className:"feature-title",children:(0,x.jsx)(d.Z,{className:"feature-title-info",children:(0,x.jsxs)("div",{className:"xs-only",children:[e.featureLabel," "]})})})},D=function(e){return(0,x.jsx)(d.Z,{className:"feature-item",children:(0,x.jsxs)(d.Z,{className:"feature-item-info",children:[(0,x.jsxs)("div",{className:"xs-only",children:[e.featureLabel," "]}),(0,x.jsxs)(d.Z,{className:"plan-feature",children:[(0,x.jsx)("div",{children:e.label||""}),e.detail?(0,x.jsx)("div",{children:e.detail}):null,(0,x.jsxs)("div",{className:"xs-only",children:[e.xsLabel," "]})]})]})})},U=(0,c.Z)((function(e){return(0,s.Z)({link:{textDecoration:"underline !important",color:e.palette.info.main},linkButton:{fontFamily:'"Lato", sans-serif',fontWeight:"normal",textTransform:"none",fontSize:"inherit",height:0,padding:0,margin:0},tableContainer:{marginLeft:28},detailsContainerBorder:{borderLeft:"1px solid #e2e2e2"},detailsTitle:{fontSize:19,fontWeight:700,marginBottom:26,paddingTop:18,lineHeight:1}})}))((function(e){var o,t=e.licenseInfo,r=e.setLicenseModal,a=e.operatorMode,s=(0,N.Z)(),c=(0,A.Z)(s.breakpoints.down("sm")),l=t?null===t||void 0===t||null===(o=t.plan)||void 0===o?void 0:o.toLowerCase():"community",h=l===I,p=l===E,f=l===C,m=M.includes(l),g=(0,n.useState)(""),y=(0,i.Z)(g,2),b=y[0],w=y[1],j=b===I,k=b===E,L=b===C,U=function(e,o,t,i){var r="community"!==l?"https://subnet.min.io":e;return(0,x.jsx)(u.Z,{variant:t,color:"primary",target:"_blank",rel:"noopener noreferrer",sx:{"&.MuiButton-contained":{padding:0,paddingLeft:"8px",paddingRight:"8px"}},href:r,disabled:l!==I&&l!==i,onClick:function(e){e.preventDefault(),window.open("".concat(r,"?ref=").concat(a?"op":"con"),"_blank")},children:o})},B=function(e){w(e)};(0,n.useEffect)((function(){w(c?l||"community":"")}),[c,l]);var H="?ref=".concat(a?"op":"con"),z=P;return(0,x.jsx)(n.Fragment,{children:(0,x.jsxs)(d.Z,{sx:{border:"1px solid #eaeaea",borderTop:"0px",marginBottom:"45px",overflow:"auto",overflowY:"hidden","&::-webkit-scrollbar":{width:"5px",height:"5px"},"&::-webkit-scrollbar-track":{background:"#F0F0F0",borderRadius:0,boxShadow:"inset 0px 0px 0px 0px #F0F0F0"},"&::-webkit-scrollbar-thumb":{background:"#777474",borderRadius:0},"&::-webkit-scrollbar-thumb:hover":{background:"#5A6375"}},children:[(0,x.jsx)(d.Z,{className:"title-blue-bar",sx:{height:"8px",borderBottom:"8px solid rgb(6 48 83)"}}),(0,x.jsxs)(d.Z,{className:m?"paid-plans-only":"",sx:{display:"grid",margin:"0 1.5rem 0 1.5rem",gridTemplateColumns:{sm:"1fr 1fr 1fr 1fr",xs:"1fr 1fr 1fr"},"&.paid-plans-only":{display:"grid",gridTemplateColumns:"1fr 1fr 1fr"},"& .features-col":{flex:1,minWidth:"260px","@media (max-width: 600px)":{display:"none"}},"& .xs-only":{display:"none"},"& .button-box":{display:"flex",alignItems:"center",justifyContent:"center",padding:"5px 0px 5px 0px",borderLeft:"1px solid #eaeaea"},"& .plan-header":{height:"153px",borderBottom:"1px solid #eaeaea"},"& .feature-title":{height:"25px",paddingLeft:"26px",fontSize:"14px",background:"#E5E5E5","@media (max-width: 600px)":{"& .feature-title-info .xs-only":{display:"block"}}},"& .feature-name":{minHeight:"60px",padding:"5px",borderBottom:"1px solid #eaeaea",display:"flex",alignItems:"center",paddingLeft:"26px",fontSize:"14px",fontWeight:600},"& .feature-item":{display:"flex",flexFlow:"column",alignItems:"flex-start",justifyContent:"center",minHeight:"60px",padding:"5px",borderBottom:"1px solid #eaeaea",borderLeft:" 1px solid #eaeaea",paddingLeft:"26px",fontSize:"14px","@media (max-width: 900px)":{maxHeight:"30px",overflow:"hidden"},"& .link-text":{color:"#2781B0"},"&.icon-yes":{width:"15px",height:"15px"}},"& .feature-item-info":{flex:1,display:"flex",flexFlow:"column",alignItems:"flex-start",justifyContent:"space-around","@media (max-width: 600px)":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"space-between",width:"100%","& .xs-only":{display:"block",flex:1},"& .plan-feature":{flex:1,textAlign:"right",paddingRight:"10px"}}},"& .plan-col":{minWidth:"260px",flex:1},"& .active-plan-col":{background:"#FDFDFD 0% 0% no-repeat padding-box",boxShadow:" 0px 3px 20px #00000038","& .plan-header":{backgroundColor:"#2781B0"},"& .feature-title":{background:"#F7F7F7"},"& .title-main":{position:"relative",top:"-17px"},"& .cur-plan-text":{position:"relative",top:"-17px"}}},children:[(0,x.jsx)(d.Z,{className:"features-col",children:z.map((function(e){var o=e.featureTitleRow;return e.isHeader?m?(0,x.jsxs)(d.Z,{className:"plan-header",sx:{fontSize:"14px",paddingLeft:"26px",display:"flex",alignItems:"center",justifyContent:"flex-start","& .link-text":{color:"#2781B0"},"& .min-icon":{marginRight:"10px",color:"#2781B0",fill:"#2781B0"}},children:[(0,x.jsx)(v.jR,{}),(0,x.jsxs)("a",{href:"https://subnet.min.io/terms-and-conditions/".concat(l),rel:"noreferrer noopener",className:"link-text",children:["View License agreement ",(0,x.jsx)("br",{}),"for the registered plan."]})]},e.desc):(0,x.jsx)(d.Z,{className:"plan-header",sx:{fontSize:"14px",fontWeight:600,paddingLeft:"26px",display:"flex",alignItems:"center",justifyContent:"flex-start"},children:e.label},e.desc):o?(0,x.jsx)(d.Z,{className:"feature-title",sx:{fontSize:"14px",fontWeight:600,textTransform:"uppercase"},children:(0,x.jsxs)("div",{children:[e.desc," "]})},e.desc):(0,x.jsx)(d.Z,{className:"feature-name",children:(0,x.jsxs)("div",{children:[e.desc," "]})},e.desc)}))}),m?null:(0,x.jsxs)(d.Z,{className:"plan-col ".concat(h?"active-plan-col":"non-active-plan-col"),children:[R.map((function(e,o){var t=z[o].desc,i=e.featureTitleRow,n=e.isHeader,a=e.isOssLicenseLink;return n?(0,x.jsxs)(G,{isActive:h,isXsViewActive:j,title:"community",onClick:c?B:null,children:[(0,x.jsxs)(d.Z,{className:"title-block",children:[(0,x.jsxs)(d.Z,{className:"title-main",children:[(0,x.jsx)("div",{className:"title",children:"Community"}),(0,x.jsx)(T.Z,{title:"Designed for developers who are building open source applications in compliance with the AGPL v3 license and are able to support themselves. The community version of MinIO has all the functionality of the Standard and Enterprise editions.",placement:"top-start",children:(0,x.jsx)("div",{className:"tool-tip",children:(0,x.jsx)(v.M9,{})})})]}),(0,x.jsx)("div",{className:"cur-plan-text",children:h?"Current Plan":""})]}),(0,x.jsxs)("div",{className:"open-source",children:[(0,x.jsx)(v.JU,{}),"Open Source"]})]}):i?(0,x.jsx)(F,{featureLabel:t},e.id):a?(0,x.jsx)(d.Z,{className:"feature-item",sx:{display:"flex",alignItems:"center",justifyContent:"center"},children:(0,x.jsx)("a",{href:"https://www.gnu.org/licenses/agpl-3.0.en.html",rel:"noreferrer noopener",className:"link-text",onClick:function(e){e.preventDefault(),e.stopPropagation(),r&&r(!0)},children:"GNU AGPL v3"})},e.id):(0,x.jsx)(D,{featureLabel:t,label:e.label,detail:e.detail,xsLabel:e.xsLabel},e.id)})),(0,x.jsx)(d.Z,{className:"button-box",children:U("https://slack.min.io".concat(H),"Join Slack","outlined",I)})]}),(0,x.jsxs)(d.Z,{className:"plan-col ".concat(p?"active-plan-col":"non-active-plan-col"),children:[Z.map((function(e,o){var t=z[o].desc,i=e.featureTitleRow;return e.isHeader?(0,x.jsxs)(G,{isActive:p,isXsViewActive:k,title:"Standard",onClick:c?B:null,children:[(0,x.jsxs)(d.Z,{className:"title-block",children:[(0,x.jsxs)(d.Z,{className:"title-main",children:[(0,x.jsx)("div",{className:"title",children:"Standard"}),(0,x.jsx)(T.Z,{title:"Designed for customers who require a commercial license and can mostly self-support but want the peace of mind that comes with the MinIO Subscription Network\u2019s suite of operational capabilities and direct-to-engineer interaction. The Standard version is fully featured but with SLA limitations. ",placement:"top-start",children:(0,x.jsx)("div",{className:"tool-tip",children:(0,x.jsx)(v.M9,{})})})]}),(0,x.jsx)("div",{className:"cur-plan-text",children:p?"Current Plan":""})]}),(0,x.jsx)("div",{className:"price-line",children:"$10 per TiB per month"}),(0,x.jsx)("div",{className:"minimum-cost",children:"(Minimum of 100TiB)"})]}):i?(0,x.jsx)(F,{featureLabel:t},e.id):(0,x.jsx)(D,{featureLabel:t,label:e.label,detail:e.detail,xsLabel:e.xsLabel},e.id)})),(0,x.jsx)(d.Z,{className:"button-box",children:U("https://min.io/signup".concat(H),M.includes(l)?"Login to SUBNET":"Subscribe","contained",E)})]}),(0,x.jsxs)(d.Z,{className:"plan-col ".concat(f?"active-plan-col":"non-active-plan-col"),children:[O.map((function(e,o){var t=z[o].desc,i=e.featureTitleRow,r=e.isHeader,n=e.yesIcon;return r?(0,x.jsxs)(G,{isActive:f,isXsViewActive:L,title:"Enterprise",onClick:c?B:null,children:[(0,x.jsxs)(d.Z,{className:"title-block",children:[(0,x.jsxs)(d.Z,{className:"title-main",children:[(0,x.jsx)("div",{className:"title",children:"Enterprise"}),(0,x.jsx)(T.Z,{title:"Designed for mission critical environments where both a license and strict SLAs are required. The Enterprise version is fully featured but comes with additional capabilities. ",placement:"top-start",children:(0,x.jsx)("div",{className:"tool-tip",children:(0,x.jsx)(v.M9,{})})})]}),(0,x.jsx)("div",{className:"cur-plan-text",children:f?"Current Plan":""})]}),(0,x.jsx)("div",{className:"price-line",children:"$20 per TiB per month"}),(0,x.jsx)("div",{className:"minimum-cost",children:"(Minimum of 100TiB)"})]}):i?(0,x.jsx)(F,{featureLabel:t},e.id):n?(0,x.jsx)(d.Z,{className:"feature-item",children:(0,x.jsxs)(d.Z,{className:"feature-item-info",children:[(0,x.jsx)("div",{className:"xs-only",children:" "}),(0,x.jsx)(d.Z,{className:"plan-feature",children:(0,x.jsx)(S.Z,{})})]})}):(0,x.jsx)(D,{featureLabel:t,label:e.label,detail:e.detail},e.id)})),(0,x.jsx)(d.Z,{className:"button-box",children:U("https://min.io/signup".concat(H),M.includes(l)?"Login to SUBNET":"Subscribe","contained",C)})]})]})]})})})),B=t(91523),H=t(74794),z=t(74440),_=(0,a.$j)((function(e){return{operatorMode:e.system.operatorMode}}),null)((0,c.Z)((function(e){return(0,s.Z)((0,r.Z)((0,r.Z)({pageTitle:{backgroundColor:"rgb(250,250,252)",marginTop:40,border:"1px solid #E5E5E5",paddingTop:33,paddingLeft:28,paddingBottom:30,paddingRight:28,fontSize:16,fontWeight:"bold","& ul":{marginLeft:"-25px",listStyleType:"square",color:"#1C5A8D",fontSize:"16px","& li":{float:"left",fontSize:14,marginRight:40},"& li::before":{color:"red",content:"\u2022"}}},licDet:{fontSize:11,color:"#5E5E5E"},linkMore:{marginTop:10,marginBottom:20},chooseFlavorText:{color:"#000000",fontSize:14},link:{textDecoration:"underline !important",color:e.palette.info.main},linkButton:{fontFamily:'"Lato", sans-serif',fontWeight:"normal",textTransform:"none",fontSize:"inherit",height:0,padding:0,margin:0},openSourcePolicy:{fontSize:14,color:"#1C5A8D",fontWeight:"bold"},licenseInfo:{position:"relative"},licenseInfoTitle:{textTransform:"none",color:"#999999",fontSize:11},licenseInfoValue:{textTransform:"none",fontSize:14,fontWeight:"bold"},subnetSubTitle:{fontSize:14},verifiedIcon:{width:96,position:"absolute",right:0,bottom:29},loadingLoginStrategy:{textAlign:"center"}},(0,m.Bz)(e.spacing(4))),{},{mainContainer:{border:"1px solid #EAEDEE",padding:40,margin:40},icon:{color:e.palette.primary.main,fontSize:16,fontWeight:"bold",marginBottom:20,"& .min-icon":{width:44,height:44,marginRight:15}}}))}))((function(e){var o=e.classes,t=e.operatorMode,r=(0,n.useState)(!1),a=(0,i.Z)(r,2),s=a[0],c=a[1],m=(0,n.useState)(!1),y=(0,i.Z)(m,2),L=y[0],S=y[1],N=(0,n.useState)(),T=(0,i.Z)(N,2),A=T[0],I=T[1],E=(0,n.useState)(0),C=(0,i.Z)(E,2),P=C[0],R=C[1],Z=(0,n.useState)(!1),O=(0,i.Z)(Z,2),M=O[0],G=O[1],F=(0,n.useState)(!0),D=(0,i.Z)(F,2),_=D[0],W=D[1];(0,n.useState)(!1);var Y=(0,n.useState)(!1),q=(0,i.Z)(Y,2),V=q[0],X=q[1],Q=(0,j.F)(k.C3,k.LC[k.gA.LICENSE],!0),K=(0,n.useCallback)((function(){M||(Q?(G(!0),w.Z.invoke("GET","/api/v1/subnet/info").then((function(e){e&&("STANDARD"===e.plan?R(1):"ENTERPRISE"===e.plan?R(2):R(1),I(e)),X(!0),G(!1)})).catch((function(){X(!1),G(!1)}))):G(!1))}),[M,Q]);if((0,n.useEffect)((function(){_&&(K(),W(!1))}),[K,_,W]),M)return(0,x.jsx)(p.ZP,{item:!0,xs:12,children:(0,x.jsx)(l.Z,{})});var $=A&&V;return(0,x.jsxs)(n.Fragment,{children:[(0,x.jsx)(g.Z,{label:"License"}),(0,x.jsxs)(H.Z,{children:[(0,x.jsx)(p.ZP,{item:!0,xs:12,children:$&&(0,x.jsx)(z.Z,{email:null===A||void 0===A?void 0:A.email})}),!$&&(0,x.jsxs)(p.ZP,{item:!0,xs:12,sx:{display:"flex",flexFlow:"column"},children:[(0,x.jsxs)(d.Z,{sx:{padding:"25px",border:"1px solid #eaeaea",display:"flex",alignItems:"center",justifyContent:"center",flexFlow:{sm:"row",xs:"column"}},children:[(0,x.jsxs)(d.Z,{sx:{marginRight:"8px",fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center","& .min-icon":{width:"83px",height:"14px",marginLeft:"5px",marginRight:"5px"}},children:["Are you already a customer of ",(0,x.jsx)(v.BH,{}),"?"]}),(0,x.jsxs)(B.rU,{to:k.gA.REGISTER_SUPPORT,className:o.link,style:{fontSize:"14px",display:"flex",alignItems:"center"},children:["Register this cluster"," ",(0,x.jsx)(v.YI,{style:{width:"13px",height:"8px",marginLeft:"5px",marginTop:"3px"}})]})]}),(0,x.jsxs)("div",{className:o.pageTitle,children:[(0,x.jsxs)(d.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{height:"18px",width:"18px"}},children:[(0,x.jsx)(v.M9,{}),(0,x.jsx)(d.Z,{sx:{fontSize:"16px",marginLeft:"15px"},children:"Choosing between GNU AGPL v3 and Commercial License"})]}),(0,x.jsx)("br",{}),(0,x.jsx)(d.Z,{sx:{fontSize:"14px",fontWeight:"normal",lineHeight:"17px"},children:"If you are building proprietary applications, you may want to choose the commercial license included as part of the Standard and Enterprise subscription plans. Applications must otherwise comply with all the GNU AGPLv3 License & Trademark obligations. Follow the links below to learn more about the compliance policy."}),(0,x.jsxs)(d.Z,{component:"ul",children:[(0,x.jsx)("li",{children:(0,x.jsx)("a",{href:"https://min.io/compliance?ref=".concat(t?"op":"con"),className:o.openSourcePolicy,target:"_blank",rel:"nofollow noopener noreferrer",children:"Learn more about GNU AGPL v3"})}),(0,x.jsx)("li",{children:(0,x.jsx)("a",{href:"https://min.io/logo?ref=".concat(t?"op":"con"),className:o.openSourcePolicy,target:"_blank",rel:"nofollow noopener noreferrer",children:"MinIO Trademark Compliance"})})]}),(0,x.jsx)("div",{style:{clear:"both"}})]}),(0,x.jsx)(d.Z,{sx:{padding:"40px 0px 40px 0px",fontSize:"16px",fontWeight:600},children:"MinIO License and Support plans"})]}),(0,x.jsx)(U,{activateProductModal:s,closeModalAndFetchLicenseInfo:function(){c(!1),K()},licenseInfo:A,setLicenseModal:S,operatorMode:t,currentPlanID:P,setActivateProductModal:c}),(0,x.jsx)(p.ZP,{item:!0,xs:12,children:(0,x.jsx)(p.ZP,{container:!0,marginTop:"35px",sx:{border:"1px solid #eaeaea",padding:"15px"},children:(0,x.jsx)(p.ZP,{item:!0,xs:12,lg:12,children:(0,x.jsxs)(n.Fragment,{children:[(0,x.jsx)(b,{open:L,closeModal:function(){return S(!1)}}),(0,x.jsxs)(d.Z,{sx:{display:"flex",marginBottom:"15px",flexFlow:{sm:"row",xs:"column"},alignItems:{xs:"flex-start",sm:"center"}},children:[(0,x.jsx)(d.Z,{children:(0,x.jsx)(v.DJ,{})}),(0,x.jsxs)(d.Z,{sx:{flex:1,marginLeft:{sm:"15px",xs:"0"}},children:[(0,x.jsx)("div",{children:" GNU Affero General Public License"}),(0,x.jsx)("div",{className:o.licDet,children:"Version 3. 19 November 2007"})]}),(0,x.jsx)(d.Z,{children:(0,x.jsx)("img",{src:"/agpl-logo.svg",height:40,alt:"agpl"})})]}),(0,x.jsxs)(p.ZP,{container:!0,children:[(0,x.jsx)(f.Z,{children:"The GNU Affero General Public License is a free, copyleft license for software and other kinds of works, specifically designed to ensure cooperation with the Community in the case of network server software."}),(0,x.jsx)("br",{}),(0,x.jsx)(f.Z,{children:"The licenses for most software and other practical works are designed to take away your freedom to share and change the works. By contrast, our General Public Licenses are intended to guarantee your freedom to share and change all versions of a program--to make sure it remains free software for all its users."}),(0,x.jsx)("div",{className:o.linkMore,children:(0,x.jsxs)(u.Z,{variant:"text",color:"primary",size:"small",className:(0,h.Z)(o.link,o.linkButton),onClick:function(){return S(!0)},children:["Read more"," ",(0,x.jsx)(v.YI,{style:{width:"13px",height:"8px",marginLeft:"5px",marginTop:"3px"}})]})})]})]})})})})]})]})})))},74440:function(e,o,t){t(72791);var i=t(64554),r=t(97506),n=t(80184);o.Z=function(e){var o=e.email,t=void 0===o?"":o;return(0,n.jsxs)(i.Z,{sx:{height:"67px",color:"#ffffff",display:"flex",position:"relative",top:"-30px",left:"-32px",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,n.jsxs)(i.Z,{className:"registered-box",children:[(0,n.jsx)(i.Z,{sx:{fontSize:"16px",fontWeight:400},children:"Register status:"}),(0,n.jsxs)(i.Z,{className:"reg-badge-box",children:[(0,n.jsx)(r.Z,{}),(0,n.jsx)(i.Z,{sx:{fontWeight:600},children:"Registered"})]})]}),(0,n.jsxs)(i.Z,{className:"registered-acc-box",sx:{alignItems:"center",justifyContent:"flex-start",display:{sm:"flex",xs:"none"}},children:[(0,n.jsx)(i.Z,{sx:{fontSize:"16px",fontWeight:400},children:"Registered to:"}),(0,n.jsx)(i.Z,{sx:{marginLeft:"8px",fontWeight:600},children:t})]})]})}},18384:function(e,o,t){var i=t(95318);o.Z=void 0;var r=i(t(45649)),n=t(80184),a=(0,r.default)((0,n.jsx)("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckCircle");o.Z=a},29823:function(e,o,t){var i=t(95318);o.Z=void 0;var r=i(t(45649)),n=t(80184),a=(0,r.default)((0,n.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");o.Z=a},95193:function(e,o,t){var i;t.d(o,{Z:function(){return p}});var r=t(70885),n=t(72791),a=t(69120),s=t(33073),c=t(40162);function l(e,o,t,i,a){var s="undefined"!==typeof window&&"undefined"!==typeof window.matchMedia,l=n.useState((function(){return a&&s?t(e).matches:i?i(e).matches:o})),d=(0,r.Z)(l,2),h=d[0],p=d[1];return(0,c.Z)((function(){var o=!0;if(s){var i=t(e),r=function(){o&&p(i.matches)};return r(),i.addListener(r),function(){o=!1,i.removeListener(r)}}}),[e,t,s]),h}var d=(i||(i=t.t(n,2))).useSyncExternalStore;function h(e,o,t,i){var a=n.useCallback((function(){return o}),[o]),s=n.useMemo((function(){if(null!==i){var o=i(e).matches;return function(){return o}}return a}),[a,e,i]),c=n.useMemo((function(){if(null===t)return[a,function(){return function(){}}];var o=t(e);return[function(){return o.matches},function(e){return o.addListener(e),function(){o.removeListener(e)}}]}),[a,t,e]),l=(0,r.Z)(c,2),h=l[0],p=l[1];return d(p,h,s)}function p(e){var o=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},t=(0,a.Z)(),i="undefined"!==typeof window&&"undefined"!==typeof window.matchMedia,r=(0,s.Z)({name:"MuiUseMediaQuery",props:o,theme:t}),n=r.defaultMatches,c=void 0!==n&&n,p=r.matchMedia,u=void 0===p?i?window.matchMedia:null:p,f=r.ssrMatchMedia,m=void 0===f?null:f,g=r.noSsr;var y="function"===typeof e?e(t):e;y=y.replace(/^@media( ?)/m,"");var x=void 0!==d?h:l,b=x(y,c,u,m,g);return b}}}]); +//# sourceMappingURL=1836.6c654dc4.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1836.ea648525.chunk.js.map b/portal-ui/build/static/js/1836.6c654dc4.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/1836.ea648525.chunk.js.map rename to portal-ui/build/static/js/1836.6c654dc4.chunk.js.map index eac6de8bc..1c46d938a 100644 --- a/portal-ui/build/static/js/1836.ea648525.chunk.js.map +++ b/portal-ui/build/static/js/1836.6c654dc4.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/1836.ea648525.chunk.js","mappings":"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","sources":["screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/License/LicenseModal.tsx","screens/Console/License/utils.ts","screens/Console/License/LicensePlans.tsx","screens/Console/License/License.tsx","screens/Console/Support/RegistrationStatusBanner.tsx","../node_modules/@mui/icons-material/CheckCircle.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/material/useMediaQuery/useMediaQuery.js"],"sourcesContent":["import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
\n \n \n {children}\n \n \n
\n );\n};\n\nexport default withStyles(styles)(PageLayout);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
\n {titleIcon} {title}\n
\n
\n \n \n \n
\n
\n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
\n {operatorMode ? : }\n
\n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { containerForHeader } from \"../Common/FormComponents/common/styleLibrary\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport Typography from \"@mui/material/Typography\";\nimport React from \"react\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n pageTitle: {\n fontSize: 18,\n marginBottom: 20,\n textAlign: \"center\",\n },\n pageSubTitle: {\n textAlign: \"center\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface ILicenseModalProps {\n classes: any;\n open: boolean;\n closeModal: () => void;\n}\n\nconst LicenseModal = ({ classes, open, closeModal }: ILicenseModalProps) => {\n return open ? (\n {\n closeModal();\n }}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n {\" \"}\n \n \n \n GNU AFFERO GENERAL PUBLIC LICENSE\n \n

Version 3, 19 November 2007

\n
\n \n

\n Copyright © 2007 Free Software Foundation, Inc. <\n \n https://fsf.org/\n \n >\n

\n

\n {\" \"}\n Everyone is permitted to copy and distribute verbatim copies of this\n license document, but changing it is not allowed.\n

\n

Preamble

\n

\n The GNU Affero General Public License is a free, copyleft license\n for software and other kinds of works, specifically designed to\n ensure cooperation with the community in the case of network server\n software.\n

\n\n

\n The licenses for most software and other practical works are\n designed to take away your freedom to share and change the works. By\n contrast, our General Public Licenses are intended to guarantee your\n freedom to share and change all versions of a program--to make sure\n it remains free software for all its users.\n

\n\n

\n When we speak of free software, we are referring to freedom, not\n price. Our General Public Licenses are designed to make sure that\n you have the freedom to distribute copies of free software (and\n charge for them if you wish), that you receive source code or can\n get it if you want it, that you can change the software or use\n pieces of it in new free programs, and that you know you can do\n these things.\n

\n\n

\n Developers that use our General Public Licenses protect your rights\n with two steps: (1) assert copyright on the software, and (2) offer\n you this License which gives you legal permission to copy,\n distribute and/or modify the software.\n

\n\n

\n A secondary benefit of defending all users' freedom is that\n improvements made in alternate versions of the program, if they\n receive widespread use, become available for other developers to\n incorporate. Many developers of free software are heartened and\n encouraged by the resulting cooperation. However, in the case of\n software used on network servers, this result may fail to come\n about. The GNU General Public License permits making a modified\n version and letting the public access it on a server without ever\n releasing its source code to the public.\n

\n\n

\n The GNU Affero General Public License is designed specifically to\n ensure that, in such cases, the modified source code becomes\n available to the community. It requires the operator of a network\n server to provide the source code of the modified version running\n there to the users of that server. Therefore, public use of a\n modified version, on a publicly accessible server, gives the public\n access to the source code of the modified version.\n

\n\n

\n An older license, called the Affero General Public License and\n published by Affero, was designed to accomplish similar goals. This\n is a different license, not a version of the Affero GPL, but Affero\n has released a new version of the Affero GPL which permits\n relicensing under this license.\n

\n\n

\n The precise terms and conditions for copying, distribution and\n modification follow.\n

\n\n

TERMS AND CONDITIONS

\n

0. Definitions.

\n

\n "This License" refers to version 3 of the GNU Affero\n General Public License.\n

\n\n

\n "Copyright" also means copyright-like laws that apply to\n other kinds of works, such as semiconductor masks.\n

\n\n

\n "The Program" refers to any copyrightable work licensed\n under this License. Each licensee is addressed as "you".\n "Licensees" and "recipients" may be individuals\n or organizations.\n

\n\n

\n To "modify" a work means to copy from or adapt all or part\n of the work in a fashion requiring copyright permission, other than\n the making of an exact copy. The resulting work is called a\n "modified version" of the earlier work or a work\n "based on" the earlier work.\n

\n\n

\n A "covered work" means either the unmodified Program or a\n work based on the Program.\n

\n\n

\n To "propagate" a work means to do anything with it that,\n without permission, would make you directly or secondarily liable\n for infringement under applicable copyright law, except executing it\n on a computer or modifying a private copy. Propagation includes\n copying, distribution (with or without modification), making\n available to the public, and in some countries other activities as\n well.\n

\n\n

\n To "convey" a work means any kind of propagation that\n enables other parties to make or receive copies. Mere interaction\n with a user through a computer network, with no transfer of a copy,\n is not conveying.\n

\n\n

\n An interactive user interface displays "Appropriate Legal\n Notices" to the extent that it includes a convenient and\n prominently visible feature that (1) displays an appropriate\n copyright notice, and (2) tells the user that there is no warranty\n for the work (except to the extent that warranties are provided),\n that licensees may convey the work under this License, and how to\n view a copy of this License. If the interface presents a list of\n user commands or options, such as a menu, a prominent item in the\n list meets this criterion.\n

\n\n

1. Source Code.

\n

\n The "source code" for a work means the preferred form of\n the work for making modifications to it. "Object code"\n means any non-source form of a work.\n

\n\n

\n A "Standard Interface" means an interface that either is\n an official standard defined by a recognized standards body, or, in\n the case of interfaces specified for a particular programming\n language, one that is widely used among developers working in that\n language.\n

\n\n

\n The "System Libraries" of an executable work include\n anything, other than the work as a whole, that (a) is included in\n the normal form of packaging a Major Component, but which is not\n part of that Major Component, and (b) serves only to enable use of\n the work with that Major Component, or to implement a Standard\n Interface for which an implementation is available to the public in\n source code form. A "Major Component", in this context,\n means a major essential component (kernel, window system, and so on)\n of the specific operating system (if any) on which the executable\n work runs, or a compiler used to produce the work, or an object code\n interpreter used to run it.\n

\n\n

\n The "Corresponding Source" for a work in object code form\n means all the source code needed to generate, install, and (for an\n executable work) run the object code and to modify the work,\n including scripts to control those activities. However, it does not\n include the work's System Libraries, or general-purpose tools or\n generally available free programs which are used unmodified in\n performing those activities but which are not part of the work. For\n example, Corresponding Source includes interface definition files\n associated with source files for the work, and the source code for\n shared libraries and dynamically linked subprograms that the work is\n specifically designed to require, such as by intimate data\n communication or control flow between those subprograms and other\n parts of the work.\n

\n\n

\n The Corresponding Source need not include anything that users can\n regenerate automatically from other parts of the Corresponding\n Source.\n

\n\n

\n The Corresponding Source for a work in source code form is that same\n work.\n

\n\n

2. Basic Permissions.

\n

\n All rights granted under this License are granted for the term of\n copyright on the Program, and are irrevocable provided the stated\n conditions are met. This License explicitly affirms your unlimited\n permission to run the unmodified Program. The output from running a\n covered work is covered by this License only if the output, given\n its content, constitutes a covered work. This License acknowledges\n your rights of fair use or other equivalent, as provided by\n copyright law.\n

\n

\n You may make, run and propagate covered works that you do not\n convey, without conditions so long as your license otherwise remains\n in force. You may convey covered works to others for the sole\n purpose of having them make modifications exclusively for you, or\n provide you with facilities for running those works, provided that\n you comply with the terms of this License in conveying all material\n for which you do not control copyright. Those thus making or running\n the covered works for you must do so exclusively on your behalf,\n under your direction and control, on terms that prohibit them from\n making any copies of your copyrighted material outside their\n relationship with you.\n

\n

\n Conveying under any other circumstances is permitted solely under\n the conditions stated below. Sublicensing is not allowed; section 10\n makes it unnecessary.\n

\n

\n 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n

\n

\n No covered work shall be deemed part of an effective technological\n measure under any applicable law fulfilling obligations under\n article 11 of the WIPO copyright treaty adopted on 20 December 1996,\n or similar laws prohibiting or restricting circumvention of such\n measures.\n

\n

\n When you convey a covered work, you waive any legal power to forbid\n circumvention of technological measures to the extent such\n circumvention is effected by exercising rights under this License\n with respect to the covered work, and you disclaim any intention to\n limit operation or modification of the work as a means of enforcing,\n against the work's users, your or third parties' legal rights to\n forbid circumvention of technological measures.\n

\n

4. Conveying Verbatim Copies.

\n

\n You may convey verbatim copies of the Program's source code as you\n receive it, in any medium, provided that you conspicuously and\n appropriately publish on each copy an appropriate copyright notice;\n keep intact all notices stating that this License and any\n non-permissive terms added in accord with section 7 apply to the\n code; keep intact all notices of the absence of any warranty; and\n give all recipients a copy of this License along with the Program.\n

\n

\n You may charge any price or no price for each copy that you convey,\n and you may offer support or warranty protection for a fee.\n

\n

5. Conveying Modified Source Versions.

\n

\n You may convey a work based on the Program, or the modifications to\n produce it from the Program, in the form of source code under the\n terms of section 4, provided that you also meet all of these\n conditions:\n

\n

\n

    \n
  • \n a) The work must carry prominent notices stating that you\n modified it, and giving a relevant date.\n
  • \n
  • \n b) The work must carry prominent notices stating that it is\n released under this License and any conditions added under\n section 7. This requirement modifies the requirement in section\n 4 to "keep intact all notices".\n
  • \n
  • \n c) You must license the entire work, as a whole, under this\n License to anyone who comes into possession of a copy. This\n License will therefore apply, along with any applicable section\n 7 additional terms, to the whole of the work, and all its parts,\n regardless of how they are packaged. This License gives no\n permission to license the work in any other way, but it does not\n invalidate such permission if you have separately received it.\n
  • \n
  • \n d) If the work has interactive user interfaces, each must\n display Appropriate Legal Notices; however, if the Program has\n interactive interfaces that do not display Appropriate Legal\n Notices, your work need not make them do so.\n
  • \n
\n

\n

\n A compilation of a covered work with other separate and independent\n works, which are not by their nature extensions of the covered work,\n and which are not combined with it such as to form a larger program,\n in or on a volume of a storage or distribution medium, is called an\n "aggregate" if the compilation and its resulting copyright\n are not used to limit the access or legal rights of the\n compilation's users beyond what the individual works permit.\n Inclusion of a covered work in an aggregate does not cause this\n License to apply to the other parts of the aggregate.\n

\n

6. Conveying Non-Source Forms.

\n

\n You may convey a covered work in object code form under the terms of\n sections 4 and 5, provided that you also convey the machine-readable\n Corresponding Source under the terms of this License, in one of\n these ways:\n

\n

\n

    \n
  • \n a) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by the\n Corresponding Source fixed on a durable physical medium\n customarily used for software interchange.\n
  • \n
  • \n b) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by a\n written offer, valid for at least three years and valid for as\n long as you offer spare parts or customer support for that\n product model, to give anyone who possesses the object code\n either (1) a copy of the Corresponding Source for all the\n software in the product that is covered by this License, on a\n durable physical medium customarily used for software\n interchange, for a price no more than your reasonable cost of\n physically performing this conveying of source, or (2) access to\n copy the Corresponding Source from a network server at no\n charge.\n
  • \n
  • \n c) Convey individual copies of the object code with a copy of\n the written offer to provide the Corresponding Source. This\n alternative is allowed only occasionally and noncommercially,\n and only if you received the object code with such an offer, in\n accord with subsection 6b.\n
  • \n
  • \n d) Convey the object code by offering access from a designated\n place (gratis or for a charge), and offer equivalent access to\n the Corresponding Source in the same way through the same place\n at no further charge. You need not require recipients to copy\n the Corresponding Source along with the object code. If the\n place to copy the object code is a network server, the\n Corresponding Source may be on a different server (operated by\n you or a third party) that supports equivalent copying\n facilities, provided you maintain clear directions next to the\n object code saying where to find the Corresponding Source.\n Regardless of what server hosts the Corresponding Source, you\n remain obligated to ensure that it is available for as long as\n needed to satisfy these requirements.\n
  • \n
  • \n e) Convey the object code using peer-to-peer transmission,\n provided you inform other peers where the object code and\n Corresponding Source of the work are being offered to the\n general public at no charge under subsection 6d.\n
  • \n
\n

\n

\n A separable portion of the object code, whose source code is\n excluded from the Corresponding Source as a System Library, need not\n be included in conveying the object code work.\n

\n

\n A "User Product" is either (1) a "consumer\n product", which means any tangible personal property which is\n normally used for personal, family, or household purposes, or (2)\n anything designed or sold for incorporation into a dwelling. In\n determining whether a product is a consumer product, doubtful cases\n shall be resolved in favor of coverage. For a particular product\n received by a particular user, "normally used" refers to a\n typical or common use of that class of product, regardless of the\n status of the particular user or of the way in which the particular\n user actually uses, or expects or is expected to use, the product. A\n product is a consumer product regardless of whether the product has\n substantial commercial, industrial or non-consumer uses, unless such\n uses represent the only significant mode of use of the product.\n

\n

\n "Installation Information" for a User Product means any\n methods, procedures, authorization keys, or other information\n required to install and execute modified versions of a covered work\n in that User Product from a modified version of its Corresponding\n Source. The information must suffice to ensure that the continued\n functioning of the modified object code is in no case prevented or\n interfered with solely because modification has been made.\n

\n

\n If you convey an object code work under this section in, or with, or\n specifically for use in, a User Product, and the conveying occurs as\n part of a transaction in which the right of possession and use of\n the User Product is transferred to the recipient in perpetuity or\n for a fixed term (regardless of how the transaction is\n characterized), the Corresponding Source conveyed under this section\n must be accompanied by the Installation Information. But this\n requirement does not apply if neither you nor any third party\n retains the ability to install modified object code on the User\n Product (for example, the work has been installed in ROM).\n

\n

\n The requirement to provide Installation Information does not include\n a requirement to continue to provide support service, warranty, or\n updates for a work that has been modified or installed by the\n recipient, or for the User Product in which it has been modified or\n installed. Access to a network may be denied when the modification\n itself materially and adversely affects the operation of the network\n or violates the rules and protocols for communication across the\n network.\n

\n

\n Corresponding Source conveyed, and Installation Information\n provided, in accord with this section must be in a format that is\n publicly documented (and with an implementation available to the\n public in source code form), and must require no special password or\n key for unpacking, reading or copying.\n

\n

7. Additional Terms.

\n

\n "Additional permissions" are terms that supplement the\n terms of this License by making exceptions from one or more of its\n conditions. Additional permissions that are applicable to the entire\n Program shall be treated as though they were included in this\n License, to the extent that they are valid under applicable law. If\n additional permissions apply only to part of the Program, that part\n may be used separately under those permissions, but the entire\n Program remains governed by this License without regard to the\n additional permissions.\n

\n

\n When you convey a copy of a covered work, you may at your option\n remove any additional permissions from that copy, or from any part\n of it. (Additional permissions may be written to require their own\n removal in certain cases when you modify the work.) You may place\n additional permissions on material, added by you to a covered work,\n for which you have or can give appropriate copyright permission.\n

\n

\n Notwithstanding any other provision of this License, for material\n you add to a covered work, you may (if authorized by the copyright\n holders of that material) supplement the terms of this License with\n terms:\n

\n

\n

    \n
  • \n a) Disclaiming warranty or limiting liability differently from\n the terms of sections 15 and 16 of this License; or\n
  • \n
  • \n b) Requiring preservation of specified reasonable legal notices\n or author attributions in that material or in the Appropriate\n Legal Notices displayed by works containing it; or\n
  • \n
  • \n c) Prohibiting misrepresentation of the origin of that material,\n or requiring that modified versions of such material be marked\n in reasonable ways as different from the original version; or\n
  • \n
  • \n d) Limiting the use for publicity purposes of names of licensors\n or authors of the material; or\n
  • \n
  • \n e) Declining to grant rights under trademark law for use of some\n trade names, trademarks, or service marks; or\n
  • \n
  • \n f) Requiring indemnification of licensors and authors of that\n material by anyone who conveys the material (or modified\n versions of it) with contractual assumptions of liability to the\n recipient, for any liability that these contractual assumptions\n directly impose on those licensors and authors.\n
  • \n
\n

\n

\n All other non-permissive additional terms are considered\n "further restrictions" within the meaning of section 10.\n If the Program as you received it, or any part of it, contains a\n notice stating that it is governed by this License along with a term\n that is a further restriction, you may remove that term. If a\n license document contains a further restriction but permits\n relicensing or conveying under this License, you may add to a\n covered work material governed by the terms of that license\n document, provided that the further restriction does not survive\n such relicensing or conveying.\n

\n

\n If you add terms to a covered work in accord with this section, you\n must place, in the relevant source files, a statement of the\n additional terms that apply to those files, or a notice indicating\n where to find the applicable terms.\n

\n

\n Additional terms, permissive or non-permissive, may be stated in the\n form of a separately written license, or stated as exceptions; the\n above requirements apply either way.\n

\n

8. Termination.

\n

\n You may not propagate or modify a covered work except as expressly\n provided under this License. Any attempt otherwise to propagate or\n modify it is void, and will automatically terminate your rights\n under this License (including any patent licenses granted under the\n third paragraph of section 11).\n

\n

\n However, if you cease all violation of this License, then your\n license from a particular copyright holder is reinstated (a)\n provisionally, unless and until the copyright holder explicitly and\n finally terminates your license, and (b) permanently, if the\n copyright holder fails to notify you of the violation by some\n reasonable means prior to 60 days after the cessation.\n

\n

\n Moreover, your license from a particular copyright holder is\n reinstated permanently if the copyright holder notifies you of the\n violation by some reasonable means, this is the first time you have\n received notice of violation of this License (for any work) from\n that copyright holder, and you cure the violation prior to 30 days\n after your receipt of the notice.\n

\n\n

\n Termination of your rights under this section does not terminate the\n licenses of parties who have received copies or rights from you\n under this License. If your rights have been terminated and not\n permanently reinstated, you do not qualify to receive new licenses\n for the same material under section 10.\n

\n\n

9. Acceptance Not Required for Having Copies.

\n

\n You are not required to accept this License in order to receive or\n run a copy of the Program. Ancillary propagation of a covered work\n occurring solely as a consequence of using peer-to-peer transmission\n to receive a copy likewise does not require acceptance. However,\n nothing other than this License grants you permission to propagate\n or modify any covered work. These actions infringe copyright if you\n do not accept this License. Therefore, by modifying or propagating a\n covered work, you indicate your acceptance of this License to do so.\n

\n\n

10. Automatic Licensing of Downstream Recipients.

\n

\n Each time you convey a covered work, the recipient automatically\n receives a license from the original licensors, to run, modify and\n propagate that work, subject to this License. You are not\n responsible for enforcing compliance by third parties with this\n License.\n

\n\n

\n An "entity transaction" is a transaction transferring\n control of an organization, or substantially all assets of one, or\n subdividing an organization, or merging organizations. If\n propagation of a covered work results from an entity transaction,\n each party to that transaction who receives a copy of the work also\n receives whatever licenses to the work the party's predecessor in\n interest had or could give under the previous paragraph, plus a\n right to possession of the Corresponding Source of the work from the\n predecessor in interest, if the predecessor has it or can get it\n with reasonable efforts.\n

\n\n

\n You may not impose any further restrictions on the exercise of the\n rights granted or affirmed under this License. For example, you may\n not impose a license fee, royalty, or other charge for exercise of\n rights granted under this License, and you may not initiate\n litigation (including a cross-claim or counterclaim in a lawsuit)\n alleging that any patent claim is infringed by making, using,\n selling, offering for sale, or importing the Program or any portion\n of it.\n

\n\n

11. Patents.

\n

\n A "contributor" is a copyright holder who authorizes use\n under this License of the Program or a work on which the Program is\n based. The work thus licensed is called the contributor's\n "contributor version".\n

\n\n

\n A contributor's "essential patent claims" are all patent\n claims owned or controlled by the contributor, whether already\n acquired or hereafter acquired, that would be infringed by some\n manner, permitted by this License, of making, using, or selling its\n contributor version, but do not include claims that would be\n infringed only as a consequence of further modification of the\n contributor version. For purposes of this definition,\n "control" includes the right to grant patent sublicenses\n in a manner consistent with the requirements of this License.\n

\n\n

\n Each contributor grants you a non-exclusive, worldwide, royalty-free\n patent license under the contributor's essential patent claims, to\n make, use, sell, offer for sale, import and otherwise run, modify\n and propagate the contents of its contributor version.\n

\n\n

\n In the following three paragraphs, a "patent license" is\n any express agreement or commitment, however denominated, not to\n enforce a patent (such as an express permission to practice a patent\n or covenant not to sue for patent infringement). To\n "grant" such a patent license to a party means to make\n such an agreement or commitment not to enforce a patent against the\n party.\n

\n\n

\n If you convey a covered work, knowingly relying on a patent license,\n and the Corresponding Source of the work is not available for anyone\n to copy, free of charge and under the terms of this License, through\n a publicly available network server or other readily accessible\n means, then you must either (1) cause the Corresponding Source to be\n so available, or (2) arrange to deprive yourself of the benefit of\n the patent license for this particular work, or (3) arrange, in a\n manner consistent with the requirements of this License, to extend\n the patent license to downstream recipients. "Knowingly\n relying" means you have actual knowledge that, but for the\n patent license, your conveying the covered work in a country, or\n your recipient's use of the covered work in a country, would\n infringe one or more identifiable patents in that country that you\n have reason to believe are valid.\n

\n\n

\n If, pursuant to or in connection with a single transaction or\n arrangement, you convey, or propagate by procuring conveyance of, a\n covered work, and grant a patent license to some of the parties\n receiving the covered work authorizing them to use, propagate,\n modify or convey a specific copy of the covered work, then the\n patent license you grant is automatically extended to all recipients\n of the covered work and works based on it.\n

\n\n

\n A patent license is "discriminatory" if it does not\n include within the scope of its coverage, prohibits the exercise of,\n or is conditioned on the non-exercise of one or more of the rights\n that are specifically granted under this License. You may not convey\n a covered work if you are a party to an arrangement with a third\n party that is in the business of distributing software, under which\n you make payment to the third party based on the extent of your\n activity of conveying the work, and under which the third party\n grants, to any of the parties who would receive the covered work\n from you, a discriminatory patent license (a) in connection with\n copies of the covered work conveyed by you (or copies made from\n those copies), or (b) primarily for and in connection with specific\n products or compilations that contain the covered work, unless you\n entered into that arrangement, or that patent license was granted,\n prior to 28 March 2007.\n

\n\n

\n Nothing in this License shall be construed as excluding or limiting\n any implied license or other defenses to infringement that may\n otherwise be available to you under applicable patent law.\n

\n\n

12. No Surrender of Others' Freedom.

\n

\n If conditions are imposed on you (whether by court order, agreement\n or otherwise) that contradict the conditions of this License, they\n do not excuse you from the conditions of this License. If you cannot\n convey a covered work so as to satisfy simultaneously your\n obligations under this License and any other pertinent obligations,\n then as a consequence you may not convey it at all. For example, if\n you agree to terms that obligate you to collect a royalty for\n further conveying from those to whom you convey the Program, the\n only way you could satisfy both those terms and this License would\n be to refrain entirely from conveying the Program.\n

\n\n

\n 13. Remote Network Interaction; Use with the GNU General Public\n License.\n

\n

\n Notwithstanding any other provision of this License, if you modify\n the Program, your modified version must prominently offer all users\n interacting with it remotely through a computer network (if your\n version supports such interaction) an opportunity to receive the\n Corresponding Source of your version by providing access to the\n Corresponding Source from a network server at no charge, through\n some standard or customary means of facilitating copying of\n software. This Corresponding Source shall include the Corresponding\n Source for any work covered by version 3 of the GNU General Public\n License that is incorporated pursuant to the following paragraph.\n

\n\n

\n Notwithstanding any other provision of this License, you have\n permission to link or combine any covered work with a work licensed\n under version 3 of the GNU General Public License into a single\n combined work, and to convey the resulting work. The terms of this\n License will continue to apply to the part which is the covered\n work, but the work with which it is combined will remain governed by\n version 3 of the GNU General Public License.\n

\n\n

14. Revised Versions of this License.

\n

\n The Free Software Foundation may publish revised and/or new versions\n of the GNU Affero General Public License from time to time. Such new\n versions will be similar in spirit to the present version, but may\n differ in detail to address new problems or concerns.\n

\n\n

\n Each version is given a distinguishing version number. If the\n Program specifies that a certain numbered version of the GNU Affero\n General Public License "or any later version" applies to\n it, you have the option of following the terms and conditions either\n of that numbered version or of any later version published by the\n Free Software Foundation. If the Program does not specify a version\n number of the GNU Affero General Public License, you may choose any\n version ever published by the Free Software Foundation.\n

\n\n

\n Each version is given a distinguishing version number. If the\n Program specifies that a certain numbered version of the GNU Affero\n General Public License "or any later version" applies to\n it, you have the option of following the terms and conditions either\n of that numbered version or of any later version published by the\n Free Software Foundation. If the Program does not specify a version\n number of the GNU Affero General Public License, you may choose any\n version ever published by the Free Software Foundation.\n

\n\n

\n Later license versions may give you additional or different\n permissions. However, no additional obligations are imposed on any\n author or copyright holder as a result of your choosing to follow a\n later version.\n

\n\n

15. Disclaimer of Warranty.

\n

\n THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\n APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE\n COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS\n IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE\n RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.\n SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL\n NECESSARY SERVICING, REPAIR OR CORRECTION.\n

\n\n

16. Limitation of Liability.

\n

\n IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\n WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES\n AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR\n DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL\n DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM\n (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED\n INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE\n OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH\n HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\n DAMAGES.\n

\n\n

17. Interpretation of Sections 15 and 16.

\n

\n If the disclaimer of warranty and limitation of liability provided\n above cannot be given local legal effect according to their terms,\n reviewing courts shall apply local law that most closely\n approximates an absolute waiver of all civil liability in connection\n with the Program, unless a warranty or assumption of liability\n accompanies a copy of the Program in return for a fee.\n

\n\n

END OF TERMS AND CONDITIONS

\n\n

How to Apply These Terms to Your New Programs

\n

\n If you develop a new program, and you want it to be of the greatest\n possible use to the public, the best way to achieve this is to make\n it free software which everyone can redistribute and change under\n these terms.\n

\n\n

\n To do so, attach the following notices to the program. It is safest\n to attach them to the start of each source file to most effectively\n state the exclusion of warranty; and each file should have at least\n the "copyright" line and a pointer to where the full\n notice is found.\n

\n\n

\n \n <one line to give the program's name and a brief idea of what\n it does.> Copyright (C) <year> <name of author>\n This program is free software: you can redistribute it and/or\n modify it under the terms of the GNU Affero General Public License\n as published by the Free Software Foundation, either version 3 of\n the License, or (at your option) any later version. This program\n is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or\n FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General\n Public License for more details. You should have received a copy\n of the GNU Affero General Public License along with this program.\n If not, see <https://www.gnu.org/licenses/>.\n \n

\n\n

\n Also add information on how to contact you by electronic and paper\n mail.\n

\n\n

\n If your software can interact with users remotely through a computer\n network, you should also make sure that it provides a way for users\n to get its source. For example, if your program is a web\n application, its interface could display a "Source" link\n that leads users to an archive of the code. There are many ways you\n could offer source, and different solutions will be better for\n different programs; see section 13 for the specific requirements.\n

\n\n

\n You should also get your employer (if you work as a programmer) or\n school, if any, to sign a "copyright disclaimer" for the\n program, if necessary. For more information on this, and how to\n apply and follow the GNU AGPL, see <\n \n https://www.gnu.org/licenses/\n \n >.\n

\n
\n
\n \n ) : null;\n};\n\nexport default withStyles(styles)(LicenseModal);\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 LICENSE_PLANS = {\n COMMUNITY: \"community\",\n STANDARD: \"standard\",\n ENTERPRISE: \"enterprise\",\n};\n\nexport const FEATURE_ITEMS = [\n {\n label: \"Unit Price\", //spacer\n isHeader: true,\n },\n {\n desc: \"Features\",\n featureTitleRow: true,\n },\n {\n desc: \"License\",\n },\n {\n desc: \"Software Release\",\n },\n {\n desc: \"SLA\",\n },\n {\n desc: \"Support\",\n },\n {\n desc: \"Critical Security and Bug Detection\",\n },\n {\n desc: \"Panic Button\",\n },\n {\n desc: \"Health Diagnostics\",\n },\n {\n desc: \"Annual Architecture Review\",\n },\n {\n desc: \"Annual Performance Review\",\n },\n {\n desc: \"Indemnification\",\n },\n {\n desc: \"Security and Policy Review\",\n },\n];\n\nexport const COMMUNITY_PLAN_FEATURES = [\n {\n label: \"Community\",\n isHeader: true,\n },\n {\n id: \"com_feat_title\",\n featureTitleRow: true,\n },\n {\n id: \"com_license\",\n label: \"GNU AGPL v3\",\n isOssLicenseLink: true,\n },\n {\n id: \"com_release\",\n label: \"Upstream\",\n },\n {\n id: \"com_sla\",\n label: \"No SLA\",\n },\n {\n id: \"com_support\",\n label: \"Community:\",\n detail: \"Public Slack Channel + Github Issues\",\n },\n {\n id: \"com_security\",\n label: \"Self\",\n },\n {\n id: \"com_panic\",\n xsLabel: \"N/A\",\n },\n {\n id: \"com_diag\",\n xsLabel: \"N/A\",\n },\n {\n id: \"com_arch\",\n xsLabel: \"N/A\",\n },\n {\n id: \"com_perf\",\n xsLabel: \"N/A\",\n },\n {\n id: \"com_indemnity\",\n xsLabel: \"N/A\",\n },\n {\n id: \"com_sec_policy\",\n xsLabel: \"N/A\",\n },\n];\n\nexport const STANDARD_PLAN_FEATURES = [\n {\n label: \"Standard\",\n isHeader: true,\n },\n {\n id: \"std_feat_title\",\n featureTitleRow: true,\n },\n {\n id: \"std_license\",\n label: \"Commercial\",\n },\n {\n id: \"std_release\",\n label: \"1 Year Long Term Support\",\n },\n {\n id: \"std_sla\",\n label: \"<48 Hours\",\n detail: \"(Local Business Hours)\",\n },\n {\n id: \"std_support\",\n label: \"L4 Direct Engineering\",\n detail: \"support via SUBNET\",\n },\n {\n id: \"std_security\",\n label: \"Continuous Scan and Alert\",\n },\n {\n id: \"std_panic\",\n label: \"1 Per year\",\n },\n {\n id: \"std_diag\",\n label: \"24/7/365\",\n },\n {\n id: \"std_arch\",\n xsLabel: \"N/A\",\n },\n {\n id: \"std_perf\",\n xsLabel: \"N/A\",\n },\n {\n id: \"std_indemnity\",\n xsLabel: \"N/A\",\n },\n {\n id: \"std_sec_policy\",\n xsLabel: \"N/A\",\n },\n];\n\nexport const ENTERPRISE_PLAN_FEATURES = [\n {\n label: \"Enterprise\",\n isHeader: true,\n },\n {\n id: \"end_feat_title\",\n featureTitleRow: true,\n },\n {\n id: \"ent_license\",\n label: \"Commercial\",\n },\n {\n id: \"ent_release\",\n label: \"5 Years Long Term Support\",\n },\n {\n id: \"ent_sla\",\n label: \"<1 hour\",\n },\n {\n id: \"ent_support\",\n label: \"L4 Direct Engineering support via\",\n detail: \"SUBNET, Phone, Web Conference\",\n },\n {\n id: \"ent_security\",\n label: \"Continuous Scan and Alert\",\n },\n {\n id: \"ent_panic\",\n label: \"Unlimited\",\n },\n {\n id: \"ent_diag\",\n label: \"24/7/365\",\n },\n {\n id: \"ent_arch\",\n yesIcon: true,\n },\n {\n id: \"ent_perf\",\n yesIcon: true,\n },\n {\n id: \"ent_indemnity\",\n yesIcon: true,\n },\n {\n id: \"ent_sec_policy\",\n yesIcon: true,\n },\n];\n\nexport const PAID_PLANS = [LICENSE_PLANS.STANDARD, LICENSE_PLANS.ENTERPRISE];\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 clsx from \"clsx\";\nimport CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\nimport Button from \"@mui/material/Button\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { SubnetInfo } from \"./types\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, Tooltip } from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { HelpIconFilled, LicenseDocIcon, OpenSourceIcon } from \"../../../icons\";\nimport {\n LICENSE_PLANS,\n FEATURE_ITEMS,\n COMMUNITY_PLAN_FEATURES,\n STANDARD_PLAN_FEATURES,\n ENTERPRISE_PLAN_FEATURES,\n PAID_PLANS,\n} from \"./utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n textDecoration: \"underline !important\",\n color: theme.palette.info.main,\n },\n linkButton: {\n fontFamily: '\"Lato\", sans-serif',\n fontWeight: \"normal\",\n textTransform: \"none\",\n fontSize: \"inherit\",\n height: 0,\n padding: 0,\n margin: 0,\n },\n tableContainer: {\n marginLeft: 28,\n },\n detailsContainerBorder: {\n borderLeft: \"1px solid #e2e2e2\",\n },\n detailsTitle: {\n fontSize: 19,\n fontWeight: 700,\n marginBottom: 26,\n paddingTop: 18,\n lineHeight: 1,\n },\n });\n\ninterface IRegisterStatus {\n classes: any;\n activateProductModal: any;\n closeModalAndFetchLicenseInfo: any;\n licenseInfo: SubnetInfo | undefined;\n setLicenseModal: React.Dispatch>;\n operatorMode: boolean;\n currentPlanID: number;\n setActivateProductModal: any;\n}\n\nconst PlanHeader = ({\n isActive,\n isXsViewActive,\n title,\n onClick,\n children,\n}: {\n isActive: boolean;\n isXsViewActive: boolean;\n title: string;\n price?: string;\n tooltipText?: string;\n onClick: any;\n children: any;\n}) => {\n const plan = title.toLowerCase();\n return (\n {\n onClick && onClick(plan);\n }}\n sx={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"center\",\n flexFlow: \"column\",\n paddingLeft: \"26px\",\n borderLeft: \"1px solid #eaeaea\",\n \"& .plan-header\": {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexFlow: \"column\",\n },\n\n \"& .title-block\": {\n paddingTop: \"20px\",\n display: \"flex\",\n alignItems: \"flex-start\",\n flexFlow: \"column\",\n width: \"100%\",\n\n marginTop: \"auto\",\n marginBottom: \"auto\",\n \"& .title-main\": {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flex: 1,\n },\n \"& .min-icon\": {\n marginLeft: \"13px\",\n height: \"13px\",\n width: \"13px\",\n },\n\n \"& .title\": {\n fontSize: \"22px\",\n fontWeight: 600,\n },\n },\n\n \"& .price-line\": {\n fontSize: \"16px\",\n fontWeight: 600,\n },\n \"& .minimum-cost\": {\n fontSize: \"14px\",\n fontWeight: 400,\n marginBottom: \"5px\",\n },\n \"& .open-source\": {\n fontSize: \"14px\",\n display: \"flex\",\n marginBottom: \"5px\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: \"8px\",\n height: \"12px\",\n width: \"12px\",\n },\n },\n\n \"& .cur-plan-text\": {\n fontSize: \"12px\",\n textTransform: \"uppercase\",\n },\n\n \"@media (max-width: 600px)\": {\n cursor: \"pointer\",\n \"& .title-block\": {\n \"& .title\": {\n fontSize: \"14px\",\n fontWeight: 600,\n },\n },\n },\n\n \"&.active, &.active.xs-active\": {\n borderTop: \"3px solid #2781B0\",\n color: \"#ffffff\",\n\n \"& .min-icon\": {\n fill: \"#ffffff\",\n },\n },\n \"&.active\": {\n background: \"#2781B0\",\n color: \"#ffffff\",\n },\n \"&.xs-active\": {\n background: \"#eaeaea\",\n },\n }}\n >\n {children}\n \n );\n};\n\nconst FeatureTitleRowCmp = (props: { featureLabel: any }) => {\n return (\n \n \n
{props.featureLabel}
\n
\n
\n );\n};\n\nconst PricingFeatureItem = (props: {\n featureLabel: any;\n label?: string;\n detail?: string;\n xsLabel?: string;\n}) => {\n return (\n \n \n
{props.featureLabel}
\n \n
{props.label || \"\"}
\n {props.detail ?
{props.detail}
: null}\n
{props.xsLabel}
\n
\n
\n
\n );\n};\n\nconst LicensePlans = ({\n licenseInfo,\n setLicenseModal,\n operatorMode,\n}: IRegisterStatus) => {\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"sm\"));\n\n let currentPlan = !licenseInfo\n ? \"community\"\n : licenseInfo?.plan?.toLowerCase();\n\n const isCommunityPlan = currentPlan === LICENSE_PLANS.COMMUNITY;\n const isStandardPlan = currentPlan === LICENSE_PLANS.STANDARD;\n const isEnterprisePlan = currentPlan === LICENSE_PLANS.ENTERPRISE;\n\n const isPaidPlan = PAID_PLANS.includes(currentPlan);\n\n /*In smaller screen use tabbed view to show features*/\n const [xsPlanView, setXsPlanView] = useState(\"\");\n let isXsViewCommunity = xsPlanView === LICENSE_PLANS.COMMUNITY;\n let isXsViewStandard = xsPlanView === LICENSE_PLANS.STANDARD;\n let isXsViewEnterprise = xsPlanView === LICENSE_PLANS.ENTERPRISE;\n\n const getCommunityPlanHeader = () => {\n const tooltipText =\n \"Designed for developers who are building open source applications in compliance with the AGPL v3 license and are able to support themselves. The community version of MinIO has all the functionality of the Standard and Enterprise editions.\";\n\n return (\n \n \n \n
Community
\n \n
\n \n
\n
\n
\n
\n {isCommunityPlan ? \"Current Plan\" : \"\"}\n
\n
\n
\n \n Open Source\n
\n \n );\n };\n\n const getStandardPlanHeader = () => {\n const tooltipText =\n \"Designed for customers who require a commercial license and can mostly self-support but want the peace of mind that comes with the MinIO Subscription Network’s suite of operational capabilities and direct-to-engineer interaction. The Standard version is fully featured but with SLA limitations. \";\n\n return (\n \n \n \n
Standard
\n \n
\n \n
\n
\n
\n
\n {isStandardPlan ? \"Current Plan\" : \"\"}\n
\n
\n
$10 per TiB per month
\n
(Minimum of 100TiB)
\n \n );\n };\n\n const getEnterpriseHeader = () => {\n const tooltipText =\n \"Designed for mission critical environments where both a license and strict SLAs are required. The Enterprise version is fully featured but comes with additional capabilities. \";\n\n return (\n \n \n \n
Enterprise
\n \n
\n \n
\n
\n
\n
\n {isEnterprisePlan ? \"Current Plan\" : \"\"}\n
\n
\n
$20 per TiB per month
\n
(Minimum of 100TiB)
\n \n );\n };\n\n const getButton = (\n link: string,\n btnText: string,\n variant: any,\n plan: string\n ) => {\n let linkToNav =\n currentPlan !== \"community\" ? \"https://subnet.min.io\" : link;\n return (\n {\n e.preventDefault();\n\n window.open(\n `${linkToNav}?ref=${operatorMode ? \"op\" : \"con\"}`,\n \"_blank\"\n );\n }}\n >\n {btnText}\n \n );\n };\n\n const onPlanClick = (plan: string) => {\n setXsPlanView(plan);\n };\n\n useEffect(() => {\n if (isSmallScreen) {\n setXsPlanView(currentPlan || \"community\");\n } else {\n setXsPlanView(\"\");\n }\n }, [isSmallScreen, currentPlan]);\n\n const linkTracker = `?ref=${operatorMode ? \"op\" : \"con\"}`;\n\n const featureList = FEATURE_ITEMS;\n return (\n \n \n \n \n \n {featureList.map((fi) => {\n const featureTitleRow = fi.featureTitleRow;\n const isHeader = fi.isHeader;\n\n if (isHeader) {\n if (isPaidPlan) {\n return (\n \n \n \n View License agreement
\n for the registered plan.\n \n
\n );\n }\n\n return (\n \n {fi.label}\n \n );\n }\n if (featureTitleRow) {\n return (\n \n
{fi.desc}
\n \n );\n }\n return (\n \n
{fi.desc}
\n
\n );\n })}\n \n {!isPaidPlan ? (\n \n {COMMUNITY_PLAN_FEATURES.map((fi, idx) => {\n const featureLabel = featureList[idx].desc;\n const { featureTitleRow, isHeader, isOssLicenseLink } = fi;\n\n if (isHeader) {\n return getCommunityPlanHeader();\n }\n if (featureTitleRow) {\n return (\n \n );\n }\n\n if (isOssLicenseLink) {\n return (\n \n {\n e.preventDefault();\n e.stopPropagation();\n setLicenseModal && setLicenseModal(true);\n }}\n >\n GNU AGPL v3\n \n \n );\n }\n return (\n \n );\n })}\n \n {getButton(\n `https://slack.min.io${linkTracker}`,\n \"Join Slack\",\n \"outlined\",\n LICENSE_PLANS.COMMUNITY\n )}\n \n \n ) : null}\n \n {STANDARD_PLAN_FEATURES.map((fi, idx) => {\n const featureLabel = featureList[idx].desc;\n const featureTitleRow = fi.featureTitleRow;\n const isHeader = fi.isHeader;\n\n if (isHeader) {\n return getStandardPlanHeader();\n }\n if (featureTitleRow) {\n return (\n \n );\n }\n return (\n \n );\n })}\n\n \n {getButton(\n `https://min.io/signup${linkTracker}`,\n !PAID_PLANS.includes(currentPlan)\n ? \"Subscribe\"\n : \"Login to SUBNET\",\n \"contained\",\n LICENSE_PLANS.STANDARD\n )}\n \n \n \n {ENTERPRISE_PLAN_FEATURES.map((fi, idx) => {\n const featureLabel = featureList[idx].desc;\n const { featureTitleRow, isHeader, yesIcon } = fi;\n\n if (isHeader) {\n return getEnterpriseHeader();\n }\n\n if (featureTitleRow) {\n return (\n \n );\n }\n\n if (yesIcon) {\n return (\n \n \n
\n \n \n \n
\n
\n );\n }\n return (\n \n );\n })}\n \n {getButton(\n `https://min.io/signup${linkTracker}`,\n !PAID_PLANS.includes(currentPlan)\n ? \"Subscribe\"\n : \"Login to SUBNET\",\n \"contained\",\n LICENSE_PLANS.ENTERPRISE\n )}\n \n \n \n \n
\n );\n};\n\nexport default withStyles(styles)(LicensePlans);\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, LinearProgress } from \"@mui/material\";\nimport clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport Button from \"@mui/material/Button\";\nimport Typography from \"@mui/material/Typography\";\nimport { SubnetInfo } from \"./types\";\nimport { AppState } from \"../../../store\";\nimport { containerForHeader } from \"../Common/FormComponents/common/styleLibrary\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport LicenseModal from \"./LicenseModal\";\nimport api from \"../../../common/api\";\nimport {\n ArrowRightLink,\n HelpIconFilled,\n LicenseIcon,\n LoginMinIOLogo,\n} from \"../../../icons\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_PAGES_PERMISSIONS,\n} from \"../../../common/SecureComponent/permissions\";\nimport LicensePlans from \"./LicensePlans\";\nimport { Link } from \"react-router-dom\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport RegistrationStatusBanner from \"../Support/RegistrationStatusBanner\";\n\nconst mapState = (state: AppState) => ({\n operatorMode: state.system.operatorMode,\n});\n\nconst connector = connect(mapState, null);\n\nconst styles = (theme: Theme) =>\n createStyles({\n pageTitle: {\n backgroundColor: \"rgb(250,250,252)\",\n marginTop: 40,\n border: \"1px solid #E5E5E5\",\n paddingTop: 33,\n paddingLeft: 28,\n paddingBottom: 30,\n paddingRight: 28,\n fontSize: 16,\n fontWeight: \"bold\",\n \"& ul\": {\n marginLeft: \"-25px\",\n listStyleType: \"square\",\n color: \"#1C5A8D\",\n fontSize: \"16px\",\n \"& li\": {\n float: \"left\",\n fontSize: 14,\n marginRight: 40,\n },\n \"& li::before\": {\n color: \"red\",\n content: \"•\",\n },\n },\n },\n licDet: {\n fontSize: 11,\n color: \"#5E5E5E\",\n },\n linkMore: {\n marginTop: 10,\n marginBottom: 20,\n },\n chooseFlavorText: {\n color: \"#000000\",\n fontSize: 14,\n },\n link: {\n textDecoration: \"underline !important\",\n color: theme.palette.info.main,\n },\n linkButton: {\n fontFamily: '\"Lato\", sans-serif',\n fontWeight: \"normal\",\n textTransform: \"none\",\n fontSize: \"inherit\",\n height: 0,\n padding: 0,\n margin: 0,\n },\n\n openSourcePolicy: {\n fontSize: 14,\n color: \"#1C5A8D\",\n fontWeight: \"bold\",\n },\n licenseInfo: {\n position: \"relative\",\n },\n licenseInfoTitle: {\n textTransform: \"none\",\n color: \"#999999\",\n fontSize: 11,\n },\n licenseInfoValue: {\n textTransform: \"none\",\n fontSize: 14,\n fontWeight: \"bold\",\n },\n subnetSubTitle: {\n fontSize: 14,\n },\n verifiedIcon: {\n width: 96,\n position: \"absolute\",\n right: 0,\n bottom: 29,\n },\n loadingLoginStrategy: {\n textAlign: \"center\",\n },\n ...containerForHeader(theme.spacing(4)),\n mainContainer: {\n border: \"1px solid #EAEDEE\",\n padding: 40,\n margin: 40,\n },\n icon: {\n color: theme.palette.primary.main,\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 20,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n marginRight: 15,\n },\n },\n });\n\ninterface ILicenseProps {\n classes: any;\n operatorMode: boolean;\n}\n\nconst License = ({ classes, operatorMode }: ILicenseProps) => {\n const [activateProductModal, setActivateProductModal] =\n useState(false);\n\n const [licenseModal, setLicenseModal] = useState(false);\n\n const [licenseInfo, setLicenseInfo] = useState();\n const [currentPlanID, setCurrentPlanID] = useState(0);\n const [loadingLicenseInfo, setLoadingLicenseInfo] = useState(false);\n const [initialLicenseLoading, setInitialLicenseLoading] =\n useState(true);\n useState(false);\n const [clusterRegistered, setClusterRegistered] = useState(false);\n\n const getSubnetInfo = hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.LICENSE],\n true\n );\n\n const closeModalAndFetchLicenseInfo = () => {\n setActivateProductModal(false);\n fetchLicenseInfo();\n };\n\n const fetchLicenseInfo = useCallback(() => {\n if (loadingLicenseInfo) {\n return;\n }\n if (getSubnetInfo) {\n setLoadingLicenseInfo(true);\n api\n .invoke(\"GET\", `/api/v1/subnet/info`)\n .then((res: SubnetInfo) => {\n if (res) {\n if (res.plan === \"STANDARD\") {\n setCurrentPlanID(1);\n } else if (res.plan === \"ENTERPRISE\") {\n setCurrentPlanID(2);\n } else {\n setCurrentPlanID(1);\n }\n setLicenseInfo(res);\n }\n setClusterRegistered(true);\n setLoadingLicenseInfo(false);\n })\n .catch(() => {\n setClusterRegistered(false);\n setLoadingLicenseInfo(false);\n });\n } else {\n setLoadingLicenseInfo(false);\n }\n }, [loadingLicenseInfo, getSubnetInfo]);\n\n useEffect(() => {\n if (initialLicenseLoading) {\n fetchLicenseInfo();\n setInitialLicenseLoading(false);\n }\n }, [fetchLicenseInfo, initialLicenseLoading, setInitialLicenseLoading]);\n\n if (loadingLicenseInfo) {\n return (\n \n \n \n );\n }\n\n const isRegistered = licenseInfo && clusterRegistered;\n\n return (\n \n \n\n \n \n {isRegistered && (\n \n )}\n \n {!isRegistered && (\n \n \n \n Are you already a customer of ?\n \n \n Register this cluster{\" \"}\n \n \n \n\n
\n \n \n \n Choosing between GNU AGPL v3 and Commercial License\n \n \n
\n \n If you are building proprietary applications, you may want to\n choose the commercial license included as part of the Standard\n and Enterprise subscription plans. Applications must otherwise\n comply with all the GNU AGPLv3 License & Trademark obligations.\n Follow the links below to learn more about the compliance\n policy.\n \n \n
  • \n \n Learn more about GNU AGPL v3\n \n
  • \n
  • \n \n MinIO Trademark Compliance\n \n
  • \n
    \n
    \n
    \n\n \n MinIO License and Support plans\n \n \n )}\n\n \n\n \n \n \n \n setLicenseModal(false)}\n />\n \n \n \n \n \n
    GNU Affero General Public License
    \n
    \n Version 3. 19 November 2007\n
    \n \n \n \"agpl\"\n \n \n\n \n \n The GNU Affero General Public License is a free, copyleft\n license for software and other kinds of works, specifically\n designed to ensure cooperation with the Community in the\n case of network server software.\n \n
    \n \n The licenses for most software and other practical works are\n designed to take away your freedom to share and change the\n works. By contrast, our General Public Licenses are intended\n to guarantee your freedom to share and change all versions\n of a program--to make sure it remains free software for all\n its users.\n \n
    \n setLicenseModal(true)}\n >\n Read more{\" \"}\n \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n );\n};\n\nexport default connector(withStyles(styles)(License));\n","import React from \"react\";\nimport { Box } from \"@mui/material\";\nimport VerifiedIcon from \"../../../icons/VerifiedIcon\";\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 _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckCircle');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","import * as React from 'react';\nimport { getThemeProps, useThemeWithoutDefault as useTheme } from '@mui/system';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\n/**\n * @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.\n */\n\nfunction useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {\n const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n const [match, setMatch] = React.useState(() => {\n if (noSsr && supportMatchMedia) {\n return matchMedia(query).matches;\n }\n\n if (ssrMatchMedia) {\n return ssrMatchMedia(query).matches;\n } // Once the component is mounted, we rely on the\n // event listeners to return the correct matches value.\n\n\n return defaultMatches;\n });\n useEnhancedEffect(() => {\n let active = true;\n\n if (!supportMatchMedia) {\n return undefined;\n }\n\n const queryList = matchMedia(query);\n\n const updateMatch = () => {\n // Workaround Safari wrong implementation of matchMedia\n // TODO can we remove it?\n // https://github.com/mui/material-ui/pull/17315#issuecomment-528286677\n if (active) {\n setMatch(queryList.matches);\n }\n };\n\n updateMatch(); // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n\n queryList.addListener(updateMatch);\n return () => {\n active = false;\n queryList.removeListener(updateMatch);\n };\n }, [query, matchMedia, supportMatchMedia]);\n return match;\n} // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\n\n\nconst maybeReactUseSyncExternalStore = React['useSyncExternalStore' + ''];\n\nfunction useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia) {\n const getDefaultSnapshot = React.useCallback(() => defaultMatches, [defaultMatches]);\n const getServerSnapshot = React.useMemo(() => {\n if (ssrMatchMedia !== null) {\n const {\n matches\n } = ssrMatchMedia(query);\n return () => matches;\n }\n\n return getDefaultSnapshot;\n }, [getDefaultSnapshot, query, ssrMatchMedia]);\n const [getSnapshot, subscribe] = React.useMemo(() => {\n if (matchMedia === null) {\n return [getDefaultSnapshot, () => () => {}];\n }\n\n const mediaQueryList = matchMedia(query);\n return [() => mediaQueryList.matches, notify => {\n // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n mediaQueryList.addListener(notify);\n return () => {\n mediaQueryList.removeListener(notify);\n };\n }];\n }, [getDefaultSnapshot, matchMedia, query]);\n const match = maybeReactUseSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n return match;\n}\n\nexport default function useMediaQuery(queryInput, options = {}) {\n const theme = useTheme(); // Wait for jsdom to support the match media feature.\n // All the browsers MUI support have this built-in.\n // This defensive check is here for simplicity.\n // Most of the time, the match media logic isn't central to people tests.\n\n const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n const {\n defaultMatches = false,\n matchMedia = supportMatchMedia ? window.matchMedia : null,\n ssrMatchMedia = null,\n noSsr\n } = getThemeProps({\n name: 'MuiUseMediaQuery',\n props: options,\n theme\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof queryInput === 'function' && theme === null) {\n console.error(['MUI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n let query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n query = query.replace(/^@media( ?)/m, ''); // TODO: Drop `useMediaQueryOld` and use `use-sync-external-store` shim in `useMediaQueryNew` once the package is stable\n\n const useMediaQueryImplementation = maybeReactUseSyncExternalStore !== undefined ? useMediaQueryNew : useMediaQueryOld;\n const match = useMediaQueryImplementation(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue({\n query,\n match\n });\n }\n\n return match;\n}"],"names":["withStyles","theme","createStyles","pageContentStyles","classes","className","children","contentSpacer","container","item","xs","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","wideLimit","noContentPadding","titleIcon","useState","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","root","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","toggleList","sidebarOpen","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","display","backgroundColor","left","boxShadow","label","justifyContent","alignItems","labelStyle","color","fontSize","fontWeight","marginLeft","marginTop","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","actions","includes","Fragment","direction","sm","md","sx","paddingTop","variant","component","pageTitle","marginBottom","pageSubTitle","containerForHeader","spacing","closeModal","ModalWrapper","Grid","Typography","subnetLicenseKey","target","href","rel","LICENSE_PLANS","FEATURE_ITEMS","isHeader","desc","featureTitleRow","COMMUNITY_PLAN_FEATURES","isOssLicenseLink","detail","xsLabel","STANDARD_PLAN_FEATURES","ENTERPRISE_PLAN_FEATURES","yesIcon","PAID_PLANS","PlanHeader","isActive","isXsViewActive","plan","toLowerCase","Box","clsx","active","flexFlow","paddingLeft","borderLeft","flex","height","marginRight","textTransform","cursor","borderTop","background","FeatureTitleRowCmp","props","featureLabel","PricingFeatureItem","link","textDecoration","info","linkButton","fontFamily","margin","tableContainer","detailsContainerBorder","detailsTitle","lineHeight","licenseInfo","setLicenseModal","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","currentPlan","isCommunityPlan","isStandardPlan","isEnterprisePlan","isPaidPlan","xsPlanView","setXsPlanView","isXsViewCommunity","isXsViewStandard","isXsViewEnterprise","getButton","btnText","linkToNav","Button","paddingRight","disabled","e","preventDefault","window","onPlanClick","linkTracker","featureList","border","overflow","overflowY","borderRadius","borderBottom","gridTemplateColumns","minWidth","maxHeight","position","top","map","fi","idx","Tooltip","placement","stopPropagation","CheckCircle","listStyleType","float","licDet","linkMore","chooseFlavorText","openSourcePolicy","licenseInfoTitle","licenseInfoValue","subnetSubTitle","verifiedIcon","right","bottom","loadingLoginStrategy","mainContainer","icon","activateProductModal","setActivateProductModal","licenseModal","setLicenseInfo","currentPlanID","setCurrentPlanID","loadingLicenseInfo","setLoadingLicenseInfo","initialLicenseLoading","setInitialLicenseLoading","clusterRegistered","setClusterRegistered","getSubnetInfo","hasPermission","CONSOLE_UI_RESOURCE","IAM_PAGES_PERMISSIONS","IAM_PAGES","fetchLicenseInfo","useCallback","api","then","res","catch","LinearProgress","isRegistered","PageHeader","PageLayout","RegistrationStatusBanner","email","to","style","clear","closeModalAndFetchLicenseInfo","lg","src","alt","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","useMediaQueryOld","query","defaultMatches","matchMedia","ssrMatchMedia","noSsr","supportMatchMedia","React","matches","match","setMatch","useEnhancedEffect","queryList","updateMatch","addListener","removeListener","maybeReactUseSyncExternalStore","useMediaQueryNew","getDefaultSnapshot","getServerSnapshot","mediaQueryList","notify","getSnapshot","subscribe","queryInput","options","getThemeProps","name","replace","useMediaQueryImplementation","undefined"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/1836.6c654dc4.chunk.js","mappings":"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","sources":["screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/License/LicenseModal.tsx","screens/Console/License/utils.ts","screens/Console/License/LicensePlans.tsx","screens/Console/License/License.tsx","screens/Console/Support/RegistrationStatusBanner.tsx","../node_modules/@mui/icons-material/CheckCircle.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/material/useMediaQuery/useMediaQuery.js"],"sourcesContent":["import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { containerForHeader } from \"../Common/FormComponents/common/styleLibrary\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport Typography from \"@mui/material/Typography\";\nimport React from \"react\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n pageTitle: {\n fontSize: 18,\n marginBottom: 20,\n textAlign: \"center\",\n },\n pageSubTitle: {\n textAlign: \"center\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface ILicenseModalProps {\n classes: any;\n open: boolean;\n closeModal: () => void;\n}\n\nconst LicenseModal = ({ classes, open, closeModal }: ILicenseModalProps) => {\n return open ? (\n {\n closeModal();\n }}\n aria-labelledby=\"alert-dialog-title\"\n aria-describedby=\"alert-dialog-description\"\n >\n {\" \"}\n \n \n \n GNU AFFERO GENERAL PUBLIC LICENSE\n \n

    Version 3, 19 November 2007

    \n
    \n \n

    \n Copyright © 2007 Free Software Foundation, Inc. <\n \n https://fsf.org/\n \n >\n

    \n

    \n {\" \"}\n Everyone is permitted to copy and distribute verbatim copies of this\n license document, but changing it is not allowed.\n

    \n

    Preamble

    \n

    \n The GNU Affero General Public License is a free, copyleft license\n for software and other kinds of works, specifically designed to\n ensure cooperation with the community in the case of network server\n software.\n

    \n\n

    \n The licenses for most software and other practical works are\n designed to take away your freedom to share and change the works. By\n contrast, our General Public Licenses are intended to guarantee your\n freedom to share and change all versions of a program--to make sure\n it remains free software for all its users.\n

    \n\n

    \n When we speak of free software, we are referring to freedom, not\n price. Our General Public Licenses are designed to make sure that\n you have the freedom to distribute copies of free software (and\n charge for them if you wish), that you receive source code or can\n get it if you want it, that you can change the software or use\n pieces of it in new free programs, and that you know you can do\n these things.\n

    \n\n

    \n Developers that use our General Public Licenses protect your rights\n with two steps: (1) assert copyright on the software, and (2) offer\n you this License which gives you legal permission to copy,\n distribute and/or modify the software.\n

    \n\n

    \n A secondary benefit of defending all users' freedom is that\n improvements made in alternate versions of the program, if they\n receive widespread use, become available for other developers to\n incorporate. Many developers of free software are heartened and\n encouraged by the resulting cooperation. However, in the case of\n software used on network servers, this result may fail to come\n about. The GNU General Public License permits making a modified\n version and letting the public access it on a server without ever\n releasing its source code to the public.\n

    \n\n

    \n The GNU Affero General Public License is designed specifically to\n ensure that, in such cases, the modified source code becomes\n available to the community. It requires the operator of a network\n server to provide the source code of the modified version running\n there to the users of that server. Therefore, public use of a\n modified version, on a publicly accessible server, gives the public\n access to the source code of the modified version.\n

    \n\n

    \n An older license, called the Affero General Public License and\n published by Affero, was designed to accomplish similar goals. This\n is a different license, not a version of the Affero GPL, but Affero\n has released a new version of the Affero GPL which permits\n relicensing under this license.\n

    \n\n

    \n The precise terms and conditions for copying, distribution and\n modification follow.\n

    \n\n

    TERMS AND CONDITIONS

    \n

    0. Definitions.

    \n

    \n "This License" refers to version 3 of the GNU Affero\n General Public License.\n

    \n\n

    \n "Copyright" also means copyright-like laws that apply to\n other kinds of works, such as semiconductor masks.\n

    \n\n

    \n "The Program" refers to any copyrightable work licensed\n under this License. Each licensee is addressed as "you".\n "Licensees" and "recipients" may be individuals\n or organizations.\n

    \n\n

    \n To "modify" a work means to copy from or adapt all or part\n of the work in a fashion requiring copyright permission, other than\n the making of an exact copy. The resulting work is called a\n "modified version" of the earlier work or a work\n "based on" the earlier work.\n

    \n\n

    \n A "covered work" means either the unmodified Program or a\n work based on the Program.\n

    \n\n

    \n To "propagate" a work means to do anything with it that,\n without permission, would make you directly or secondarily liable\n for infringement under applicable copyright law, except executing it\n on a computer or modifying a private copy. Propagation includes\n copying, distribution (with or without modification), making\n available to the public, and in some countries other activities as\n well.\n

    \n\n

    \n To "convey" a work means any kind of propagation that\n enables other parties to make or receive copies. Mere interaction\n with a user through a computer network, with no transfer of a copy,\n is not conveying.\n

    \n\n

    \n An interactive user interface displays "Appropriate Legal\n Notices" to the extent that it includes a convenient and\n prominently visible feature that (1) displays an appropriate\n copyright notice, and (2) tells the user that there is no warranty\n for the work (except to the extent that warranties are provided),\n that licensees may convey the work under this License, and how to\n view a copy of this License. If the interface presents a list of\n user commands or options, such as a menu, a prominent item in the\n list meets this criterion.\n

    \n\n

    1. Source Code.

    \n

    \n The "source code" for a work means the preferred form of\n the work for making modifications to it. "Object code"\n means any non-source form of a work.\n

    \n\n

    \n A "Standard Interface" means an interface that either is\n an official standard defined by a recognized standards body, or, in\n the case of interfaces specified for a particular programming\n language, one that is widely used among developers working in that\n language.\n

    \n\n

    \n The "System Libraries" of an executable work include\n anything, other than the work as a whole, that (a) is included in\n the normal form of packaging a Major Component, but which is not\n part of that Major Component, and (b) serves only to enable use of\n the work with that Major Component, or to implement a Standard\n Interface for which an implementation is available to the public in\n source code form. A "Major Component", in this context,\n means a major essential component (kernel, window system, and so on)\n of the specific operating system (if any) on which the executable\n work runs, or a compiler used to produce the work, or an object code\n interpreter used to run it.\n

    \n\n

    \n The "Corresponding Source" for a work in object code form\n means all the source code needed to generate, install, and (for an\n executable work) run the object code and to modify the work,\n including scripts to control those activities. However, it does not\n include the work's System Libraries, or general-purpose tools or\n generally available free programs which are used unmodified in\n performing those activities but which are not part of the work. For\n example, Corresponding Source includes interface definition files\n associated with source files for the work, and the source code for\n shared libraries and dynamically linked subprograms that the work is\n specifically designed to require, such as by intimate data\n communication or control flow between those subprograms and other\n parts of the work.\n

    \n\n

    \n The Corresponding Source need not include anything that users can\n regenerate automatically from other parts of the Corresponding\n Source.\n

    \n\n

    \n The Corresponding Source for a work in source code form is that same\n work.\n

    \n\n

    2. Basic Permissions.

    \n

    \n All rights granted under this License are granted for the term of\n copyright on the Program, and are irrevocable provided the stated\n conditions are met. This License explicitly affirms your unlimited\n permission to run the unmodified Program. The output from running a\n covered work is covered by this License only if the output, given\n its content, constitutes a covered work. This License acknowledges\n your rights of fair use or other equivalent, as provided by\n copyright law.\n

    \n

    \n You may make, run and propagate covered works that you do not\n convey, without conditions so long as your license otherwise remains\n in force. You may convey covered works to others for the sole\n purpose of having them make modifications exclusively for you, or\n provide you with facilities for running those works, provided that\n you comply with the terms of this License in conveying all material\n for which you do not control copyright. Those thus making or running\n the covered works for you must do so exclusively on your behalf,\n under your direction and control, on terms that prohibit them from\n making any copies of your copyrighted material outside their\n relationship with you.\n

    \n

    \n Conveying under any other circumstances is permitted solely under\n the conditions stated below. Sublicensing is not allowed; section 10\n makes it unnecessary.\n

    \n

    \n 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n

    \n

    \n No covered work shall be deemed part of an effective technological\n measure under any applicable law fulfilling obligations under\n article 11 of the WIPO copyright treaty adopted on 20 December 1996,\n or similar laws prohibiting or restricting circumvention of such\n measures.\n

    \n

    \n When you convey a covered work, you waive any legal power to forbid\n circumvention of technological measures to the extent such\n circumvention is effected by exercising rights under this License\n with respect to the covered work, and you disclaim any intention to\n limit operation or modification of the work as a means of enforcing,\n against the work's users, your or third parties' legal rights to\n forbid circumvention of technological measures.\n

    \n

    4. Conveying Verbatim Copies.

    \n

    \n You may convey verbatim copies of the Program's source code as you\n receive it, in any medium, provided that you conspicuously and\n appropriately publish on each copy an appropriate copyright notice;\n keep intact all notices stating that this License and any\n non-permissive terms added in accord with section 7 apply to the\n code; keep intact all notices of the absence of any warranty; and\n give all recipients a copy of this License along with the Program.\n

    \n

    \n You may charge any price or no price for each copy that you convey,\n and you may offer support or warranty protection for a fee.\n

    \n

    5. Conveying Modified Source Versions.

    \n

    \n You may convey a work based on the Program, or the modifications to\n produce it from the Program, in the form of source code under the\n terms of section 4, provided that you also meet all of these\n conditions:\n

    \n

    \n

      \n
    • \n a) The work must carry prominent notices stating that you\n modified it, and giving a relevant date.\n
    • \n
    • \n b) The work must carry prominent notices stating that it is\n released under this License and any conditions added under\n section 7. This requirement modifies the requirement in section\n 4 to "keep intact all notices".\n
    • \n
    • \n c) You must license the entire work, as a whole, under this\n License to anyone who comes into possession of a copy. This\n License will therefore apply, along with any applicable section\n 7 additional terms, to the whole of the work, and all its parts,\n regardless of how they are packaged. This License gives no\n permission to license the work in any other way, but it does not\n invalidate such permission if you have separately received it.\n
    • \n
    • \n d) If the work has interactive user interfaces, each must\n display Appropriate Legal Notices; however, if the Program has\n interactive interfaces that do not display Appropriate Legal\n Notices, your work need not make them do so.\n
    • \n
    \n

    \n

    \n A compilation of a covered work with other separate and independent\n works, which are not by their nature extensions of the covered work,\n and which are not combined with it such as to form a larger program,\n in or on a volume of a storage or distribution medium, is called an\n "aggregate" if the compilation and its resulting copyright\n are not used to limit the access or legal rights of the\n compilation's users beyond what the individual works permit.\n Inclusion of a covered work in an aggregate does not cause this\n License to apply to the other parts of the aggregate.\n

    \n

    6. Conveying Non-Source Forms.

    \n

    \n You may convey a covered work in object code form under the terms of\n sections 4 and 5, provided that you also convey the machine-readable\n Corresponding Source under the terms of this License, in one of\n these ways:\n

    \n

    \n

      \n
    • \n a) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by the\n Corresponding Source fixed on a durable physical medium\n customarily used for software interchange.\n
    • \n
    • \n b) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by a\n written offer, valid for at least three years and valid for as\n long as you offer spare parts or customer support for that\n product model, to give anyone who possesses the object code\n either (1) a copy of the Corresponding Source for all the\n software in the product that is covered by this License, on a\n durable physical medium customarily used for software\n interchange, for a price no more than your reasonable cost of\n physically performing this conveying of source, or (2) access to\n copy the Corresponding Source from a network server at no\n charge.\n
    • \n
    • \n c) Convey individual copies of the object code with a copy of\n the written offer to provide the Corresponding Source. This\n alternative is allowed only occasionally and noncommercially,\n and only if you received the object code with such an offer, in\n accord with subsection 6b.\n
    • \n
    • \n d) Convey the object code by offering access from a designated\n place (gratis or for a charge), and offer equivalent access to\n the Corresponding Source in the same way through the same place\n at no further charge. You need not require recipients to copy\n the Corresponding Source along with the object code. If the\n place to copy the object code is a network server, the\n Corresponding Source may be on a different server (operated by\n you or a third party) that supports equivalent copying\n facilities, provided you maintain clear directions next to the\n object code saying where to find the Corresponding Source.\n Regardless of what server hosts the Corresponding Source, you\n remain obligated to ensure that it is available for as long as\n needed to satisfy these requirements.\n
    • \n
    • \n e) Convey the object code using peer-to-peer transmission,\n provided you inform other peers where the object code and\n Corresponding Source of the work are being offered to the\n general public at no charge under subsection 6d.\n
    • \n
    \n

    \n

    \n A separable portion of the object code, whose source code is\n excluded from the Corresponding Source as a System Library, need not\n be included in conveying the object code work.\n

    \n

    \n A "User Product" is either (1) a "consumer\n product", which means any tangible personal property which is\n normally used for personal, family, or household purposes, or (2)\n anything designed or sold for incorporation into a dwelling. In\n determining whether a product is a consumer product, doubtful cases\n shall be resolved in favor of coverage. For a particular product\n received by a particular user, "normally used" refers to a\n typical or common use of that class of product, regardless of the\n status of the particular user or of the way in which the particular\n user actually uses, or expects or is expected to use, the product. A\n product is a consumer product regardless of whether the product has\n substantial commercial, industrial or non-consumer uses, unless such\n uses represent the only significant mode of use of the product.\n

    \n

    \n "Installation Information" for a User Product means any\n methods, procedures, authorization keys, or other information\n required to install and execute modified versions of a covered work\n in that User Product from a modified version of its Corresponding\n Source. The information must suffice to ensure that the continued\n functioning of the modified object code is in no case prevented or\n interfered with solely because modification has been made.\n

    \n

    \n If you convey an object code work under this section in, or with, or\n specifically for use in, a User Product, and the conveying occurs as\n part of a transaction in which the right of possession and use of\n the User Product is transferred to the recipient in perpetuity or\n for a fixed term (regardless of how the transaction is\n characterized), the Corresponding Source conveyed under this section\n must be accompanied by the Installation Information. But this\n requirement does not apply if neither you nor any third party\n retains the ability to install modified object code on the User\n Product (for example, the work has been installed in ROM).\n

    \n

    \n The requirement to provide Installation Information does not include\n a requirement to continue to provide support service, warranty, or\n updates for a work that has been modified or installed by the\n recipient, or for the User Product in which it has been modified or\n installed. Access to a network may be denied when the modification\n itself materially and adversely affects the operation of the network\n or violates the rules and protocols for communication across the\n network.\n

    \n

    \n Corresponding Source conveyed, and Installation Information\n provided, in accord with this section must be in a format that is\n publicly documented (and with an implementation available to the\n public in source code form), and must require no special password or\n key for unpacking, reading or copying.\n

    \n

    7. Additional Terms.

    \n

    \n "Additional permissions" are terms that supplement the\n terms of this License by making exceptions from one or more of its\n conditions. Additional permissions that are applicable to the entire\n Program shall be treated as though they were included in this\n License, to the extent that they are valid under applicable law. If\n additional permissions apply only to part of the Program, that part\n may be used separately under those permissions, but the entire\n Program remains governed by this License without regard to the\n additional permissions.\n

    \n

    \n When you convey a copy of a covered work, you may at your option\n remove any additional permissions from that copy, or from any part\n of it. (Additional permissions may be written to require their own\n removal in certain cases when you modify the work.) You may place\n additional permissions on material, added by you to a covered work,\n for which you have or can give appropriate copyright permission.\n

    \n

    \n Notwithstanding any other provision of this License, for material\n you add to a covered work, you may (if authorized by the copyright\n holders of that material) supplement the terms of this License with\n terms:\n

    \n

    \n

      \n
    • \n a) Disclaiming warranty or limiting liability differently from\n the terms of sections 15 and 16 of this License; or\n
    • \n
    • \n b) Requiring preservation of specified reasonable legal notices\n or author attributions in that material or in the Appropriate\n Legal Notices displayed by works containing it; or\n
    • \n
    • \n c) Prohibiting misrepresentation of the origin of that material,\n or requiring that modified versions of such material be marked\n in reasonable ways as different from the original version; or\n
    • \n
    • \n d) Limiting the use for publicity purposes of names of licensors\n or authors of the material; or\n
    • \n
    • \n e) Declining to grant rights under trademark law for use of some\n trade names, trademarks, or service marks; or\n
    • \n
    • \n f) Requiring indemnification of licensors and authors of that\n material by anyone who conveys the material (or modified\n versions of it) with contractual assumptions of liability to the\n recipient, for any liability that these contractual assumptions\n directly impose on those licensors and authors.\n
    • \n
    \n

    \n

    \n All other non-permissive additional terms are considered\n "further restrictions" within the meaning of section 10.\n If the Program as you received it, or any part of it, contains a\n notice stating that it is governed by this License along with a term\n that is a further restriction, you may remove that term. If a\n license document contains a further restriction but permits\n relicensing or conveying under this License, you may add to a\n covered work material governed by the terms of that license\n document, provided that the further restriction does not survive\n such relicensing or conveying.\n

    \n

    \n If you add terms to a covered work in accord with this section, you\n must place, in the relevant source files, a statement of the\n additional terms that apply to those files, or a notice indicating\n where to find the applicable terms.\n

    \n

    \n Additional terms, permissive or non-permissive, may be stated in the\n form of a separately written license, or stated as exceptions; the\n above requirements apply either way.\n

    \n

    8. Termination.

    \n

    \n You may not propagate or modify a covered work except as expressly\n provided under this License. Any attempt otherwise to propagate or\n modify it is void, and will automatically terminate your rights\n under this License (including any patent licenses granted under the\n third paragraph of section 11).\n

    \n

    \n However, if you cease all violation of this License, then your\n license from a particular copyright holder is reinstated (a)\n provisionally, unless and until the copyright holder explicitly and\n finally terminates your license, and (b) permanently, if the\n copyright holder fails to notify you of the violation by some\n reasonable means prior to 60 days after the cessation.\n

    \n

    \n Moreover, your license from a particular copyright holder is\n reinstated permanently if the copyright holder notifies you of the\n violation by some reasonable means, this is the first time you have\n received notice of violation of this License (for any work) from\n that copyright holder, and you cure the violation prior to 30 days\n after your receipt of the notice.\n

    \n\n

    \n Termination of your rights under this section does not terminate the\n licenses of parties who have received copies or rights from you\n under this License. If your rights have been terminated and not\n permanently reinstated, you do not qualify to receive new licenses\n for the same material under section 10.\n

    \n\n

    9. Acceptance Not Required for Having Copies.

    \n

    \n You are not required to accept this License in order to receive or\n run a copy of the Program. Ancillary propagation of a covered work\n occurring solely as a consequence of using peer-to-peer transmission\n to receive a copy likewise does not require acceptance. However,\n nothing other than this License grants you permission to propagate\n or modify any covered work. These actions infringe copyright if you\n do not accept this License. Therefore, by modifying or propagating a\n covered work, you indicate your acceptance of this License to do so.\n

    \n\n

    10. Automatic Licensing of Downstream Recipients.

    \n

    \n Each time you convey a covered work, the recipient automatically\n receives a license from the original licensors, to run, modify and\n propagate that work, subject to this License. You are not\n responsible for enforcing compliance by third parties with this\n License.\n

    \n\n

    \n An "entity transaction" is a transaction transferring\n control of an organization, or substantially all assets of one, or\n subdividing an organization, or merging organizations. If\n propagation of a covered work results from an entity transaction,\n each party to that transaction who receives a copy of the work also\n receives whatever licenses to the work the party's predecessor in\n interest had or could give under the previous paragraph, plus a\n right to possession of the Corresponding Source of the work from the\n predecessor in interest, if the predecessor has it or can get it\n with reasonable efforts.\n

    \n\n

    \n You may not impose any further restrictions on the exercise of the\n rights granted or affirmed under this License. For example, you may\n not impose a license fee, royalty, or other charge for exercise of\n rights granted under this License, and you may not initiate\n litigation (including a cross-claim or counterclaim in a lawsuit)\n alleging that any patent claim is infringed by making, using,\n selling, offering for sale, or importing the Program or any portion\n of it.\n

    \n\n

    11. Patents.

    \n

    \n A "contributor" is a copyright holder who authorizes use\n under this License of the Program or a work on which the Program is\n based. The work thus licensed is called the contributor's\n "contributor version".\n

    \n\n

    \n A contributor's "essential patent claims" are all patent\n claims owned or controlled by the contributor, whether already\n acquired or hereafter acquired, that would be infringed by some\n manner, permitted by this License, of making, using, or selling its\n contributor version, but do not include claims that would be\n infringed only as a consequence of further modification of the\n contributor version. For purposes of this definition,\n "control" includes the right to grant patent sublicenses\n in a manner consistent with the requirements of this License.\n

    \n\n

    \n Each contributor grants you a non-exclusive, worldwide, royalty-free\n patent license under the contributor's essential patent claims, to\n make, use, sell, offer for sale, import and otherwise run, modify\n and propagate the contents of its contributor version.\n

    \n\n

    \n In the following three paragraphs, a "patent license" is\n any express agreement or commitment, however denominated, not to\n enforce a patent (such as an express permission to practice a patent\n or covenant not to sue for patent infringement). To\n "grant" such a patent license to a party means to make\n such an agreement or commitment not to enforce a patent against the\n party.\n

    \n\n

    \n If you convey a covered work, knowingly relying on a patent license,\n and the Corresponding Source of the work is not available for anyone\n to copy, free of charge and under the terms of this License, through\n a publicly available network server or other readily accessible\n means, then you must either (1) cause the Corresponding Source to be\n so available, or (2) arrange to deprive yourself of the benefit of\n the patent license for this particular work, or (3) arrange, in a\n manner consistent with the requirements of this License, to extend\n the patent license to downstream recipients. "Knowingly\n relying" means you have actual knowledge that, but for the\n patent license, your conveying the covered work in a country, or\n your recipient's use of the covered work in a country, would\n infringe one or more identifiable patents in that country that you\n have reason to believe are valid.\n

    \n\n

    \n If, pursuant to or in connection with a single transaction or\n arrangement, you convey, or propagate by procuring conveyance of, a\n covered work, and grant a patent license to some of the parties\n receiving the covered work authorizing them to use, propagate,\n modify or convey a specific copy of the covered work, then the\n patent license you grant is automatically extended to all recipients\n of the covered work and works based on it.\n

    \n\n

    \n A patent license is "discriminatory" if it does not\n include within the scope of its coverage, prohibits the exercise of,\n or is conditioned on the non-exercise of one or more of the rights\n that are specifically granted under this License. You may not convey\n a covered work if you are a party to an arrangement with a third\n party that is in the business of distributing software, under which\n you make payment to the third party based on the extent of your\n activity of conveying the work, and under which the third party\n grants, to any of the parties who would receive the covered work\n from you, a discriminatory patent license (a) in connection with\n copies of the covered work conveyed by you (or copies made from\n those copies), or (b) primarily for and in connection with specific\n products or compilations that contain the covered work, unless you\n entered into that arrangement, or that patent license was granted,\n prior to 28 March 2007.\n

    \n\n

    \n Nothing in this License shall be construed as excluding or limiting\n any implied license or other defenses to infringement that may\n otherwise be available to you under applicable patent law.\n

    \n\n

    12. No Surrender of Others' Freedom.

    \n

    \n If conditions are imposed on you (whether by court order, agreement\n or otherwise) that contradict the conditions of this License, they\n do not excuse you from the conditions of this License. If you cannot\n convey a covered work so as to satisfy simultaneously your\n obligations under this License and any other pertinent obligations,\n then as a consequence you may not convey it at all. For example, if\n you agree to terms that obligate you to collect a royalty for\n further conveying from those to whom you convey the Program, the\n only way you could satisfy both those terms and this License would\n be to refrain entirely from conveying the Program.\n

    \n\n

    \n 13. Remote Network Interaction; Use with the GNU General Public\n License.\n

    \n

    \n Notwithstanding any other provision of this License, if you modify\n the Program, your modified version must prominently offer all users\n interacting with it remotely through a computer network (if your\n version supports such interaction) an opportunity to receive the\n Corresponding Source of your version by providing access to the\n Corresponding Source from a network server at no charge, through\n some standard or customary means of facilitating copying of\n software. This Corresponding Source shall include the Corresponding\n Source for any work covered by version 3 of the GNU General Public\n License that is incorporated pursuant to the following paragraph.\n

    \n\n

    \n Notwithstanding any other provision of this License, you have\n permission to link or combine any covered work with a work licensed\n under version 3 of the GNU General Public License into a single\n combined work, and to convey the resulting work. The terms of this\n License will continue to apply to the part which is the covered\n work, but the work with which it is combined will remain governed by\n version 3 of the GNU General Public License.\n

    \n\n

    14. Revised Versions of this License.

    \n

    \n The Free Software Foundation may publish revised and/or new versions\n of the GNU Affero General Public License from time to time. Such new\n versions will be similar in spirit to the present version, but may\n differ in detail to address new problems or concerns.\n

    \n\n

    \n Each version is given a distinguishing version number. If the\n Program specifies that a certain numbered version of the GNU Affero\n General Public License "or any later version" applies to\n it, you have the option of following the terms and conditions either\n of that numbered version or of any later version published by the\n Free Software Foundation. If the Program does not specify a version\n number of the GNU Affero General Public License, you may choose any\n version ever published by the Free Software Foundation.\n

    \n\n

    \n Each version is given a distinguishing version number. If the\n Program specifies that a certain numbered version of the GNU Affero\n General Public License "or any later version" applies to\n it, you have the option of following the terms and conditions either\n of that numbered version or of any later version published by the\n Free Software Foundation. If the Program does not specify a version\n number of the GNU Affero General Public License, you may choose any\n version ever published by the Free Software Foundation.\n

    \n\n

    \n Later license versions may give you additional or different\n permissions. However, no additional obligations are imposed on any\n author or copyright holder as a result of your choosing to follow a\n later version.\n

    \n\n

    15. Disclaimer of Warranty.

    \n

    \n THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\n APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE\n COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS\n IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,\n INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF\n MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE\n RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU.\n SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL\n NECESSARY SERVICING, REPAIR OR CORRECTION.\n

    \n\n

    16. Limitation of Liability.

    \n

    \n IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN\n WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES\n AND/OR CONVEYS THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR\n DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL\n DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM\n (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED\n INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE\n OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH\n HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\n DAMAGES.\n

    \n\n

    17. Interpretation of Sections 15 and 16.

    \n

    \n If the disclaimer of warranty and limitation of liability provided\n above cannot be given local legal effect according to their terms,\n reviewing courts shall apply local law that most closely\n approximates an absolute waiver of all civil liability in connection\n with the Program, unless a warranty or assumption of liability\n accompanies a copy of the Program in return for a fee.\n

    \n\n

    END OF TERMS AND CONDITIONS

    \n\n

    How to Apply These Terms to Your New Programs

    \n

    \n If you develop a new program, and you want it to be of the greatest\n possible use to the public, the best way to achieve this is to make\n it free software which everyone can redistribute and change under\n these terms.\n

    \n\n

    \n To do so, attach the following notices to the program. It is safest\n to attach them to the start of each source file to most effectively\n state the exclusion of warranty; and each file should have at least\n the "copyright" line and a pointer to where the full\n notice is found.\n

    \n\n

    \n \n <one line to give the program's name and a brief idea of what\n it does.> Copyright (C) <year> <name of author>\n This program is free software: you can redistribute it and/or\n modify it under the terms of the GNU Affero General Public License\n as published by the Free Software Foundation, either version 3 of\n the License, or (at your option) any later version. This program\n is distributed in the hope that it will be useful, but WITHOUT ANY\n WARRANTY; without even the implied warranty of MERCHANTABILITY or\n FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General\n Public License for more details. You should have received a copy\n of the GNU Affero General Public License along with this program.\n If not, see <https://www.gnu.org/licenses/>.\n \n

    \n\n

    \n Also add information on how to contact you by electronic and paper\n mail.\n

    \n\n

    \n If your software can interact with users remotely through a computer\n network, you should also make sure that it provides a way for users\n to get its source. For example, if your program is a web\n application, its interface could display a "Source" link\n that leads users to an archive of the code. There are many ways you\n could offer source, and different solutions will be better for\n different programs; see section 13 for the specific requirements.\n

    \n\n

    \n You should also get your employer (if you work as a programmer) or\n school, if any, to sign a "copyright disclaimer" for the\n program, if necessary. For more information on this, and how to\n apply and follow the GNU AGPL, see <\n \n https://www.gnu.org/licenses/\n \n >.\n

    \n
    \n
    \n \n ) : null;\n};\n\nexport default withStyles(styles)(LicenseModal);\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 LICENSE_PLANS = {\n COMMUNITY: \"community\",\n STANDARD: \"standard\",\n ENTERPRISE: \"enterprise\",\n};\n\nexport const FEATURE_ITEMS = [\n {\n label: \"Unit Price\", //spacer\n isHeader: true,\n },\n {\n desc: \"Features\",\n featureTitleRow: true,\n },\n {\n desc: \"License\",\n },\n {\n desc: \"Software Release\",\n },\n {\n desc: \"SLA\",\n },\n {\n desc: \"Support\",\n },\n {\n desc: \"Critical Security and Bug Detection\",\n },\n {\n desc: \"Panic Button\",\n },\n {\n desc: \"Health Diagnostics\",\n },\n {\n desc: \"Annual Architecture Review\",\n },\n {\n desc: \"Annual Performance Review\",\n },\n {\n desc: \"Indemnification\",\n },\n {\n desc: \"Security and Policy Review\",\n },\n];\n\nexport const COMMUNITY_PLAN_FEATURES = [\n {\n label: \"Community\",\n isHeader: true,\n },\n {\n id: \"com_feat_title\",\n featureTitleRow: true,\n },\n {\n id: \"com_license\",\n label: \"GNU AGPL v3\",\n isOssLicenseLink: true,\n },\n {\n id: \"com_release\",\n label: \"Upstream\",\n },\n {\n id: \"com_sla\",\n label: \"No SLA\",\n },\n {\n id: \"com_support\",\n label: \"Community:\",\n detail: \"Public Slack Channel + Github Issues\",\n },\n {\n id: \"com_security\",\n label: \"Self\",\n },\n {\n id: \"com_panic\",\n xsLabel: \"N/A\",\n },\n {\n id: \"com_diag\",\n xsLabel: \"N/A\",\n },\n {\n id: \"com_arch\",\n xsLabel: \"N/A\",\n },\n {\n id: \"com_perf\",\n xsLabel: \"N/A\",\n },\n {\n id: \"com_indemnity\",\n xsLabel: \"N/A\",\n },\n {\n id: \"com_sec_policy\",\n xsLabel: \"N/A\",\n },\n];\n\nexport const STANDARD_PLAN_FEATURES = [\n {\n label: \"Standard\",\n isHeader: true,\n },\n {\n id: \"std_feat_title\",\n featureTitleRow: true,\n },\n {\n id: \"std_license\",\n label: \"Commercial\",\n },\n {\n id: \"std_release\",\n label: \"1 Year Long Term Support\",\n },\n {\n id: \"std_sla\",\n label: \"<48 Hours\",\n detail: \"(Local Business Hours)\",\n },\n {\n id: \"std_support\",\n label: \"L4 Direct Engineering\",\n detail: \"support via SUBNET\",\n },\n {\n id: \"std_security\",\n label: \"Continuous Scan and Alert\",\n },\n {\n id: \"std_panic\",\n label: \"1 Per year\",\n },\n {\n id: \"std_diag\",\n label: \"24/7/365\",\n },\n {\n id: \"std_arch\",\n xsLabel: \"N/A\",\n },\n {\n id: \"std_perf\",\n xsLabel: \"N/A\",\n },\n {\n id: \"std_indemnity\",\n xsLabel: \"N/A\",\n },\n {\n id: \"std_sec_policy\",\n xsLabel: \"N/A\",\n },\n];\n\nexport const ENTERPRISE_PLAN_FEATURES = [\n {\n label: \"Enterprise\",\n isHeader: true,\n },\n {\n id: \"end_feat_title\",\n featureTitleRow: true,\n },\n {\n id: \"ent_license\",\n label: \"Commercial\",\n },\n {\n id: \"ent_release\",\n label: \"5 Years Long Term Support\",\n },\n {\n id: \"ent_sla\",\n label: \"<1 hour\",\n },\n {\n id: \"ent_support\",\n label: \"L4 Direct Engineering support via\",\n detail: \"SUBNET, Phone, Web Conference\",\n },\n {\n id: \"ent_security\",\n label: \"Continuous Scan and Alert\",\n },\n {\n id: \"ent_panic\",\n label: \"Unlimited\",\n },\n {\n id: \"ent_diag\",\n label: \"24/7/365\",\n },\n {\n id: \"ent_arch\",\n yesIcon: true,\n },\n {\n id: \"ent_perf\",\n yesIcon: true,\n },\n {\n id: \"ent_indemnity\",\n yesIcon: true,\n },\n {\n id: \"ent_sec_policy\",\n yesIcon: true,\n },\n];\n\nexport const PAID_PLANS = [LICENSE_PLANS.STANDARD, LICENSE_PLANS.ENTERPRISE];\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 clsx from \"clsx\";\nimport CheckCircleIcon from \"@mui/icons-material/CheckCircle\";\nimport Button from \"@mui/material/Button\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { SubnetInfo } from \"./types\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, Tooltip } from \"@mui/material\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\nimport { HelpIconFilled, LicenseDocIcon, OpenSourceIcon } from \"../../../icons\";\nimport {\n LICENSE_PLANS,\n FEATURE_ITEMS,\n COMMUNITY_PLAN_FEATURES,\n STANDARD_PLAN_FEATURES,\n ENTERPRISE_PLAN_FEATURES,\n PAID_PLANS,\n} from \"./utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n textDecoration: \"underline !important\",\n color: theme.palette.info.main,\n },\n linkButton: {\n fontFamily: '\"Lato\", sans-serif',\n fontWeight: \"normal\",\n textTransform: \"none\",\n fontSize: \"inherit\",\n height: 0,\n padding: 0,\n margin: 0,\n },\n tableContainer: {\n marginLeft: 28,\n },\n detailsContainerBorder: {\n borderLeft: \"1px solid #e2e2e2\",\n },\n detailsTitle: {\n fontSize: 19,\n fontWeight: 700,\n marginBottom: 26,\n paddingTop: 18,\n lineHeight: 1,\n },\n });\n\ninterface IRegisterStatus {\n classes: any;\n activateProductModal: any;\n closeModalAndFetchLicenseInfo: any;\n licenseInfo: SubnetInfo | undefined;\n setLicenseModal: React.Dispatch>;\n operatorMode: boolean;\n currentPlanID: number;\n setActivateProductModal: any;\n}\n\nconst PlanHeader = ({\n isActive,\n isXsViewActive,\n title,\n onClick,\n children,\n}: {\n isActive: boolean;\n isXsViewActive: boolean;\n title: string;\n price?: string;\n tooltipText?: string;\n onClick: any;\n children: any;\n}) => {\n const plan = title.toLowerCase();\n return (\n {\n onClick && onClick(plan);\n }}\n sx={{\n display: \"flex\",\n alignItems: \"flex-start\",\n justifyContent: \"center\",\n flexFlow: \"column\",\n paddingLeft: \"26px\",\n borderLeft: \"1px solid #eaeaea\",\n \"& .plan-header\": {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexFlow: \"column\",\n },\n\n \"& .title-block\": {\n paddingTop: \"20px\",\n display: \"flex\",\n alignItems: \"flex-start\",\n flexFlow: \"column\",\n width: \"100%\",\n\n marginTop: \"auto\",\n marginBottom: \"auto\",\n \"& .title-main\": {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flex: 1,\n },\n \"& .min-icon\": {\n marginLeft: \"13px\",\n height: \"13px\",\n width: \"13px\",\n },\n\n \"& .title\": {\n fontSize: \"22px\",\n fontWeight: 600,\n },\n },\n\n \"& .price-line\": {\n fontSize: \"16px\",\n fontWeight: 600,\n },\n \"& .minimum-cost\": {\n fontSize: \"14px\",\n fontWeight: 400,\n marginBottom: \"5px\",\n },\n \"& .open-source\": {\n fontSize: \"14px\",\n display: \"flex\",\n marginBottom: \"5px\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: \"8px\",\n height: \"12px\",\n width: \"12px\",\n },\n },\n\n \"& .cur-plan-text\": {\n fontSize: \"12px\",\n textTransform: \"uppercase\",\n },\n\n \"@media (max-width: 600px)\": {\n cursor: \"pointer\",\n \"& .title-block\": {\n \"& .title\": {\n fontSize: \"14px\",\n fontWeight: 600,\n },\n },\n },\n\n \"&.active, &.active.xs-active\": {\n borderTop: \"3px solid #2781B0\",\n color: \"#ffffff\",\n\n \"& .min-icon\": {\n fill: \"#ffffff\",\n },\n },\n \"&.active\": {\n background: \"#2781B0\",\n color: \"#ffffff\",\n },\n \"&.xs-active\": {\n background: \"#eaeaea\",\n },\n }}\n >\n {children}\n \n );\n};\n\nconst FeatureTitleRowCmp = (props: { featureLabel: any }) => {\n return (\n \n \n
    {props.featureLabel}
    \n
    \n
    \n );\n};\n\nconst PricingFeatureItem = (props: {\n featureLabel: any;\n label?: string;\n detail?: string;\n xsLabel?: string;\n}) => {\n return (\n \n \n
    {props.featureLabel}
    \n \n
    {props.label || \"\"}
    \n {props.detail ?
    {props.detail}
    : null}\n
    {props.xsLabel}
    \n
    \n
    \n
    \n );\n};\n\nconst LicensePlans = ({\n licenseInfo,\n setLicenseModal,\n operatorMode,\n}: IRegisterStatus) => {\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"sm\"));\n\n let currentPlan = !licenseInfo\n ? \"community\"\n : licenseInfo?.plan?.toLowerCase();\n\n const isCommunityPlan = currentPlan === LICENSE_PLANS.COMMUNITY;\n const isStandardPlan = currentPlan === LICENSE_PLANS.STANDARD;\n const isEnterprisePlan = currentPlan === LICENSE_PLANS.ENTERPRISE;\n\n const isPaidPlan = PAID_PLANS.includes(currentPlan);\n\n /*In smaller screen use tabbed view to show features*/\n const [xsPlanView, setXsPlanView] = useState(\"\");\n let isXsViewCommunity = xsPlanView === LICENSE_PLANS.COMMUNITY;\n let isXsViewStandard = xsPlanView === LICENSE_PLANS.STANDARD;\n let isXsViewEnterprise = xsPlanView === LICENSE_PLANS.ENTERPRISE;\n\n const getCommunityPlanHeader = () => {\n const tooltipText =\n \"Designed for developers who are building open source applications in compliance with the AGPL v3 license and are able to support themselves. The community version of MinIO has all the functionality of the Standard and Enterprise editions.\";\n\n return (\n \n \n \n
    Community
    \n \n
    \n \n
    \n
    \n
    \n
    \n {isCommunityPlan ? \"Current Plan\" : \"\"}\n
    \n
    \n
    \n \n Open Source\n
    \n \n );\n };\n\n const getStandardPlanHeader = () => {\n const tooltipText =\n \"Designed for customers who require a commercial license and can mostly self-support but want the peace of mind that comes with the MinIO Subscription Network’s suite of operational capabilities and direct-to-engineer interaction. The Standard version is fully featured but with SLA limitations. \";\n\n return (\n \n \n \n
    Standard
    \n \n
    \n \n
    \n
    \n
    \n
    \n {isStandardPlan ? \"Current Plan\" : \"\"}\n
    \n
    \n
    $10 per TiB per month
    \n
    (Minimum of 100TiB)
    \n \n );\n };\n\n const getEnterpriseHeader = () => {\n const tooltipText =\n \"Designed for mission critical environments where both a license and strict SLAs are required. The Enterprise version is fully featured but comes with additional capabilities. \";\n\n return (\n \n \n \n
    Enterprise
    \n \n
    \n \n
    \n
    \n
    \n
    \n {isEnterprisePlan ? \"Current Plan\" : \"\"}\n
    \n
    \n
    $20 per TiB per month
    \n
    (Minimum of 100TiB)
    \n \n );\n };\n\n const getButton = (\n link: string,\n btnText: string,\n variant: any,\n plan: string\n ) => {\n let linkToNav =\n currentPlan !== \"community\" ? \"https://subnet.min.io\" : link;\n return (\n {\n e.preventDefault();\n\n window.open(\n `${linkToNav}?ref=${operatorMode ? \"op\" : \"con\"}`,\n \"_blank\"\n );\n }}\n >\n {btnText}\n \n );\n };\n\n const onPlanClick = (plan: string) => {\n setXsPlanView(plan);\n };\n\n useEffect(() => {\n if (isSmallScreen) {\n setXsPlanView(currentPlan || \"community\");\n } else {\n setXsPlanView(\"\");\n }\n }, [isSmallScreen, currentPlan]);\n\n const linkTracker = `?ref=${operatorMode ? \"op\" : \"con\"}`;\n\n const featureList = FEATURE_ITEMS;\n return (\n \n \n \n \n \n {featureList.map((fi) => {\n const featureTitleRow = fi.featureTitleRow;\n const isHeader = fi.isHeader;\n\n if (isHeader) {\n if (isPaidPlan) {\n return (\n \n \n \n View License agreement
    \n for the registered plan.\n \n
    \n );\n }\n\n return (\n \n {fi.label}\n \n );\n }\n if (featureTitleRow) {\n return (\n \n
    {fi.desc}
    \n \n );\n }\n return (\n \n
    {fi.desc}
    \n
    \n );\n })}\n \n {!isPaidPlan ? (\n \n {COMMUNITY_PLAN_FEATURES.map((fi, idx) => {\n const featureLabel = featureList[idx].desc;\n const { featureTitleRow, isHeader, isOssLicenseLink } = fi;\n\n if (isHeader) {\n return getCommunityPlanHeader();\n }\n if (featureTitleRow) {\n return (\n \n );\n }\n\n if (isOssLicenseLink) {\n return (\n \n {\n e.preventDefault();\n e.stopPropagation();\n setLicenseModal && setLicenseModal(true);\n }}\n >\n GNU AGPL v3\n \n \n );\n }\n return (\n \n );\n })}\n \n {getButton(\n `https://slack.min.io${linkTracker}`,\n \"Join Slack\",\n \"outlined\",\n LICENSE_PLANS.COMMUNITY\n )}\n \n \n ) : null}\n \n {STANDARD_PLAN_FEATURES.map((fi, idx) => {\n const featureLabel = featureList[idx].desc;\n const featureTitleRow = fi.featureTitleRow;\n const isHeader = fi.isHeader;\n\n if (isHeader) {\n return getStandardPlanHeader();\n }\n if (featureTitleRow) {\n return (\n \n );\n }\n return (\n \n );\n })}\n\n \n {getButton(\n `https://min.io/signup${linkTracker}`,\n !PAID_PLANS.includes(currentPlan)\n ? \"Subscribe\"\n : \"Login to SUBNET\",\n \"contained\",\n LICENSE_PLANS.STANDARD\n )}\n \n \n \n {ENTERPRISE_PLAN_FEATURES.map((fi, idx) => {\n const featureLabel = featureList[idx].desc;\n const { featureTitleRow, isHeader, yesIcon } = fi;\n\n if (isHeader) {\n return getEnterpriseHeader();\n }\n\n if (featureTitleRow) {\n return (\n \n );\n }\n\n if (yesIcon) {\n return (\n \n \n
    \n \n \n \n
    \n
    \n );\n }\n return (\n \n );\n })}\n \n {getButton(\n `https://min.io/signup${linkTracker}`,\n !PAID_PLANS.includes(currentPlan)\n ? \"Subscribe\"\n : \"Login to SUBNET\",\n \"contained\",\n LICENSE_PLANS.ENTERPRISE\n )}\n \n \n \n \n
    \n );\n};\n\nexport default withStyles(styles)(LicensePlans);\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, LinearProgress } from \"@mui/material\";\nimport clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport Button from \"@mui/material/Button\";\nimport Typography from \"@mui/material/Typography\";\nimport { SubnetInfo } from \"./types\";\nimport { AppState } from \"../../../store\";\nimport { containerForHeader } from \"../Common/FormComponents/common/styleLibrary\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport LicenseModal from \"./LicenseModal\";\nimport api from \"../../../common/api\";\nimport {\n ArrowRightLink,\n HelpIconFilled,\n LicenseIcon,\n LoginMinIOLogo,\n} from \"../../../icons\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_PAGES_PERMISSIONS,\n} from \"../../../common/SecureComponent/permissions\";\nimport LicensePlans from \"./LicensePlans\";\nimport { Link } from \"react-router-dom\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport RegistrationStatusBanner from \"../Support/RegistrationStatusBanner\";\n\nconst mapState = (state: AppState) => ({\n operatorMode: state.system.operatorMode,\n});\n\nconst connector = connect(mapState, null);\n\nconst styles = (theme: Theme) =>\n createStyles({\n pageTitle: {\n backgroundColor: \"rgb(250,250,252)\",\n marginTop: 40,\n border: \"1px solid #E5E5E5\",\n paddingTop: 33,\n paddingLeft: 28,\n paddingBottom: 30,\n paddingRight: 28,\n fontSize: 16,\n fontWeight: \"bold\",\n \"& ul\": {\n marginLeft: \"-25px\",\n listStyleType: \"square\",\n color: \"#1C5A8D\",\n fontSize: \"16px\",\n \"& li\": {\n float: \"left\",\n fontSize: 14,\n marginRight: 40,\n },\n \"& li::before\": {\n color: \"red\",\n content: \"•\",\n },\n },\n },\n licDet: {\n fontSize: 11,\n color: \"#5E5E5E\",\n },\n linkMore: {\n marginTop: 10,\n marginBottom: 20,\n },\n chooseFlavorText: {\n color: \"#000000\",\n fontSize: 14,\n },\n link: {\n textDecoration: \"underline !important\",\n color: theme.palette.info.main,\n },\n linkButton: {\n fontFamily: '\"Lato\", sans-serif',\n fontWeight: \"normal\",\n textTransform: \"none\",\n fontSize: \"inherit\",\n height: 0,\n padding: 0,\n margin: 0,\n },\n\n openSourcePolicy: {\n fontSize: 14,\n color: \"#1C5A8D\",\n fontWeight: \"bold\",\n },\n licenseInfo: {\n position: \"relative\",\n },\n licenseInfoTitle: {\n textTransform: \"none\",\n color: \"#999999\",\n fontSize: 11,\n },\n licenseInfoValue: {\n textTransform: \"none\",\n fontSize: 14,\n fontWeight: \"bold\",\n },\n subnetSubTitle: {\n fontSize: 14,\n },\n verifiedIcon: {\n width: 96,\n position: \"absolute\",\n right: 0,\n bottom: 29,\n },\n loadingLoginStrategy: {\n textAlign: \"center\",\n },\n ...containerForHeader(theme.spacing(4)),\n mainContainer: {\n border: \"1px solid #EAEDEE\",\n padding: 40,\n margin: 40,\n },\n icon: {\n color: theme.palette.primary.main,\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 20,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n marginRight: 15,\n },\n },\n });\n\ninterface ILicenseProps {\n classes: any;\n operatorMode: boolean;\n}\n\nconst License = ({ classes, operatorMode }: ILicenseProps) => {\n const [activateProductModal, setActivateProductModal] =\n useState(false);\n\n const [licenseModal, setLicenseModal] = useState(false);\n\n const [licenseInfo, setLicenseInfo] = useState();\n const [currentPlanID, setCurrentPlanID] = useState(0);\n const [loadingLicenseInfo, setLoadingLicenseInfo] = useState(false);\n const [initialLicenseLoading, setInitialLicenseLoading] =\n useState(true);\n useState(false);\n const [clusterRegistered, setClusterRegistered] = useState(false);\n\n const getSubnetInfo = hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.LICENSE],\n true\n );\n\n const closeModalAndFetchLicenseInfo = () => {\n setActivateProductModal(false);\n fetchLicenseInfo();\n };\n\n const fetchLicenseInfo = useCallback(() => {\n if (loadingLicenseInfo) {\n return;\n }\n if (getSubnetInfo) {\n setLoadingLicenseInfo(true);\n api\n .invoke(\"GET\", `/api/v1/subnet/info`)\n .then((res: SubnetInfo) => {\n if (res) {\n if (res.plan === \"STANDARD\") {\n setCurrentPlanID(1);\n } else if (res.plan === \"ENTERPRISE\") {\n setCurrentPlanID(2);\n } else {\n setCurrentPlanID(1);\n }\n setLicenseInfo(res);\n }\n setClusterRegistered(true);\n setLoadingLicenseInfo(false);\n })\n .catch(() => {\n setClusterRegistered(false);\n setLoadingLicenseInfo(false);\n });\n } else {\n setLoadingLicenseInfo(false);\n }\n }, [loadingLicenseInfo, getSubnetInfo]);\n\n useEffect(() => {\n if (initialLicenseLoading) {\n fetchLicenseInfo();\n setInitialLicenseLoading(false);\n }\n }, [fetchLicenseInfo, initialLicenseLoading, setInitialLicenseLoading]);\n\n if (loadingLicenseInfo) {\n return (\n \n \n \n );\n }\n\n const isRegistered = licenseInfo && clusterRegistered;\n\n return (\n \n \n\n \n \n {isRegistered && (\n \n )}\n \n {!isRegistered && (\n \n \n \n Are you already a customer of ?\n \n \n Register this cluster{\" \"}\n \n \n \n\n
    \n \n \n \n Choosing between GNU AGPL v3 and Commercial License\n \n \n
    \n \n If you are building proprietary applications, you may want to\n choose the commercial license included as part of the Standard\n and Enterprise subscription plans. Applications must otherwise\n comply with all the GNU AGPLv3 License & Trademark obligations.\n Follow the links below to learn more about the compliance\n policy.\n \n \n
  • \n \n Learn more about GNU AGPL v3\n \n
  • \n
  • \n \n MinIO Trademark Compliance\n \n
  • \n
    \n
    \n
    \n\n \n MinIO License and Support plans\n \n \n )}\n\n \n\n \n \n \n \n setLicenseModal(false)}\n />\n \n \n \n \n \n
    GNU Affero General Public License
    \n
    \n Version 3. 19 November 2007\n
    \n \n \n \"agpl\"\n \n \n\n \n \n The GNU Affero General Public License is a free, copyleft\n license for software and other kinds of works, specifically\n designed to ensure cooperation with the Community in the\n case of network server software.\n \n
    \n \n The licenses for most software and other practical works are\n designed to take away your freedom to share and change the\n works. By contrast, our General Public Licenses are intended\n to guarantee your freedom to share and change all versions\n of a program--to make sure it remains free software for all\n its users.\n \n
    \n setLicenseModal(true)}\n >\n Read more{\" \"}\n \n \n
    \n
    \n
    \n
    \n
    \n \n \n \n );\n};\n\nexport default connector(withStyles(styles)(License));\n","import React from \"react\";\nimport { Box } from \"@mui/material\";\nimport VerifiedIcon from \"../../../icons/VerifiedIcon\";\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 _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm-2 15-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckCircle');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","import * as React from 'react';\nimport { getThemeProps, useThemeWithoutDefault as useTheme } from '@mui/system';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\n/**\n * @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.\n */\n\nfunction useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {\n const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n const [match, setMatch] = React.useState(() => {\n if (noSsr && supportMatchMedia) {\n return matchMedia(query).matches;\n }\n\n if (ssrMatchMedia) {\n return ssrMatchMedia(query).matches;\n } // Once the component is mounted, we rely on the\n // event listeners to return the correct matches value.\n\n\n return defaultMatches;\n });\n useEnhancedEffect(() => {\n let active = true;\n\n if (!supportMatchMedia) {\n return undefined;\n }\n\n const queryList = matchMedia(query);\n\n const updateMatch = () => {\n // Workaround Safari wrong implementation of matchMedia\n // TODO can we remove it?\n // https://github.com/mui/material-ui/pull/17315#issuecomment-528286677\n if (active) {\n setMatch(queryList.matches);\n }\n };\n\n updateMatch(); // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n\n queryList.addListener(updateMatch);\n return () => {\n active = false;\n queryList.removeListener(updateMatch);\n };\n }, [query, matchMedia, supportMatchMedia]);\n return match;\n} // eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\n\n\nconst maybeReactUseSyncExternalStore = React['useSyncExternalStore' + ''];\n\nfunction useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia) {\n const getDefaultSnapshot = React.useCallback(() => defaultMatches, [defaultMatches]);\n const getServerSnapshot = React.useMemo(() => {\n if (ssrMatchMedia !== null) {\n const {\n matches\n } = ssrMatchMedia(query);\n return () => matches;\n }\n\n return getDefaultSnapshot;\n }, [getDefaultSnapshot, query, ssrMatchMedia]);\n const [getSnapshot, subscribe] = React.useMemo(() => {\n if (matchMedia === null) {\n return [getDefaultSnapshot, () => () => {}];\n }\n\n const mediaQueryList = matchMedia(query);\n return [() => mediaQueryList.matches, notify => {\n // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n mediaQueryList.addListener(notify);\n return () => {\n mediaQueryList.removeListener(notify);\n };\n }];\n }, [getDefaultSnapshot, matchMedia, query]);\n const match = maybeReactUseSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n return match;\n}\n\nexport default function useMediaQuery(queryInput, options = {}) {\n const theme = useTheme(); // Wait for jsdom to support the match media feature.\n // All the browsers MUI support have this built-in.\n // This defensive check is here for simplicity.\n // Most of the time, the match media logic isn't central to people tests.\n\n const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n const {\n defaultMatches = false,\n matchMedia = supportMatchMedia ? window.matchMedia : null,\n ssrMatchMedia = null,\n noSsr\n } = getThemeProps({\n name: 'MuiUseMediaQuery',\n props: options,\n theme\n });\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof queryInput === 'function' && theme === null) {\n console.error(['MUI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n\n let query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n query = query.replace(/^@media( ?)/m, ''); // TODO: Drop `useMediaQueryOld` and use `use-sync-external-store` shim in `useMediaQueryNew` once the package is stable\n\n const useMediaQueryImplementation = maybeReactUseSyncExternalStore !== undefined ? useMediaQueryNew : useMediaQueryOld;\n const match = useMediaQueryImplementation(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr);\n\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue({\n query,\n match\n });\n }\n\n return match;\n}"],"names":["withStyles","theme","createStyles","pageContentStyles","classes","className","children","contentSpacer","container","item","xs","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","wideLimit","noContentPadding","titleIcon","useState","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","root","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","toggleList","sidebarOpen","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","display","backgroundColor","left","boxShadow","label","justifyContent","alignItems","labelStyle","color","fontSize","fontWeight","marginLeft","marginTop","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","actions","includes","Fragment","direction","sm","md","sx","paddingTop","variant","component","pageTitle","marginBottom","pageSubTitle","containerForHeader","spacing","closeModal","ModalWrapper","Grid","Typography","subnetLicenseKey","target","href","rel","LICENSE_PLANS","FEATURE_ITEMS","isHeader","desc","featureTitleRow","COMMUNITY_PLAN_FEATURES","isOssLicenseLink","detail","xsLabel","STANDARD_PLAN_FEATURES","ENTERPRISE_PLAN_FEATURES","yesIcon","PAID_PLANS","PlanHeader","isActive","isXsViewActive","plan","toLowerCase","Box","clsx","active","flexFlow","paddingLeft","borderLeft","flex","height","marginRight","textTransform","cursor","borderTop","background","FeatureTitleRowCmp","props","featureLabel","PricingFeatureItem","link","textDecoration","info","linkButton","fontFamily","margin","tableContainer","detailsContainerBorder","detailsTitle","lineHeight","licenseInfo","setLicenseModal","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","currentPlan","isCommunityPlan","isStandardPlan","isEnterprisePlan","isPaidPlan","xsPlanView","setXsPlanView","isXsViewCommunity","isXsViewStandard","isXsViewEnterprise","getButton","btnText","linkToNav","Button","paddingRight","disabled","e","preventDefault","window","onPlanClick","linkTracker","featureList","border","overflow","overflowY","borderRadius","borderBottom","gridTemplateColumns","minWidth","maxHeight","position","top","map","fi","idx","Tooltip","placement","stopPropagation","CheckCircle","listStyleType","float","licDet","linkMore","chooseFlavorText","openSourcePolicy","licenseInfoTitle","licenseInfoValue","subnetSubTitle","verifiedIcon","right","bottom","loadingLoginStrategy","mainContainer","icon","activateProductModal","setActivateProductModal","licenseModal","setLicenseInfo","currentPlanID","setCurrentPlanID","loadingLicenseInfo","setLoadingLicenseInfo","initialLicenseLoading","setInitialLicenseLoading","clusterRegistered","setClusterRegistered","getSubnetInfo","hasPermission","CONSOLE_UI_RESOURCE","IAM_PAGES_PERMISSIONS","IAM_PAGES","fetchLicenseInfo","useCallback","api","then","res","catch","LinearProgress","isRegistered","PageHeader","PageLayout","RegistrationStatusBanner","email","to","style","clear","closeModalAndFetchLicenseInfo","lg","src","alt","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","useMediaQueryOld","query","defaultMatches","matchMedia","ssrMatchMedia","noSsr","supportMatchMedia","React","matches","match","setMatch","useEnhancedEffect","queryList","updateMatch","addListener","removeListener","maybeReactUseSyncExternalStore","useMediaQueryNew","getDefaultSnapshot","getServerSnapshot","mediaQueryList","notify","getSnapshot","subscribe","queryInput","options","getThemeProps","name","replace","useMediaQueryImplementation","undefined"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/191.22ff1445.chunk.js b/portal-ui/build/static/js/191.22ff1445.chunk.js new file mode 100644 index 000000000..5c6b6b66a --- /dev/null +++ b/portal-ui/build/static/js/191.22ff1445.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[191],{23804:function(e,n,t){t(72791);var r=t(11135),o=t(25787),i=t(61889),a=t(80184);n.Z=(0,o.Z)((function(e){return(0,r.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,r=e.title,o=e.help;return(0,a.jsx)("div",{className:n.root,children:(0,a.jsxs)(i.ZP,{container:!0,children:[(0,a.jsxs)(i.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,r]}),(0,a.jsx)(i.ZP,{item:!0,xs:12,className:n.helpText,children:o})]})})}))},40603:function(e,n,t){var r=t(1413),o=t(45987),i=(t(72791),t(85531)),a=t(72455),s=t(80184),l=["onClick","text","disabled","tooltip","icon","className"],c=(0,a.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,r=n.color,o=e.palette.primary.main;return"primary"===r&&"contained"===t?o=e.palette.primary.contrastText:"primary"===r&&"outlined"===t?o=e.palette.primary.main:"secondary"===r&&(o=e.palette.secondary.main),o}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=c(e),t=e.onClick,a=e.text,d=void 0===a?"":a,u=e.disabled,p=void 0!==u&&u,m=e.tooltip,h=e.icon,f=void 0===h?null:h,x=e.className,g=void 0===x?"":x,Z=(0,o.Z)(e,l);return(0,s.jsxs)(i.Z,(0,r.Z)((0,r.Z)({className:g,classes:n,tooltip:m||d,variant:"outlined",onClick:t,disabled:p,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},Z),{},{children:[(0,s.jsx)("span",{children:d})," ",f]}))}},81806:function(e,n,t){var r=t(1413),o=t(45987),i=(t(72791),t(11135)),a=t(25787),s=t(80184),l=["classes","children"];n.Z=(0,a.Z)((function(e){return(0,i.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,i=(0,o.Z)(e,l);return(0,s.jsx)("button",(0,r.Z)((0,r.Z)({},i),{},{className:n.root,children:t}))}))},85531:function(e,n,t){var r=t(1413),o=t(4942),i=t(45987),a=(t(72791),t(11135)),s=t(25787),l=t(13400),c=t(20068),d=t(28182),u=t(80184),p=["classes","children","variant","tooltip"];n.Z=(0,s.Z)((function(e){return(0,a.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,t=e.children,a=e.variant,s=void 0===a?"outlined":a,m=e.tooltip,h=(0,i.Z)(e,p),f=(0,u.jsx)(l.Z,(0,r.Z)((0,r.Z)({},h),{},{className:(0,d.Z)(n.root,(0,o.Z)({},n.contained,"contained"===s)),children:t}));return m&&""!==m?(0,u.jsx)(c.Z,{title:m,children:(0,u.jsx)("span",{children:f})}):f}))},75578:function(e,n,t){var r=t(1413),o=t(72791),i=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,i.jsx)(o.Suspense,{fallback:n,children:(0,i.jsx)(e,(0,r.Z)({},t))})}return t}},74794:function(e,n,t){var r=t(1413),o=(t(72791),t(61889)),i=t(11135),a=t(25787),s=t(23814),l=t(80184);n.Z=(0,a.Z)((function(e){return(0,i.Z)((0,r.Z)({},s.Bw))}))((function(e){var n=e.classes,t=e.className,r=void 0===t?"":t,i=e.children;return(0,l.jsx)("div",{className:n.contentSpacer,children:(0,l.jsx)(o.ZP,{container:!0,children:(0,l.jsx)(o.ZP,{item:!0,xs:12,className:r,children:i})})})}))},32291:function(e,n,t){var r=t(72791),o=t(60364),i=t(61889),a=t(11135),s=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),p=t(3925),m=t(13048),h=t(80184),f={toggleList:p.kQ},x=(0,o.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),f);n.Z=x((0,s.Z)((function(e){return(0,a.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,o=e.actions,a=e.sidebarOpen,s=e.operatorMode,p=e.managerObjects,f=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(r.Fragment,{}):(0,h.jsxs)(i.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,h.jsx)("div",{className:n.logo,children:s?(0,h.jsx)(d.Z,{}):(0,h.jsx)(u.Z,{})}),(0,h.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),x&&(0,h.jsx)(i.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,h.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.rightMenu,children:[o&&o,p&&p.length>0&&(0,h.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){f()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(m.gx,{})})]})]})})))},59114:function(e,n,t){var r=t(4942),o=t(1413),i=(t(72791),t(63466)),a=t(74900),s=t(27391),l=t(25787),c=t(11135),d=t(23814),u=t(80184);n.Z=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,o.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,o=e.classes,l=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,p=e.overrideClass,m=e.value,h=(0,r.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(i.Z,{position:d,className:o.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(s.Z,{placeholder:t,className:p||o.searchField,id:"search-resource",label:"",InputProps:h,onChange:function(e){l(e.target.value)},variant:"standard",value:m})}))},60191:function(e,n,t){t.r(n);var r=t(70885),o=t(1413),i=t(72791),a=t(60364),s=t(11135),l=t(25787),c=t(61889),d=t(40986),u=t(13048),p=t(42649),m=t(21639),h=t(23814),f=t(81207),x=t(92983),g=t(32291),Z=t(23804),j=t(62666),b=t(81806),v=t(74794),y=t(59114),C=t(56087),S=t(38442),F=t(75578),N=t(40603),k=t(80184),P=(0,F.Z)(i.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(8896)]).then(t.bind(t,88896))}))),M=(0,F.Z)(i.lazy((function(){return Promise.all([t.e(3772),t.e(7413)]).then(t.bind(t,57413))}))),R=(0,F.Z)(i.lazy((function(){return Promise.all([t.e(3772),t.e(9134)]).then(t.bind(t,39134))}))),I={setErrorSnackMessage:p.Ih},_=(0,a.$j)(null,I);n.default=(0,l.Z)((function(e){return(0,s.Z)((0,o.Z)((0,o.Z)({tableBlock:(0,o.Z)((0,o.Z)({},h.VX.tableBlock),{},{marginTop:15})},h.OR),{},{searchField:(0,o.Z)((0,o.Z)({},h.qg.searchField),{},{maxWidth:380})},(0,h.Bz)(e.spacing(4))))}))(_((function(e){var n=e.classes,t=e.setErrorSnackMessage,o=(0,i.useState)(!1),a=(0,r.Z)(o,2),s=a[0],l=a[1],p=(0,i.useState)(null),h=(0,r.Z)(p,2),F=h[0],I=h[1],_=(0,i.useState)(!1),A=(0,r.Z)(_,2),T=A[0],E=A[1],G=(0,i.useState)(!1),w=(0,r.Z)(G,2),O=w[0],L=w[1],B=(0,i.useState)([]),D=(0,r.Z)(B,2),U=D[0],z=D[1],K=(0,i.useState)(""),V=(0,r.Z)(K,2),W=V[0],q=V[1],Q=(0,i.useState)(!1),$=(0,r.Z)(Q,2),H=$[0],X=$[1];(0,i.useEffect)((function(){L(!0)}),[]),(0,i.useEffect)((function(){L(!0)}),[]);var Y=(0,S.F)(C.C3,[C.Ft.ADMIN_LIST_GROUPS]),J=(0,S.F)(C.C3,[C.Ft.ADMIN_REMOVE_USER_FROM_GROUP]),ee=(0,S.F)(C.C3,[C.Ft.ADMIN_GET_GROUP]);(0,i.useEffect)((function(){if(O)if(Y){f.Z.invoke("GET","/api/v1/groups").then((function(e){var n=[];null!==e.groups&&(n=e.groups.sort(m.V2)),z(n),L(!1)})).catch((function(e){t(e),L(!1)}))}else L(!1)}),[O,t,Y]);var ne=U.filter((function(e){return e.includes(W)})),te=[{type:"view",onClick:function(e){j.Z.push("".concat(C.gA.GROUPS,"/").concat(e))},disableButtonFunction:function(){return!ee}},{type:"delete",onClick:function(e){E(!0),I(e)},disableButtonFunction:function(){return!J}}];return(0,k.jsxs)(i.Fragment,{children:[s&&(0,k.jsx)(M,{open:s,selectedGroup:F,closeModalAndRefresh:function(){l(!1),L(!0)}}),T&&(0,k.jsx)(P,{deleteOpen:T,selectedGroup:F,closeDeleteModalAndRefresh:function(e){E(!1),e&&L(!0)}}),X&&(0,k.jsx)(R,{open:H,selectedGroup:F,selectedUser:null,closeModalAndRefresh:function(){X(!1)}}),(0,k.jsx)(g.Z,{label:"Groups"}),(0,k.jsxs)(v.Z,{children:[(0,k.jsxs)(c.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,k.jsx)(S.s,{resource:C.C3,scopes:[C.Ft.ADMIN_LIST_GROUPS],errorProps:{disabled:!0},children:(0,k.jsx)(y.Z,{placeholder:"Search Groups",onChange:q,overrideClass:n.searchField,value:W})}),(0,k.jsx)(S.s,{resource:C.C3,scopes:[C.Ft.ADMIN_ADD_USER_TO_GROUP,C.Ft.ADMIN_LIST_USERS],matchAll:!0,errorProps:{disabled:!0},children:(0,k.jsx)(N.Z,{tooltip:"Create Group",text:"Create Group",variant:"contained",color:"primary",icon:(0,k.jsx)(u.dt,{}),onClick:function(){I(null),l(!0)}})})]}),O&&(0,k.jsx)(d.Z,{}),!O&&(0,k.jsxs)(i.Fragment,{children:[U.length>0&&(0,k.jsxs)(i.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,k.jsx)(S.s,{resource:C.C3,scopes:[C.Ft.ADMIN_LIST_GROUPS],errorProps:{disabled:!0},children:(0,k.jsx)(x.Z,{itemActions:te,columns:[{label:"Name",elementKey:""}],isLoading:O,records:ne,entityName:"Groups",idField:""})})}),(0,k.jsx)(c.ZP,{item:!0,xs:12,marginTop:"25px",children:(0,k.jsx)(Z.Z,{title:"Groups",iconComponent:(0,k.jsx)(u.ww,{}),help:(0,k.jsxs)(i.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,k.jsx)("br",{}),(0,k.jsx)("br",{}),"You can learn more at our"," ",(0,k.jsx)("a",{href:"https://docs.min.io/minio/k8s/tutorials/group-management.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})})]}),0===U.length&&(0,k.jsx)(c.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,k.jsx)(c.ZP,{item:!0,xs:8,children:(0,k.jsx)(Z.Z,{title:"Groups",iconComponent:(0,k.jsx)(u.oy,{}),help:(0,k.jsxs)(i.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,k.jsxs)(S.s,{resource:C.C3,scopes:[C.Ft.ADMIN_ADD_USER_TO_GROUP,C.Ft.ADMIN_LIST_USERS],matchAll:!0,children:[(0,k.jsx)("br",{}),(0,k.jsx)("br",{}),"To get started,"," ",(0,k.jsx)(b.Z,{onClick:function(){I(null),l(!0)},children:"Create a Group"}),"."]})]})})})})]})]})]})})))},21639:function(e,n,t){t.d(n,{LQ:function(){return r},V2:function(){return i},g4:function(){return o}});var r=function(e,n){return e.accessKey>n.accessKey?1:e.accessKeyn.name?1:e.namen?1:e.\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n

    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport { LinearProgress } from \"@mui/material\";\nimport { AddIcon, GroupsIcon, UsersIcon } from \"../../../icons\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { GroupsList } from \"./types\";\nimport { stringSort } from \"../../../utils/sortFunctions\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport history from \"../../../history\";\nimport AButton from \"../Common/AButton/AButton\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport SearchBox from \"../Common/SearchBox\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../common/SecureComponent\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst DeleteGroup = withSuspense(React.lazy(() => import(\"./DeleteGroup\")));\nconst AddGroup = withSuspense(React.lazy(() => import(\"../Groups/AddGroup\")));\nconst SetPolicy = withSuspense(\n React.lazy(() => import(\"../Policies/SetPolicy\"))\n);\n\ninterface IGroupsProps {\n classes: any;\n openGroupModal: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n tableBlock: {\n ...tableStyles.tableBlock,\n marginTop: 15,\n },\n ...actionsTray,\n searchField: {\n ...searchField.searchField,\n maxWidth: 380,\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst Groups = ({ classes, setErrorSnackMessage }: IGroupsProps) => {\n const [addGroupOpen, setGroupOpen] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState(null);\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\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n isLoading(true);\n }, []);\n\n const displayGroups = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_LIST_GROUPS,\n ]);\n\n const deleteGroup = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_REMOVE_USER_FROM_GROUP,\n ]);\n\n const getGroup = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_GROUP,\n ]);\n\n useEffect(() => {\n if (loading) {\n if (displayGroups) {\n const fetchRecords = () => {\n api\n .invoke(\"GET\", `/api/v1/groups`)\n .then((res: GroupsList) => {\n let resGroups: string[] = [];\n if (res.groups !== null) {\n resGroups = res.groups.sort(stringSort);\n }\n setRecords(resGroups);\n isLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n isLoading(false);\n });\n };\n fetchRecords();\n } else {\n isLoading(false);\n }\n }\n }, [loading, setErrorSnackMessage, displayGroups]);\n\n const closeAddModalAndRefresh = () => {\n setGroupOpen(false);\n isLoading(true);\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n\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 history.push(`${IAM_PAGES.GROUPS}/${group}`);\n };\n\n const deleteAction = (group: any) => {\n setDeleteOpen(true);\n setSelectedGroup(group);\n };\n\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n disableButtonFunction: () => !getGroup,\n },\n {\n type: \"delete\",\n onClick: deleteAction,\n disableButtonFunction: () => !deleteGroup,\n },\n ];\n\n return (\n \n {addGroupOpen && (\n \n )}\n {deleteOpen && (\n \n )}\n {setPolicyOpen && (\n {\n setPolicyOpen(false);\n }}\n />\n )}\n \n\n \n \n \n \n \n\n \n }\n onClick={() => {\n setSelectedGroup(null);\n setGroupOpen(true);\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 policy.\n Groups support more simplified management of user\n 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 policy.\n Groups support more simplified management of user\n permissions on the MinIO Tenant.\n \n
    \n
    \n To get started,{\" \"}\n {\n setSelectedGroup(null);\n setGroupOpen(true);\n }}\n >\n Create a Group\n \n .\n \n
    \n }\n />\n
    \n \n )}\n
    \n )}\n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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\ninterface userInterface {\n accessKey: string;\n}\n\ninterface policyInterface {\n name: string;\n}\n\nexport const usersSort = (a: userInterface, b: userInterface) => {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: policyInterface, b: policyInterface) => {\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"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","useStyles","makeStyles","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","onClick","disabled","tooltip","icon","restProps","size","sx","margin","textDecoration","cursor","info","fontFamily","children","rest","borderWidth","borderStyle","opacity","contained","background","dark","light","button","clsx","WrappedComponent","fallback","ComponentWithSuspense","Suspense","pageContentStyles","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","label","justifyContent","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","actions","includes","Fragment","direction","sm","md","length","component","id","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","InputProps","e","target","DeleteGroup","withSuspense","React","AddGroup","SetPolicy","setErrorSnackMessage","tableBlock","tableStyles","actionsTray","maxWidth","containerForHeader","spacing","useState","addGroupOpen","setGroupOpen","selectedGroup","setSelectedGroup","deleteOpen","setDeleteOpen","loading","isLoading","records","setRecords","filter","setFilter","policyOpen","setPolicyOpen","useEffect","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","deleteGroup","getGroup","api","then","res","resGroups","groups","sort","stringSort","catch","err","filteredRecords","elementItem","tableActions","type","group","history","IAM_PAGES","disableButtonFunction","open","closeModalAndRefresh","closeDeleteModalAndRefresh","refresh","selectedUser","resource","scopes","errorProps","matchAll","itemActions","columns","elementKey","entityName","idField","href","rel","alignContent","usersSort","a","b","accessKey","policySort","name"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/191.80e5a168.chunk.js b/portal-ui/build/static/js/191.80e5a168.chunk.js deleted file mode 100644 index e28e533b8..000000000 --- a/portal-ui/build/static/js/191.80e5a168.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[191],{23804:function(e,n,t){t(72791);var r=t(11135),o=t(25787),i=t(61889),a=t(80184);n.Z=(0,o.Z)((function(e){return(0,r.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,r=e.title,o=e.help;return(0,a.jsx)("div",{className:n.root,children:(0,a.jsxs)(i.ZP,{container:!0,children:[(0,a.jsxs)(i.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,r]}),(0,a.jsx)(i.ZP,{item:!0,xs:12,className:n.helpText,children:o})]})})}))},40603:function(e,n,t){var r=t(1413),o=t(45987),i=(t(72791),t(85531)),a=t(72455),s=t(80184),l=["onClick","text","disabled","tooltip","icon"],c=(0,a.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,r=n.color,o=e.palette.primary.main;return"primary"===r&&"contained"===t?o=e.palette.primary.contrastText:"primary"===r&&"outlined"===t?o=e.palette.primary.main:"secondary"===r&&(o=e.palette.secondary.main),o}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=c(e),t=e.onClick,a=e.text,d=void 0===a?"":a,u=e.disabled,p=void 0!==u&&u,m=e.tooltip,h=e.icon,f=void 0===h?null:h,x=(0,o.Z)(e,l);return(0,s.jsxs)(i.Z,(0,r.Z)((0,r.Z)({classes:n,tooltip:m||d,variant:"outlined",onClick:t,disabled:p,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},x),{},{children:[(0,s.jsx)("span",{children:d})," ",f]}))}},81806:function(e,n,t){var r=t(1413),o=t(45987),i=(t(72791),t(11135)),a=t(25787),s=t(80184),l=["classes","children"];n.Z=(0,a.Z)((function(e){return(0,i.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,i=(0,o.Z)(e,l);return(0,s.jsx)("button",(0,r.Z)((0,r.Z)({},i),{},{className:n.root,children:t}))}))},85531:function(e,n,t){var r=t(1413),o=t(4942),i=t(45987),a=(t(72791),t(11135)),s=t(25787),l=t(13400),c=t(20068),d=t(28182),u=t(80184),p=["classes","children","variant","tooltip"];n.Z=(0,s.Z)((function(e){return(0,a.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,t=e.children,a=e.variant,s=void 0===a?"outlined":a,m=e.tooltip,h=(0,i.Z)(e,p),f=(0,u.jsx)(l.Z,(0,r.Z)((0,r.Z)({},h),{},{className:(0,d.Z)(n.root,(0,o.Z)({},n.contained,"contained"===s)),children:t}));return m&&""!==m?(0,u.jsx)(c.Z,{title:m,children:(0,u.jsx)("span",{children:f})}):f}))},75578:function(e,n,t){var r=t(1413),o=t(72791),i=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,i.jsx)(o.Suspense,{fallback:n,children:(0,i.jsx)(e,(0,r.Z)({},t))})}return t}},74794:function(e,n,t){var r=t(1413),o=(t(72791),t(61889)),i=t(11135),a=t(25787),s=t(23814),l=t(80184);n.Z=(0,a.Z)((function(e){return(0,i.Z)((0,r.Z)({},s.Bw))}))((function(e){var n=e.classes,t=e.className,r=void 0===t?"":t,i=e.children;return(0,l.jsx)("div",{className:n.contentSpacer,children:(0,l.jsx)(o.ZP,{container:!0,children:(0,l.jsx)(o.ZP,{item:!0,xs:12,className:r,children:i})})})}))},32291:function(e,n,t){var r=t(72791),o=t(60364),i=t(61889),a=t(11135),s=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),p=t(3925),m=t(74833),h=t(80184),f={toggleList:p.kQ},x=(0,o.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),f);n.Z=x((0,s.Z)((function(e){return(0,a.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,o=e.actions,a=e.sidebarOpen,s=e.operatorMode,p=e.managerObjects,f=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(r.Fragment,{}):(0,h.jsxs)(i.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,h.jsx)("div",{className:n.logo,children:s?(0,h.jsx)(d.Z,{}):(0,h.jsx)(u.Z,{})}),(0,h.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),x&&(0,h.jsx)(i.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,h.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.rightMenu,children:[o&&o,p&&p.length>0&&(0,h.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){f()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(m.gx,{})})]})]})})))},59114:function(e,n,t){var r=t(4942),o=t(1413),i=(t(72791),t(63466)),a=t(74900),s=t(27391),l=t(25787),c=t(11135),d=t(23814),u=t(80184);n.Z=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,o.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,o=e.classes,l=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,p=e.overrideClass,m=e.value,h=(0,r.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(i.Z,{position:d,className:o.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(s.Z,{placeholder:t,className:p||o.searchField,id:"search-resource",label:"",InputProps:h,onChange:function(e){l(e.target.value)},variant:"standard",value:m})}))},60191:function(e,n,t){t.r(n);var r=t(70885),o=t(1413),i=t(72791),a=t(60364),s=t(11135),l=t(25787),c=t(61889),d=t(40986),u=t(74833),p=t(42649),m=t(21639),h=t(23814),f=t(81207),x=t(92983),g=t(32291),Z=t(23804),j=t(62666),b=t(81806),v=t(74794),y=t(59114),C=t(56087),S=t(38442),F=t(75578),k=t(40603),P=t(80184),M=(0,F.Z)(i.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(8896)]).then(t.bind(t,88896))}))),N=(0,F.Z)(i.lazy((function(){return Promise.all([t.e(3772),t.e(7413)]).then(t.bind(t,57413))}))),R=(0,F.Z)(i.lazy((function(){return Promise.all([t.e(3772),t.e(9134)]).then(t.bind(t,39134))}))),I={setErrorSnackMessage:p.Ih},_=(0,a.$j)(null,I);n.default=(0,l.Z)((function(e){return(0,s.Z)((0,o.Z)((0,o.Z)({tableBlock:(0,o.Z)((0,o.Z)({},h.VX.tableBlock),{},{marginTop:15})},h.OR),{},{searchField:(0,o.Z)((0,o.Z)({},h.qg.searchField),{},{maxWidth:380})},(0,h.Bz)(e.spacing(4))))}))(_((function(e){var n=e.classes,t=e.setErrorSnackMessage,o=(0,i.useState)(!1),a=(0,r.Z)(o,2),s=a[0],l=a[1],p=(0,i.useState)(null),h=(0,r.Z)(p,2),F=h[0],I=h[1],_=(0,i.useState)(!1),A=(0,r.Z)(_,2),T=A[0],E=A[1],G=(0,i.useState)(!1),w=(0,r.Z)(G,2),O=w[0],L=w[1],B=(0,i.useState)([]),D=(0,r.Z)(B,2),U=D[0],z=D[1],K=(0,i.useState)(""),V=(0,r.Z)(K,2),W=V[0],q=V[1],Q=(0,i.useState)(!1),$=(0,r.Z)(Q,2),H=$[0],X=$[1];(0,i.useEffect)((function(){L(!0)}),[]),(0,i.useEffect)((function(){L(!0)}),[]);var Y=(0,S.F)(C.C3,[C.Ft.ADMIN_LIST_GROUPS]),J=(0,S.F)(C.C3,[C.Ft.ADMIN_REMOVE_USER_FROM_GROUP]),ee=(0,S.F)(C.C3,[C.Ft.ADMIN_GET_GROUP]);(0,i.useEffect)((function(){if(O)if(Y){f.Z.invoke("GET","/api/v1/groups").then((function(e){var n=[];null!==e.groups&&(n=e.groups.sort(m.V2)),z(n),L(!1)})).catch((function(e){t(e),L(!1)}))}else L(!1)}),[O,t,Y]);var ne=U.filter((function(e){return e.includes(W)})),te=[{type:"view",onClick:function(e){j.Z.push("".concat(C.gA.GROUPS,"/").concat(e))},disableButtonFunction:function(){return!ee}},{type:"delete",onClick:function(e){E(!0),I(e)},disableButtonFunction:function(){return!J}}];return(0,P.jsxs)(i.Fragment,{children:[s&&(0,P.jsx)(N,{open:s,selectedGroup:F,closeModalAndRefresh:function(){l(!1),L(!0)}}),T&&(0,P.jsx)(M,{deleteOpen:T,selectedGroup:F,closeDeleteModalAndRefresh:function(e){E(!1),e&&L(!0)}}),X&&(0,P.jsx)(R,{open:H,selectedGroup:F,selectedUser:null,closeModalAndRefresh:function(){X(!1)}}),(0,P.jsx)(g.Z,{label:"Groups"}),(0,P.jsxs)(v.Z,{children:[(0,P.jsxs)(c.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,P.jsx)(S.s,{resource:C.C3,scopes:[C.Ft.ADMIN_LIST_GROUPS],errorProps:{disabled:!0},children:(0,P.jsx)(y.Z,{placeholder:"Search Groups",onChange:q,overrideClass:n.searchField,value:W})}),(0,P.jsx)(S.s,{resource:C.C3,scopes:[C.Ft.ADMIN_ADD_USER_TO_GROUP,C.Ft.ADMIN_LIST_USERS],matchAll:!0,errorProps:{disabled:!0},children:(0,P.jsx)(k.Z,{tooltip:"Create Group",text:"Create Group",variant:"contained",color:"primary",icon:(0,P.jsx)(u.dt,{}),onClick:function(){I(null),l(!0)}})})]}),O&&(0,P.jsx)(d.Z,{}),!O&&(0,P.jsxs)(i.Fragment,{children:[U.length>0&&(0,P.jsxs)(i.Fragment,{children:[(0,P.jsx)(c.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,P.jsx)(S.s,{resource:C.C3,scopes:[C.Ft.ADMIN_LIST_GROUPS],errorProps:{disabled:!0},children:(0,P.jsx)(x.Z,{itemActions:te,columns:[{label:"Name",elementKey:""}],isLoading:O,records:ne,entityName:"Groups",idField:""})})}),(0,P.jsx)(c.ZP,{item:!0,xs:12,marginTop:"25px",children:(0,P.jsx)(Z.Z,{title:"Groups",iconComponent:(0,P.jsx)(u.ww,{}),help:(0,P.jsxs)(i.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,P.jsx)("br",{}),(0,P.jsx)("br",{}),"You can learn more at our"," ",(0,P.jsx)("a",{href:"https://docs.min.io/minio/k8s/tutorials/group-management.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})})]}),0===U.length&&(0,P.jsx)(c.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,P.jsx)(c.ZP,{item:!0,xs:8,children:(0,P.jsx)(Z.Z,{title:"Groups",iconComponent:(0,P.jsx)(u.oy,{}),help:(0,P.jsxs)(i.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,P.jsxs)(S.s,{resource:C.C3,scopes:[C.Ft.ADMIN_ADD_USER_TO_GROUP,C.Ft.ADMIN_LIST_USERS],matchAll:!0,children:[(0,P.jsx)("br",{}),(0,P.jsx)("br",{}),"To get started,"," ",(0,P.jsx)(b.Z,{onClick:function(){I(null),l(!0)},children:"Create a Group"}),"."]})]})})})})]})]})]})})))},21639:function(e,n,t){t.d(n,{LQ:function(){return r},V2:function(){return i},g4:function(){return o}});var r=function(e,n){return e.accessKey>n.accessKey?1:e.accessKeyn.name?1:e.namen?1:e.\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n

    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport { LinearProgress } from \"@mui/material\";\nimport { AddIcon, GroupsIcon, UsersIcon } from \"../../../icons\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { GroupsList } from \"./types\";\nimport { stringSort } from \"../../../utils/sortFunctions\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport history from \"../../../history\";\nimport AButton from \"../Common/AButton/AButton\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport SearchBox from \"../Common/SearchBox\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../common/SecureComponent\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst DeleteGroup = withSuspense(React.lazy(() => import(\"./DeleteGroup\")));\nconst AddGroup = withSuspense(React.lazy(() => import(\"../Groups/AddGroup\")));\nconst SetPolicy = withSuspense(\n React.lazy(() => import(\"../Policies/SetPolicy\"))\n);\n\ninterface IGroupsProps {\n classes: any;\n openGroupModal: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n tableBlock: {\n ...tableStyles.tableBlock,\n marginTop: 15,\n },\n ...actionsTray,\n searchField: {\n ...searchField.searchField,\n maxWidth: 380,\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst Groups = ({ classes, setErrorSnackMessage }: IGroupsProps) => {\n const [addGroupOpen, setGroupOpen] = useState(false);\n const [selectedGroup, setSelectedGroup] = useState(null);\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\n useEffect(() => {\n isLoading(true);\n }, []);\n\n useEffect(() => {\n isLoading(true);\n }, []);\n\n const displayGroups = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_LIST_GROUPS,\n ]);\n\n const deleteGroup = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_REMOVE_USER_FROM_GROUP,\n ]);\n\n const getGroup = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_GROUP,\n ]);\n\n useEffect(() => {\n if (loading) {\n if (displayGroups) {\n const fetchRecords = () => {\n api\n .invoke(\"GET\", `/api/v1/groups`)\n .then((res: GroupsList) => {\n let resGroups: string[] = [];\n if (res.groups !== null) {\n resGroups = res.groups.sort(stringSort);\n }\n setRecords(resGroups);\n isLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n isLoading(false);\n });\n };\n fetchRecords();\n } else {\n isLoading(false);\n }\n }\n }, [loading, setErrorSnackMessage, displayGroups]);\n\n const closeAddModalAndRefresh = () => {\n setGroupOpen(false);\n isLoading(true);\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n\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 history.push(`${IAM_PAGES.GROUPS}/${group}`);\n };\n\n const deleteAction = (group: any) => {\n setDeleteOpen(true);\n setSelectedGroup(group);\n };\n\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n disableButtonFunction: () => !getGroup,\n },\n {\n type: \"delete\",\n onClick: deleteAction,\n disableButtonFunction: () => !deleteGroup,\n },\n ];\n\n return (\n \n {addGroupOpen && (\n \n )}\n {deleteOpen && (\n \n )}\n {setPolicyOpen && (\n {\n setPolicyOpen(false);\n }}\n />\n )}\n \n\n \n \n \n \n \n\n \n }\n onClick={() => {\n setSelectedGroup(null);\n setGroupOpen(true);\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 policy.\n Groups support more simplified management of user\n 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 policy.\n Groups support more simplified management of user\n permissions on the MinIO Tenant.\n \n
    \n
    \n To get started,{\" \"}\n {\n setSelectedGroup(null);\n setGroupOpen(true);\n }}\n >\n Create a Group\n \n .\n \n
    \n }\n />\n
    \n \n )}\n
    \n )}\n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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\ninterface userInterface {\n accessKey: string;\n}\n\ninterface policyInterface {\n name: string;\n}\n\nexport const usersSort = (a: userInterface, b: userInterface) => {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: policyInterface, b: policyInterface) => {\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"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","useStyles","makeStyles","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","onClick","disabled","tooltip","icon","restProps","size","sx","margin","textDecoration","cursor","info","fontFamily","children","rest","borderWidth","borderStyle","opacity","contained","background","dark","light","button","clsx","WrappedComponent","fallback","ComponentWithSuspense","Suspense","pageContentStyles","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","label","justifyContent","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","actions","includes","Fragment","direction","sm","md","length","component","id","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","InputProps","e","target","DeleteGroup","withSuspense","React","AddGroup","SetPolicy","setErrorSnackMessage","tableBlock","tableStyles","actionsTray","maxWidth","containerForHeader","spacing","useState","addGroupOpen","setGroupOpen","selectedGroup","setSelectedGroup","deleteOpen","setDeleteOpen","loading","isLoading","records","setRecords","filter","setFilter","policyOpen","setPolicyOpen","useEffect","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","deleteGroup","getGroup","api","then","res","resGroups","groups","sort","stringSort","catch","err","filteredRecords","elementItem","tableActions","type","group","history","IAM_PAGES","disableButtonFunction","open","closeModalAndRefresh","closeDeleteModalAndRefresh","refresh","selectedUser","resource","scopes","errorProps","matchAll","itemActions","columns","elementKey","entityName","idField","href","rel","alignContent","usersSort","a","b","accessKey","policySort","name"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1955.229f8589.chunk.js b/portal-ui/build/static/js/1955.229f8589.chunk.js new file mode 100644 index 000000000..28d2d9f46 --- /dev/null +++ b/portal-ui/build/static/js/1955.229f8589.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1955,8760,9362,2879],{84669:function(e,n,t){"use strict";t(72791);var i=t(91523),o=t(11135),r=t(25787),a=t(13048),s=t(64554),l=t(80184);n.Z=(0,r.Z)((function(e){return(0,o.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var n=e.to,t=e.label,o=e.classes,r=e.className,c=e.executeOnClick;return(0,l.jsx)(s.Z,{sx:{display:"flex",alignItems:"center"},children:(0,l.jsx)(i.rU,{to:n,className:"".concat(o.link," ").concat(r||""),onClick:function(){c&&c()},children:(0,l.jsxs)("div",{className:o.iconBox,children:[(0,l.jsx)("div",{className:o.icon,children:(0,l.jsx)(a.xN,{})}),(0,l.jsx)("div",{className:o.label,children:t})]})})})}))},40603:function(e,n,t){"use strict";var i=t(1413),o=t(45987),r=(t(72791),t(85531)),a=t(72455),s=t(80184),l=["onClick","text","disabled","tooltip","icon","className"],c=(0,a.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,i=n.color,o=e.palette.primary.main;return"primary"===i&&"contained"===t?o=e.palette.primary.contrastText:"primary"===i&&"outlined"===t?o=e.palette.primary.main:"secondary"===i&&(o=e.palette.secondary.main),o}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=c(e),t=e.onClick,a=e.text,d=void 0===a?"":a,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,h=e.icon,x=void 0===h?null:h,f=e.className,b=void 0===f?"":f,Z=(0,o.Z)(e,l);return(0,s.jsxs)(r.Z,(0,i.Z)((0,i.Z)({className:b,classes:n,tooltip:p||d,variant:"outlined",onClick:t,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},Z),{},{children:[(0,s.jsx)("span",{children:d})," ",x]}))}},85531:function(e,n,t){"use strict";var i=t(1413),o=t(4942),r=t(45987),a=(t(72791),t(11135)),s=t(25787),l=t(13400),c=t(20068),d=t(28182),u=t(80184),m=["classes","children","variant","tooltip"];n.Z=(0,s.Z)((function(e){return(0,a.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,t=e.children,a=e.variant,s=void 0===a?"outlined":a,p=e.tooltip,h=(0,r.Z)(e,m),x=(0,u.jsx)(l.Z,(0,i.Z)((0,i.Z)({},h),{},{className:(0,d.Z)(n.root,(0,o.Z)({},n.contained,"contained"===s)),children:t}));return p&&""!==p?(0,u.jsx)(c.Z,{title:p,children:(0,u.jsx)("span",{children:x})}):x}))},92217:function(e,n,t){"use strict";var i=t(42982),o=t(70885),r=t(1413),a=t(72791),s=t(61889),l=(t(2574),t(69874)),c=t(9461),d=t(73975),u=t(80745),m=t(30829),p=t(20068),h=t(64554),x=t(11135),f=t(25787),b=t(84570),Z=t(23814),g=t(13048),v=t(40603),j=t(78029),C=t.n(j),y=t(64294),P=t(80184),S={json:d.AV,yaml:function(){return c.i.define(u.r)}},N=y.tk.theme({"&":{backgroundColor:"#FBFAFA"},".cm-content":{caretColor:"#05122B"},"&.cm-focused .cm-cursor":{borderLeftColor:"#05122B"},".cm-gutters":{backgroundColor:"#FBFAFA",color:"#000000",border:"none"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px",color:"#2781B0","& .\u037cc":{color:"#C83B51"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#dde1f1"},".cm-matchingBracket":{backgroundColor:"#05122B",color:"#ffffff"},".cm-selectionMatch":{backgroundColor:"#ebe7f1"},".cm-selectionLayer":{fontWeight:500}," .cm-selectionBackground":{backgroundColor:"#a180c7",color:"#ffffff"}},{dark:!1}),k=y.tk.theme({"&":{backgroundColor:"#282a36",color:"#ffb86c"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px","& .\u037cd, & .\u037cc":{color:"#8e6cef"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#44475a"},".cm-matchingBracket":{backgroundColor:"#842de5",color:"#ff79c6"},".cm-selectionLayer .cm-selectionBackground":{backgroundColor:"green"}},{dark:!0});n.Z=(0,f.Z)((function(e){return(0,x.Z)((0,r.Z)((0,r.Z)({},Z.YI),{},{inputLabel:(0,r.Z)((0,r.Z)({},Z.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var n=e.value,t=e.label,r=void 0===t?"":t,c=e.tooltip,d=void 0===c?"":c,u=e.mode,x=void 0===u?"json":u,f=e.classes,Z=e.onBeforeChange,j=e.readOnly,y=void 0!==j&&j,E=e.editorHeight,w=void 0===E?"250px":E,I=(0,a.useState)(!1),T=(0,o.Z)(I,2),A=T[0],F=T[1],M=[];return S[x]&&(M=[].concat((0,i.Z)(M),[S[x]()])),(0,P.jsxs)(a.Fragment,{children:[(0,P.jsxs)(m.Z,{className:f.inputLabel,children:[(0,P.jsx)("span",{children:r}),""!==d&&(0,P.jsx)("div",{className:f.tooltipContainer,children:(0,P.jsx)(p.Z,{title:d,placement:"top-start",children:(0,P.jsx)("div",{className:f.tooltip,children:(0,P.jsx)(b.Z,{})})})})]}),(0,P.jsx)(s.ZP,{item:!0,xs:12,children:(0,P.jsx)("br",{})}),(0,P.jsxs)(s.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,P.jsx)(s.ZP,{item:!0,xs:12,children:(0,P.jsx)(l.ZP,{value:n,theme:A?k:N,extensions:M,editable:!y,basicSetup:!0,height:w,onChange:function(e,n){Z(null,null,e)}})}),(0,P.jsx)(s.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:A?"#282c34":"#f7f7f7"},children:(0,P.jsxs)(h.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:[(0,P.jsx)(v.Z,{tooltip:"Change theme",onClick:function(){F(!A)},text:"",icon:(0,P.jsx)(g.EO,{}),color:"primary",variant:"outlined"}),(0,P.jsx)(C(),{text:n,children:(0,P.jsx)(v.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,P.jsx)(g.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},32291:function(e,n,t){"use strict";var i=t(72791),o=t(60364),r=t(61889),a=t(11135),s=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),m=t(3925),p=t(13048),h=t(80184),x={toggleList:m.kQ},f=(0,o.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),x);n.Z=f((0,s.Z)((function(e){return(0,a.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,o=e.actions,a=e.sidebarOpen,s=e.operatorMode,m=e.managerObjects,x=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(i.Fragment,{}):(0,h.jsxs)(r.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,h.jsx)("div",{className:n.logo,children:s?(0,h.jsx)(d.Z,{}):(0,h.jsx)(u.Z,{})}),(0,h.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),f&&(0,h.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,h.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:n.rightMenu,children:[o&&o,m&&m.length>0&&(0,h.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){x()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(p.gx,{})})]})]})})))},14917:function(e,n,t){"use strict";t(72791);var i=t(61889),o=t(11135),r=t(25787),a=t(80184);n.Z=(0,r.Z)((function(e){return(0,o.Z)({headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},screenTitle:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem",borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column"}},rightItems:{display:"flex",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.icon,o=e.title,r=e.subTitle,s=e.actions,l=e.className;return(0,a.jsx)(i.ZP,{container:!0,children:(0,a.jsxs)(i.ZP,{item:!0,xs:12,className:"".concat(n.screenTitle," ").concat(l||""),children:[(0,a.jsxs)("div",{className:n.leftItems,children:[t?(0,a.jsx)("div",{className:n.headerBarIcon,children:t}):null,(0,a.jsxs)("div",{className:n.titleColumn,children:[(0,a.jsx)("h1",{style:{margin:0},children:o}),(0,a.jsx)("span",{className:n.headerBarSubheader,children:r})]})]}),(0,a.jsx)("div",{className:n.rightItems,children:s})]})})}))},14662:function(e,n,t){"use strict";t.d(n,{Z:function(){return F}});var i=t(1413),o=t(70885),r=t(72791),a=t(64554),s=t(43896),l=t(80184),c=r.createContext(null);function d(e){var n=e.children,t=e.value,i=function(){var e=r.useState(null),n=(0,o.Z)(e,2),t=n[0],i=n[1];return r.useEffect((function(){i("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),a=r.useMemo((function(){return{idPrefix:i,value:t}}),[i,t]);return(0,l.jsx)(c.Provider,{value:a,children:n})}function u(){return r.useContext(c)}function m(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function p(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}var h=t(87462),x=t(63366),f=t(18073),b=["children"],Z=r.forwardRef((function(e,n){var t=e.children,i=(0,x.Z)(e,b),o=u();if(null===o)throw new TypeError("No TabContext provided");var a=r.Children.map(t,(function(e){return r.isValidElement(e)?r.cloneElement(e,{"aria-controls":m(o,e.props.value),id:p(o,e.props.value)}):null}));return(0,l.jsx)(f.Z,(0,h.Z)({},i,{ref:n,value:o.value,children:a}))})),g=t(28182),v=t(47630),j=t(93736),C=t(90767),y=t(95159);function P(e){return(0,y.Z)("MuiTabPanel",e)}(0,t(30208).Z)("MuiTabPanel",["root"]);var S=["children","className","value"],N=(0,v.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),k=r.forwardRef((function(e,n){var t=(0,j.Z)({props:e,name:"MuiTabPanel"}),i=t.children,o=t.className,r=t.value,a=(0,x.Z)(t,S),s=(0,h.Z)({},t),c=function(e){var n=e.classes;return(0,C.Z)({root:["root"]},P,n)}(s),d=u();if(null===d)throw new TypeError("No TabContext provided");var f=m(d,r),b=p(d,r);return(0,l.jsx)(N,(0,h.Z)({"aria-labelledby":b,className:(0,g.Z)(c.root,o),hidden:r!==d.value,id:f,ref:n,role:"tabpanel",ownerState:s},a,{children:r===d.value&&i}))})),E=t(25787),w=t(13967),I=t(11135),T=t(95193),A={minHeight:60},F=(0,E.Z)((function(e){return(0,I.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var n=e.children,t=e.classes,c=e.selectedTab,u=void 0===c?"0":c,m=e.routes,p=e.isRouteTabs,h=r.useState(u),x=(0,o.Z)(h,2),f=x[0],b=x[1],g=(0,w.Z)(),v=(0,T.Z)(g.breakpoints.down("md")),j=[],C=[];return n?(n.forEach((function(e){j.push(e.tabConfig),C.push(e.content)})),(0,l.jsx)(d,{value:"".concat(f),children:(0,l.jsxs)(a.Z,{className:t.tabsContainer,children:[(0,l.jsx)(a.Z,{className:t.tabsHeaderContainer,children:(0,l.jsx)(Z,{onChange:function(e,n){b(n)},orientation:v?"horizontal":"vertical",variant:v?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:j.map((function(e,n){return e?(0,l.jsx)(s.Z,(0,i.Z)((0,i.Z)({className:t.tabHeader,value:"".concat(n),style:A},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,l.jsxs)(a.Z,{className:t.tabContentContainer,children:[p?null:C.map((function(e,n){return(0,l.jsx)(k,{classes:(0,i.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),p?(0,l.jsx)("div",{className:t.tabPanel,children:m}):null]})]})})):null}))},23533:function(e,n,t){"use strict";t.r(n);var i=t(70885),o=t(1413),r=t(72791),a=t(60364),s=t(11135),l=t(25787),c=t(23814),d=t(10703),u=t(61889),m=t(36151),p=t(40986),h=t(92983),x=t(81207),f=t(32291),b=t(42649),Z=t(92217),g=t(62666),v=t(63466),j=t(27391),C=t(14917),y=t(64244),P=t(28789),S=t(74900),N=t(54599),k=t(74794),E=t(14662),w=t(84669),I=t(56087),T=t(38442),A=t(75578),F=t(40603),M=t(80184),R=(0,A.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(312)]).then(t.bind(t,312))}))),B=(0,a.$j)((function(e){return{features:e.console.session.features}}),{setErrorSnackMessage:b.Ih,setSnackBarMessage:b.y1});n.default=(0,l.Z)((function(e){return(0,s.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({buttonContainer:{textAlign:"right"},pageContainer:{border:"1px solid #EAEAEA",height:"100%"},paperContainer:{padding:"15px 15px 15px 50px",minHeight:"450px"},breadcrumLink:{textDecoration:"none",color:"black"},statement:{border:"1px solid #DADADA",padding:8,marginBottom:8,borderRadius:4},labelCol:{fontWeight:"bold"}},c.OR),c.qg),c.oO),(0,c.Bz)(e.spacing(4))))}))(B((function(e){var n=e.classes,t=e.match,o=e.setErrorSnackMessage,a=e.setSnackBarMessage,s=e.features,l=(0,r.useState)(null),c=(0,i.Z)(l,2),b=c[0],A=c[1],B=(0,r.useState)([]),L=(0,i.Z)(B,2),O=L[0],z=L[1],D=(0,r.useState)([]),H=(0,i.Z)(D,2),_=H[0],G=H[1],U=(0,r.useState)([]),V=(0,i.Z)(U,2),W=V[0],Y=V[1],J=(0,r.useState)(!1),q=(0,i.Z)(J,2),K=q[0],$=q[1],Q=(0,r.useState)(t.params[0]),X=(0,i.Z)(Q,2),ee=X[0],ne=X[1],te=(0,r.useState)(""),ie=(0,i.Z)(te,2),oe=ie[0],re=ie[1],ae=(0,r.useState)(!0),se=(0,i.Z)(ae,2),le=se[0],ce=se[1],de=(0,r.useState)(""),ue=(0,i.Z)(de,2),me=ue[0],pe=ue[1],he=(0,r.useState)(!0),xe=(0,i.Z)(he,2),fe=xe[0],be=xe[1],Ze=(0,r.useState)(""),ge=(0,i.Z)(Ze,2),ve=ge[0],je=ge[1],Ce=(0,r.useState)(!0),ye=(0,i.Z)(Ce,2),Pe=ye[0],Se=ye[1],Ne=(0,r.useState)(!1),ke=(0,i.Z)(Ne,2),Ee=ke[0],we=ke[1],Ie=s&&s.includes("ldap-idp")||!1,Te=(0,T.F)(I.C3,[I.Ft.ADMIN_LIST_GROUPS,I.Ft.ADMIN_GET_GROUP],!0),Ae=(0,T.F)(I.C3,[I.Ft.ADMIN_GET_GROUP]),Fe=(0,T.F)(I.C3,[I.Ft.ADMIN_LIST_GROUPS]),Me=(0,T.F)(I.C3,[I.Ft.ADMIN_GET_USER]),Re=(0,T.F)(I.C3,[I.Ft.ADMIN_GET_POLICY]),Be=(0,T.F)(I.C3,[I.Ft.ADMIN_CREATE_POLICY]),Le=function(e){e.preventDefault(),K||($(!0),Be?x.Z.invoke("POST","/api/v1/policies",{name:ee,policy:oe}).then((function(e){$(!1),a("Policy successfully updated")})).catch((function(e){$(!1),o(e)})):$(!1))};(0,r.useEffect)((function(){le&&(le&&(Re?x.Z.invoke("GET","/api/v1/policy?name=".concat(encodeURIComponent(ee))).then((function(e){if(e){A(e),re(e?JSON.stringify(JSON.parse(e.policy),null,4):"");var n=JSON.parse(e.policy);z(n.Statement)}ce(!1)})).catch((function(e){o(e),ce(!1)})):ce(!1)),fe&&(Fe&&!Ie?x.Z.invoke("GET","/api/v1/policies/".concat(encodeURIComponent(ee),"/users")).then((function(e){G(e),be(!1)})).catch((function(e){o(e),be(!1)})):be(!1)),Pe&&(Te&&!Ie?x.Z.invoke("GET","/api/v1/policies/".concat(encodeURIComponent(ee),"/groups")).then((function(e){Y(e),Se(!1)})).catch((function(e){o(e),Se(!1)})):Se(!1)))}),[ee,le,fe,Pe,o,G,Y,re,A,be,Se,Fe,Te,Re,Ie]);var Oe=""!==ee.trim(),ze=[{type:"view",onClick:function(e){g.Z.push("".concat(I.gA.USERS,"/").concat(e))},disableButtonFunction:function(){return!Me}}],De=_.filter((function(e){return e.includes(me)})),He=[{type:"view",onClick:function(e){g.Z.push("".concat(I.gA.GROUPS,"/").concat(e))},disableButtonFunction:function(){return!Ae}}],_e=W.filter((function(e){return e.includes(ve)}));return(0,M.jsxs)(r.Fragment,{children:[Ee&&(0,M.jsx)(R,{deleteOpen:Ee,selectedPolicy:ee,closeDeleteModalAndRefresh:function(e){we(!1),g.Z.push(I.gA.POLICIES)}}),(0,M.jsx)(f.Z,{label:(0,M.jsx)(r.Fragment,{children:(0,M.jsx)(w.Z,{to:I.gA.POLICIES,label:"Policy"})})}),(0,M.jsxs)(k.Z,{className:n.pageContainer,children:[(0,M.jsx)(u.ZP,{item:!0,xs:12,children:(0,M.jsx)(C.Z,{icon:(0,M.jsx)(r.Fragment,{children:(0,M.jsx)(y.Z,{width:40})}),title:ee,subTitle:(0,M.jsx)(r.Fragment,{children:"IAM Policy"}),actions:(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)(T.s,{scopes:[I.Ft.ADMIN_DELETE_POLICY],resource:I.C3,errorProps:{disabled:!0},children:(0,M.jsx)(F.Z,{tooltip:"Delete Policy",text:"Delete Policy",variant:"outlined",color:"secondary",icon:(0,M.jsx)(N.Z,{}),onClick:function(){we(!0)}})}),(0,M.jsx)(F.Z,{tooltip:"Refresh",text:"Refresh",variant:"outlined",color:"primary",icon:(0,M.jsx)(P.default,{}),onClick:function(){be(!0),Se(!0),ce(!0)}})]})})}),(0,M.jsxs)(E.Z,{children:[{tabConfig:{label:"Summary",disabled:!Re},content:(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)("div",{className:n.sectionTitle,children:"Policy Summary"}),(0,M.jsx)(d.Z,{className:n.paperContainer,children:(0,M.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){Le(e)},children:(0,M.jsxs)(u.ZP,{container:!0,children:[(0,M.jsx)(u.ZP,{item:!0,xs:8,children:(0,M.jsx)("h4",{children:"Statements"})}),(0,M.jsx)(u.ZP,{item:!0,xs:4}),(0,M.jsx)(r.Fragment,{children:O.map((function(e,t){return(0,M.jsx)(u.ZP,{item:!0,xs:12,className:n.statement,children:(0,M.jsxs)(u.ZP,{container:!0,children:[(0,M.jsx)(u.ZP,{item:!0,xs:2,className:n.labelCol,children:"Effect"}),(0,M.jsx)(u.ZP,{item:!0,xs:4,children:(0,M.jsx)(r.Fragment,{children:e.Effect})}),(0,M.jsx)(u.ZP,{item:!0,xs:2,className:n.labelCol}),(0,M.jsx)(u.ZP,{item:!0,xs:4}),(0,M.jsx)(u.ZP,{item:!0,xs:2,className:n.labelCol,children:"Actions"}),(0,M.jsx)(u.ZP,{item:!0,xs:4,children:(0,M.jsx)("ul",{children:e.Action&&e.Action.map((function(e,n){return(0,M.jsx)("li",{children:e},"".concat(t,"-r-").concat(n))}))})}),(0,M.jsx)(u.ZP,{item:!0,xs:2,className:n.labelCol,children:"Resources"}),(0,M.jsx)(u.ZP,{item:!0,xs:4,children:(0,M.jsx)("ul",{children:e.Resource&&e.Resource.map((function(e,n){return(0,M.jsx)("li",{children:e},"".concat(t,"-r-").concat(n))}))})})]})},"s-".concat(t))}))})]})})})]})},{tabConfig:{label:"Users",disabled:!Fe||Ie},content:(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)("div",{className:n.sectionTitle,children:"Users"}),(0,M.jsxs)(u.ZP,{container:!0,children:[(0,M.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,M.jsx)(j.Z,{placeholder:"Search Users",className:n.searchField,id:"search-resource",label:"",onChange:function(e){pe(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,M.jsx)(v.Z,{position:"start",children:(0,M.jsx)(S.Z,{})})},variant:"standard"})}),(0,M.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,M.jsx)("br",{})}),(0,M.jsx)(h.Z,{itemActions:ze,columns:[{label:"Name",elementKey:"name"}],isLoading:fe,records:De,entityName:"Users",idField:"name"})]})]})},{tabConfig:{label:"Groups",disabled:!Te||Ie},content:(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)("div",{className:n.sectionTitle,children:"Groups"}),(0,M.jsxs)(u.ZP,{container:!0,children:[(0,M.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,M.jsx)(j.Z,{placeholder:"Search Groups",className:n.searchField,id:"search-resource",label:"",onChange:function(e){je(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,M.jsx)(v.Z,{position:"start",children:(0,M.jsx)(S.Z,{})})},variant:"standard"})}),(0,M.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,M.jsx)("br",{})}),(0,M.jsx)(h.Z,{itemActions:He,columns:[{label:"Name",elementKey:"name"}],isLoading:Pe,records:_e,entityName:"Groups",idField:"name"})]})]})},{tabConfig:{label:"Raw Policy",disabled:!Re},content:(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)("div",{className:n.sectionTitle,children:"Raw Policy"}),(0,M.jsx)(d.Z,{className:n.paperContainer,children:(0,M.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){Le(e)},children:(0,M.jsxs)(u.ZP,{container:!0,children:[(0,M.jsx)(u.ZP,{item:!0,xs:12,className:n.formScrollable,children:(0,M.jsx)(Z.Z,{readOnly:!Be,value:oe,onBeforeChange:function(e,n,t){re(t)},editorHeight:"350px"})}),(0,M.jsxs)(u.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[!b&&(0,M.jsx)("button",{type:"button",color:"primary",className:n.clearButton,onClick:function(){ne(""),re("")},children:"Clear"}),(0,M.jsx)(T.s,{scopes:[I.Ft.ADMIN_CREATE_POLICY],resource:I.C3,errorProps:{disabled:!0},children:(0,M.jsx)(m.Z,{type:"submit",variant:"contained",color:"primary",disabled:K||!Oe,children:"Save"})})]}),K&&(0,M.jsx)(u.ZP,{item:!0,xs:12,children:(0,M.jsx)(p.Z,{})})]})})})]})}]})]})]})})))},26759:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var o=i(t(45649)),r=t(80184),a=(0,o.default)((0,r.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");n.Z=a},70366:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var o=i(t(45649)),r=t(80184),a=(0,o.default)((0,r.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");n.Z=a},97911:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var o=i(t(45649)),r=t(80184),a=(0,o.default)((0,r.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");n.Z=a},94454:function(e,n,t){"use strict";t.d(n,{Z:function(){return N}});var i=t(4942),o=t(63366),r=t(87462),a=t(72791),s=t(90767),l=t(12065),c=t(97278),d=t(76189),u=t(80184),m=(0,d.Z)((0,u.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),p=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),h=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox"),x=t(14036),f=t(93736),b=t(47630),Z=t(95159);function g(e){return(0,Z.Z)("MuiCheckbox",e)}var v=(0,t(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),j=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],C=(0,b.ZP)(c.Z,{shouldForwardProp:function(e){return(0,b.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,t.indeterminate&&n.indeterminate,"default"!==t.color&&n["color".concat((0,x.Z)(t.color))]]}})((function(e){var n,t=e.theme,o=e.ownerState;return(0,r.Z)({color:t.palette.text.secondary},!o.disableRipple&&{"&:hover":{backgroundColor:(0,l.Fq)("default"===o.color?t.palette.action.active:t.palette[o.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==o.color&&(n={},(0,i.Z)(n,"&.".concat(v.checked,", &.").concat(v.indeterminate),{color:t.palette[o.color].main}),(0,i.Z)(n,"&.".concat(v.disabled),{color:t.palette.action.disabled}),n))})),y=(0,u.jsx)(p,{}),P=(0,u.jsx)(m,{}),S=(0,u.jsx)(h,{}),N=a.forwardRef((function(e,n){var t,i,l=(0,f.Z)({props:e,name:"MuiCheckbox"}),c=l.checkedIcon,d=void 0===c?y:c,m=l.color,p=void 0===m?"primary":m,h=l.icon,b=void 0===h?P:h,Z=l.indeterminate,v=void 0!==Z&&Z,N=l.indeterminateIcon,k=void 0===N?S:N,E=l.inputProps,w=l.size,I=void 0===w?"medium":w,T=(0,o.Z)(l,j),A=v?k:b,F=v?k:d,M=(0,r.Z)({},l,{color:p,indeterminate:v,size:I}),R=function(e){var n=e.classes,t=e.indeterminate,i=e.color,o={root:["root",t&&"indeterminate","color".concat((0,x.Z)(i))]},a=(0,s.Z)(o,g,n);return(0,r.Z)({},n,a)}(M);return(0,u.jsx)(C,(0,r.Z)({type:"checkbox",inputProps:(0,r.Z)({"data-indeterminate":v},E),icon:a.cloneElement(A,{fontSize:null!=(t=A.props.fontSize)?t:I}),checkedIcon:a.cloneElement(F,{fontSize:null!=(i=F.props.fontSize)?i:I}),ownerState:M,ref:n},T,{classes:R}))}))},63466:function(e,n,t){"use strict";t.d(n,{Z:function(){return C}});var i=t(4942),o=t(63366),r=t(87462),a=t(72791),s=t(28182),l=t(90767),c=t(14036),d=t(20890),u=t(93840),m=t(52930),p=t(47630),h=t(95159);function x(e){return(0,h.Z)("MuiInputAdornment",e)}var f,b=(0,t(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),Z=t(93736),g=t(80184),v=["children","className","component","disablePointerEvents","disableTypography","position","variant"],j=(0,p.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["position".concat((0,c.Z)(t.position))],!0===t.disablePointerEvents&&n.disablePointerEvents,n[t.variant]]}})((function(e){var n=e.theme,t=e.ownerState;return(0,r.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:n.palette.action.active},"filled"===t.variant&&(0,i.Z)({},"&.".concat(b.positionStart,"&:not(.").concat(b.hiddenLabel,")"),{marginTop:16}),"start"===t.position&&{marginRight:8},"end"===t.position&&{marginLeft:8},!0===t.disablePointerEvents&&{pointerEvents:"none"})})),C=a.forwardRef((function(e,n){var t=(0,Z.Z)({props:e,name:"MuiInputAdornment"}),i=t.children,p=t.className,h=t.component,b=void 0===h?"div":h,C=t.disablePointerEvents,y=void 0!==C&&C,P=t.disableTypography,S=void 0!==P&&P,N=t.position,k=t.variant,E=(0,o.Z)(t,v),w=(0,m.Z)()||{},I=k;k&&w.variant,w&&!I&&(I=w.variant);var T=(0,r.Z)({},t,{hiddenLabel:w.hiddenLabel,size:w.size,disablePointerEvents:y,position:N,variant:I}),A=function(e){var n=e.classes,t=e.disablePointerEvents,i=e.hiddenLabel,o=e.position,r=e.size,a=e.variant,s={root:["root",t&&"disablePointerEvents",o&&"position".concat((0,c.Z)(o)),a,i&&"hiddenLabel",r&&"size".concat((0,c.Z)(r))]};return(0,l.Z)(s,x,n)}(T);return(0,g.jsx)(u.Z.Provider,{value:null,children:(0,g.jsx)(j,(0,r.Z)({as:b,ownerState:T,className:(0,s.Z)(A.root,p),ref:n},E,{children:"string"!==typeof i||S?(0,g.jsxs)(a.Fragment,{children:["start"===N?f||(f=(0,g.jsx)("span",{className:"notranslate",children:"\u200b"})):null,i]}):(0,g.jsx)(d.Z,{color:"text.secondary",children:i})}))})}))},26769:function(e,n,t){var i=t(39066),o=t(93629),r=t(43141);e.exports=function(e){return"string"==typeof e||!o(e)&&r(e)&&"[object String]"==i(e)}},45987:function(e,n,t){"use strict";t.d(n,{Z:function(){return o}});var i=t(63366);function o(e,n){if(null==e)return{};var t,o,r=(0,i.Z)(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}}}]); +//# sourceMappingURL=1955.229f8589.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1955.229f8589.chunk.js.map b/portal-ui/build/static/js/1955.229f8589.chunk.js.map new file mode 100644 index 000000000..5cb2c4639 --- /dev/null +++ b/portal-ui/build/static/js/1955.229f8589.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/1955.229f8589.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/ScreenTitle/ScreenTitle.tsx","../node_modules/@mui/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","screens/Console/Policies/PolicyDetails.tsx","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/lodash/isString.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\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 BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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 Grid from \"@mui/material/Grid\";\nimport \"codemirror/theme/dracula.css\";\n/** Code mirror */\nimport CodeMirror, { Extension } from \"@uiw/react-codemirror\";\nimport { StreamLanguage } from \"@codemirror/stream-parser\";\nimport { json } from \"@codemirror/lang-json\";\nimport { yaml } from \"@codemirror/legacy-modes/mode/yaml\";\n\n/** Code mirror */\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon, EditorThemeSwitchIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { EditorView } from \"@codemirror/view\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst langHighlight: Record = {\n json,\n yaml: () => StreamLanguage.define(yaml),\n};\n\nconst lightTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#FBFAFA\",\n },\n \".cm-content\": {\n caretColor: \"#05122B\",\n },\n \"&.cm-focused .cm-cursor\": {\n borderLeftColor: \"#05122B\",\n },\n \".cm-gutters\": {\n backgroundColor: \"#FBFAFA\",\n color: \"#000000\",\n border: \"none\",\n },\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n color: \"#2781B0\",\n \"& .ͼc\": {\n color: \"#C83B51\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#dde1f1\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#05122B\",\n color: \"#ffffff\",\n },\n \".cm-selectionMatch\": {\n backgroundColor: \"#ebe7f1\",\n },\n \".cm-selectionLayer\": {\n fontWeight: 500,\n },\n \" .cm-selectionBackground\": {\n backgroundColor: \"#a180c7\",\n color: \"#ffffff\",\n },\n },\n {\n dark: false,\n }\n);\n\nconst darkTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#282a36\",\n color: \"#ffb86c\",\n },\n\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n \"& .ͼd, & .ͼc\": {\n color: \"#8e6cef\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#44475a\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#842de5\",\n color: \"#ff79c6\",\n },\n \".cm-selectionLayer .cm-selectionBackground\": {\n backgroundColor: \"green\",\n },\n },\n {\n dark: true,\n }\n);\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n const [isDarkTheme, setIsDarkTheme] = useState(false);\n\n //based on the language mode pick . default to json\n let extensionList: Extension[] = [];\n if (langHighlight[mode]) {\n extensionList = [...extensionList, langHighlight[mode]()];\n }\n\n return (\n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n \n
    \n
    \n\n \n \n {\n onBeforeChange(null, null, v);\n }}\n />\n \n \n \n {\n setIsDarkTheme(!isDarkTheme);\n }}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n {}}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n
    \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IScreenTitle {\n classes: any;\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n screenTitle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n },\n });\n\nconst ScreenTitle = ({\n classes,\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n return (\n \n \n
    \n {icon ?
    {icon}
    : null}\n
    \n

    {title}

    \n {subTitle}\n
    \n
    \n\n
    {actions}
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ScreenTitle);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of `` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n
    {routes}
    \n ) : null}\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\n","// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { IAMPolicy, IAMStatement, Policy } from \"./types\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n actionsTray,\n containerForHeader,\n modalBasic,\n searchField,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport Paper from \"@mui/material/Paper\";\nimport Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport api from \"../../../common/api\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport { setErrorSnackMessage, setSnackBarMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport history from \"../../../history\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport TextField from \"@mui/material/TextField\";\nimport ScreenTitle from \"../Common/ScreenTitle/ScreenTitle\";\nimport IAMPoliciesIcon from \"../../../icons/IAMPoliciesIcon\";\nimport RefreshIcon from \"../../../icons/RefreshIcon\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TrashIcon from \"../../../icons/TrashIcon\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport VerticalTabs from \"../Common/VerticalTabs/VerticalTabs\";\nimport BackLink from \"../../../common/BackLink\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../common/SecureComponent\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { AppState } from \"../../../store\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst DeletePolicy = withSuspense(React.lazy(() => import(\"./DeletePolicy\")));\n\ninterface IPolicyDetailsProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setSnackBarMessage: typeof setSnackBarMessage;\n features: string[] | null;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n pageContainer: {\n border: \"1px solid #EAEAEA\",\n height: \"100%\",\n },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n minHeight: \"450px\",\n },\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n statement: {\n border: \"1px solid #DADADA\",\n padding: 8,\n marginBottom: 8,\n borderRadius: 4,\n },\n labelCol: {\n fontWeight: \"bold\",\n },\n ...actionsTray,\n ...searchField,\n ...modalBasic,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst PolicyDetails = ({\n classes,\n match,\n setErrorSnackMessage,\n setSnackBarMessage,\n features,\n}: IPolicyDetailsProps) => {\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 const [policyName, setPolicyName] = useState(match.params[0]);\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n const [loadingPolicy, setLoadingPolicy] = useState(true);\n const [filterUsers, setFilterUsers] = useState(\"\");\n const [loadingUsers, setLoadingUsers] = useState(true);\n const [filterGroups, setFilterGroups] = useState(\"\");\n const [loadingGroups, setLoadingGroups] = useState(true);\n const [deleteOpen, setDeleteOpen] = useState(false);\n\n const ldapIsEnabled = (features && features.includes(\"ldap-idp\")) || false;\n\n const displayGroups = hasPermission(\n CONSOLE_UI_RESOURCE,\n [IAM_SCOPES.ADMIN_LIST_GROUPS, IAM_SCOPES.ADMIN_GET_GROUP],\n true\n );\n\n const viewGroup = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_GROUP,\n ]);\n\n const displayUsers = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_LIST_GROUPS,\n ]);\n\n const viewUser = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_USER,\n ]);\n\n const displayPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_POLICY,\n ]);\n\n const editPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_CREATE_POLICY,\n ]);\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (editPolicy) {\n api\n .invoke(\"POST\", \"/api/v1/policies\", {\n name: policyName,\n policy: policyDefinition,\n })\n .then((_) => {\n setAddLoading(false);\n setSnackBarMessage(\"Policy successfully updated\");\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setErrorSnackMessage(err);\n });\n } else {\n setAddLoading(false);\n }\n };\n\n useEffect(() => {\n const loadUsersForPolicy = () => {\n if (loadingUsers) {\n if (displayUsers && !ldapIsEnabled) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policies/${encodeURIComponent(policyName)}/users`\n )\n .then((result: any) => {\n setUserList(result);\n setLoadingUsers(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingUsers(false);\n });\n } else {\n setLoadingUsers(false);\n }\n }\n };\n\n const loadGroupsForPolicy = () => {\n if (loadingGroups) {\n if (displayGroups && !ldapIsEnabled) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policies/${encodeURIComponent(policyName)}/groups`\n )\n .then((result: any) => {\n setGroupList(result);\n setLoadingGroups(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingGroups(false);\n });\n } else {\n setLoadingGroups(false);\n }\n }\n };\n const loadPolicyDetails = () => {\n if (loadingPolicy) {\n if (displayPolicy) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policy?name=${encodeURIComponent(policyName)}`\n )\n .then((result: any) => {\n if (result) {\n setPolicy(result);\n setPolicyDefinition(\n result\n ? JSON.stringify(JSON.parse(result.policy), null, 4)\n : \"\"\n );\n const pol: IAMPolicy = JSON.parse(result.policy);\n setPolicyStatements(pol.Statement);\n }\n setLoadingPolicy(false);\n })\n .catch((err: ErrorResponseHandler) => {\n 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 setErrorSnackMessage,\n setUserList,\n setGroupList,\n setPolicyDefinition,\n setPolicy,\n setLoadingUsers,\n setLoadingGroups,\n displayUsers,\n displayGroups,\n displayPolicy,\n ldapIsEnabled,\n ]);\n\n const resetForm = () => {\n setPolicyName(\"\");\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 history.push(IAM_PAGES.POLICIES);\n };\n\n const userViewAction = (user: any) => {\n history.push(`${IAM_PAGES.USERS}/${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 history.push(`${IAM_PAGES.GROUPS}/${group}`);\n };\n\n const groupTableActions = [\n {\n type: \"view\",\n onClick: groupViewAction,\n disableButtonFunction: () => !viewGroup,\n },\n ];\n\n const filteredGroups = groupList.filter((elementItem) =>\n elementItem.includes(filterGroups)\n );\n\n return (\n \n {deleteOpen && (\n \n )}\n \n \n \n }\n />\n\n \n \n \n \n
    \n }\n title={policyName}\n subTitle={IAM Policy}\n actions={\n \n \n }\n onClick={deletePolicy}\n />\n \n\n }\n onClick={() => {\n setLoadingUsers(true);\n setLoadingGroups(true);\n setLoadingPolicy(true);\n }}\n />\n \n }\n />\n \n\n \n {{\n tabConfig: { label: \"Summary\", disabled: !displayPolicy },\n content: (\n \n
    Policy Summary
    \n \n ) => {\n saveRecord(e);\n }}\n >\n \n \n

    Statements

    \n
    \n \n\n \n {policyStatements.map((stmt, i) => {\n return (\n \n \n \n Effect\n \n \n {stmt.Effect}\n \n \n \n \n Actions\n \n \n
      \n {stmt.Action &&\n stmt.Action.map((act, actIndex) => (\n
    • \n {act}\n
    • \n ))}\n
    \n
    \n \n Resources\n \n \n
      \n {stmt.Resource &&\n stmt.Resource.map((res, resIndex) => (\n
    • \n {res}\n
    • \n ))}\n
    \n
    \n
    \n
    \n );\n })}\n
    \n
    \n \n
    \n
    \n ),\n }}\n {{\n tabConfig: {\n label: \"Users\",\n disabled: !displayUsers || ldapIsEnabled,\n },\n content: (\n \n
    Users
    \n \n \n {\n setFilterUsers(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n \n
    \n
    \n \n
    \n
    \n ),\n }}\n {{\n tabConfig: {\n label: \"Groups\",\n disabled: !displayGroups || ldapIsEnabled,\n },\n content: (\n \n
    Groups
    \n \n \n {\n setFilterGroups(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n \n
    \n
    \n \n
    \n
    \n ),\n }}\n {{\n tabConfig: { label: \"Raw Policy\", disabled: !displayPolicy },\n content: (\n \n
    Raw Policy
    \n \n ) => {\n saveRecord(e);\n }}\n >\n \n \n {\n setPolicyDefinition(value);\n }}\n editorHeight={\"350px\"}\n />\n \n \n {!policy && (\n {\n resetForm();\n }}\n >\n Clear\n \n )}\n \n \n Save\n \n \n \n {addLoading && (\n \n \n \n )}\n \n \n \n
    \n ),\n }}\n
    \n \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n features: state.console.session.features,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setSnackBarMessage,\n});\n\nexport default withStyles(styles)(connector(PolicyDetails));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\n\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: theme.palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ?\n /* notranslate needed while Google Translate will not fix zero-width space issue */\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","useStyles","makeStyles","root","padding","props","variant","tgtColor","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","disabled","tooltip","restProps","size","border","borderWidth","borderStyle","backgroundColor","opacity","contained","dark","children","rest","button","clsx","title","langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","caretColor","borderLeftColor","borderRight","darkTheme","fieldBasic","inputLabel","value","mode","onBeforeChange","readOnly","editorHeight","useState","isDarkTheme","setIsDarkTheme","extensionList","tooltipContainer","placement","item","xs","extensions","editable","basicSetup","onChange","v","vu","borderTop","justifyContent","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","actions","includes","Fragment","container","direction","sm","md","length","component","id","headerBarIcon","headerBarSubheader","maxWidth","screenTitle","borderBottom","flexFlow","titleColumn","leftItems","rightItems","subTitle","style","margin","Context","React","TabContext","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","child","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","name","overridesResolver","styles","spacing","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","hidden","role","tabStripStyle","tabsContainer","tabsHeaderContainer","marginBottom","tabContentContainer","tabPanel","selectedTab","routes","isRouteTabs","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","push","tabConfig","content","Box","event","newValue","orientation","scrollButtons","tabList","map","index","Tab","tabHeader","disableRipple","disableTouchRipple","focusRipple","DeletePolicy","withSuspense","setErrorSnackMessage","setSnackBarMessage","buttonContainer","pageContainer","paperContainer","breadcrumLink","statement","labelCol","actionsTray","searchField","modalBasic","containerForHeader","match","policy","setPolicy","policyStatements","setPolicyStatements","userList","setUserList","groupList","setGroupList","addLoading","setAddLoading","params","policyName","setPolicyName","policyDefinition","setPolicyDefinition","loadingPolicy","setLoadingPolicy","filterUsers","setFilterUsers","loadingUsers","setLoadingUsers","filterGroups","setFilterGroups","loadingGroups","setLoadingGroups","deleteOpen","setDeleteOpen","ldapIsEnabled","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","viewGroup","displayUsers","viewUser","displayPolicy","editPolicy","saveRecord","preventDefault","api","then","_","catch","err","useEffect","encodeURIComponent","result","JSON","stringify","parse","pol","Statement","validSave","trim","userTableActions","type","user","history","IAM_PAGES","disableButtonFunction","filteredUsers","filter","elementItem","groupTableActions","group","filteredGroups","selectedPolicy","closeDeleteModalAndRefresh","refresh","scopes","resource","errorProps","sectionTitle","noValidate","autoComplete","onSubmit","e","stmt","i","Effect","Action","act","actIndex","Resource","res","resIndex","placeholder","val","target","InputProps","disableUnderline","startAdornment","position","itemActions","columns","elementKey","isLoading","records","entityName","idField","formScrollable","editor","data","clearButton","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","indeterminate","capitalize","alpha","action","active","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","_icon$props$fontSize","_indeterminateIcon$pr","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","slots","composedClasses","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","disablePointerEvents","maxHeight","whiteSpace","inputAdornmentClasses","pointerEvents","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","as","_jsxs","Typography","baseGetTag","isArray","isObjectLike","module","_objectWithoutProperties","source","excluded","key","Object","getOwnPropertySymbols","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/1955.54bd6485.chunk.js b/portal-ui/build/static/js/1955.54bd6485.chunk.js deleted file mode 100644 index 0db279148..000000000 --- a/portal-ui/build/static/js/1955.54bd6485.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[1955,8760,9362,2879],{84669:function(e,n,t){"use strict";t(72791);var i=t(91523),o=t(11135),r=t(25787),a=t(74833),s=t(64554),l=t(80184);n.Z=(0,r.Z)((function(e){return(0,o.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var n=e.to,t=e.label,o=e.classes,r=e.className,c=e.executeOnClick;return(0,l.jsx)(s.Z,{sx:{display:"flex",alignItems:"center"},children:(0,l.jsx)(i.rU,{to:n,className:"".concat(o.link," ").concat(r||""),onClick:function(){c&&c()},children:(0,l.jsxs)("div",{className:o.iconBox,children:[(0,l.jsx)("div",{className:o.icon,children:(0,l.jsx)(a.xN,{})}),(0,l.jsx)("div",{className:o.label,children:t})]})})})}))},40603:function(e,n,t){"use strict";var i=t(1413),o=t(45987),r=(t(72791),t(85531)),a=t(72455),s=t(80184),l=["onClick","text","disabled","tooltip","icon"],c=(0,a.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,i=n.color,o=e.palette.primary.main;return"primary"===i&&"contained"===t?o=e.palette.primary.contrastText:"primary"===i&&"outlined"===t?o=e.palette.primary.main:"secondary"===i&&(o=e.palette.secondary.main),o}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=c(e),t=e.onClick,a=e.text,d=void 0===a?"":a,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,h=e.icon,x=void 0===h?null:h,f=(0,o.Z)(e,l);return(0,s.jsxs)(r.Z,(0,i.Z)((0,i.Z)({classes:n,tooltip:p||d,variant:"outlined",onClick:t,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},f),{},{children:[(0,s.jsx)("span",{children:d})," ",x]}))}},85531:function(e,n,t){"use strict";var i=t(1413),o=t(4942),r=t(45987),a=(t(72791),t(11135)),s=t(25787),l=t(13400),c=t(20068),d=t(28182),u=t(80184),m=["classes","children","variant","tooltip"];n.Z=(0,s.Z)((function(e){return(0,a.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,t=e.children,a=e.variant,s=void 0===a?"outlined":a,p=e.tooltip,h=(0,r.Z)(e,m),x=(0,u.jsx)(l.Z,(0,i.Z)((0,i.Z)({},h),{},{className:(0,d.Z)(n.root,(0,o.Z)({},n.contained,"contained"===s)),children:t}));return p&&""!==p?(0,u.jsx)(c.Z,{title:p,children:(0,u.jsx)("span",{children:x})}):x}))},92217:function(e,n,t){"use strict";var i=t(42982),o=t(70885),r=t(1413),a=t(72791),s=t(61889),l=(t(2574),t(69874)),c=t(9461),d=t(73975),u=t(80745),m=t(30829),p=t(20068),h=t(64554),x=t(11135),f=t(25787),b=t(84570),Z=t(23814),g=t(74833),v=t(40603),j=t(78029),C=t.n(j),y=t(64294),P=t(80184),S={json:d.AV,yaml:function(){return c.i.define(u.r)}},k=y.tk.theme({"&":{backgroundColor:"#FBFAFA"},".cm-content":{caretColor:"#05122B"},"&.cm-focused .cm-cursor":{borderLeftColor:"#05122B"},".cm-gutters":{backgroundColor:"#FBFAFA",color:"#000000",border:"none"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px",color:"#2781B0","& .\u037cc":{color:"#C83B51"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#dde1f1"},".cm-matchingBracket":{backgroundColor:"#05122B",color:"#ffffff"},".cm-selectionMatch":{backgroundColor:"#ebe7f1"},".cm-selectionLayer":{fontWeight:500}," .cm-selectionBackground":{backgroundColor:"#a180c7",color:"#ffffff"}},{dark:!1}),N=y.tk.theme({"&":{backgroundColor:"#282a36",color:"#ffb86c"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px","& .\u037cd, & .\u037cc":{color:"#8e6cef"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#44475a"},".cm-matchingBracket":{backgroundColor:"#842de5",color:"#ff79c6"},".cm-selectionLayer .cm-selectionBackground":{backgroundColor:"green"}},{dark:!0});n.Z=(0,f.Z)((function(e){return(0,x.Z)((0,r.Z)((0,r.Z)({},Z.YI),{},{inputLabel:(0,r.Z)((0,r.Z)({},Z.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var n=e.value,t=e.label,r=void 0===t?"":t,c=e.tooltip,d=void 0===c?"":c,u=e.mode,x=void 0===u?"json":u,f=e.classes,Z=e.onBeforeChange,j=e.readOnly,y=void 0!==j&&j,E=e.editorHeight,w=void 0===E?"250px":E,I=(0,a.useState)(!1),T=(0,o.Z)(I,2),A=T[0],F=T[1],M=[];return S[x]&&(M=[].concat((0,i.Z)(M),[S[x]()])),(0,P.jsxs)(a.Fragment,{children:[(0,P.jsxs)(m.Z,{className:f.inputLabel,children:[(0,P.jsx)("span",{children:r}),""!==d&&(0,P.jsx)("div",{className:f.tooltipContainer,children:(0,P.jsx)(p.Z,{title:d,placement:"top-start",children:(0,P.jsx)("div",{className:f.tooltip,children:(0,P.jsx)(b.Z,{})})})})]}),(0,P.jsx)(s.ZP,{item:!0,xs:12,children:(0,P.jsx)("br",{})}),(0,P.jsxs)(s.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,P.jsx)(s.ZP,{item:!0,xs:12,children:(0,P.jsx)(l.ZP,{value:n,theme:A?N:k,extensions:M,editable:!y,basicSetup:!0,height:w,onChange:function(e,n){Z(null,null,e)}})}),(0,P.jsx)(s.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:A?"#282c34":"#f7f7f7"},children:(0,P.jsxs)(h.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:[(0,P.jsx)(v.Z,{tooltip:"Change theme",onClick:function(){F(!A)},text:"",icon:(0,P.jsx)(g.EO,{}),color:"primary",variant:"outlined"}),(0,P.jsx)(C(),{text:n,children:(0,P.jsx)(v.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,P.jsx)(g.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},32291:function(e,n,t){"use strict";var i=t(72791),o=t(60364),r=t(61889),a=t(11135),s=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),m=t(3925),p=t(74833),h=t(80184),x={toggleList:m.kQ},f=(0,o.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),x);n.Z=f((0,s.Z)((function(e){return(0,a.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,o=e.actions,a=e.sidebarOpen,s=e.operatorMode,m=e.managerObjects,x=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(i.Fragment,{}):(0,h.jsxs)(r.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,h.jsx)("div",{className:n.logo,children:s?(0,h.jsx)(d.Z,{}):(0,h.jsx)(u.Z,{})}),(0,h.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),f&&(0,h.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,h.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:n.rightMenu,children:[o&&o,m&&m.length>0&&(0,h.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){x()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(p.gx,{})})]})]})})))},14917:function(e,n,t){"use strict";t(72791);var i=t(61889),o=t(11135),r=t(25787),a=t(80184);n.Z=(0,r.Z)((function(e){return(0,o.Z)({headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},screenTitle:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem",borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column"}},rightItems:{display:"flex",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.icon,o=e.title,r=e.subTitle,s=e.actions,l=e.className;return(0,a.jsx)(i.ZP,{container:!0,children:(0,a.jsxs)(i.ZP,{item:!0,xs:12,className:"".concat(n.screenTitle," ").concat(l||""),children:[(0,a.jsxs)("div",{className:n.leftItems,children:[t?(0,a.jsx)("div",{className:n.headerBarIcon,children:t}):null,(0,a.jsxs)("div",{className:n.titleColumn,children:[(0,a.jsx)("h1",{style:{margin:0},children:o}),(0,a.jsx)("span",{className:n.headerBarSubheader,children:r})]})]}),(0,a.jsx)("div",{className:n.rightItems,children:s})]})})}))},14662:function(e,n,t){"use strict";t.d(n,{Z:function(){return F}});var i=t(1413),o=t(70885),r=t(72791),a=t(64554),s=t(43896),l=t(80184),c=r.createContext(null);function d(e){var n=e.children,t=e.value,i=function(){var e=r.useState(null),n=(0,o.Z)(e,2),t=n[0],i=n[1];return r.useEffect((function(){i("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),a=r.useMemo((function(){return{idPrefix:i,value:t}}),[i,t]);return(0,l.jsx)(c.Provider,{value:a,children:n})}function u(){return r.useContext(c)}function m(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function p(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}var h=t(87462),x=t(63366),f=t(18073),b=["children"],Z=r.forwardRef((function(e,n){var t=e.children,i=(0,x.Z)(e,b),o=u();if(null===o)throw new TypeError("No TabContext provided");var a=r.Children.map(t,(function(e){return r.isValidElement(e)?r.cloneElement(e,{"aria-controls":m(o,e.props.value),id:p(o,e.props.value)}):null}));return(0,l.jsx)(f.Z,(0,h.Z)({},i,{ref:n,value:o.value,children:a}))})),g=t(28182),v=t(47630),j=t(93736),C=t(90767),y=t(95159);function P(e){return(0,y.Z)("MuiTabPanel",e)}(0,t(30208).Z)("MuiTabPanel",["root"]);var S=["children","className","value"],k=(0,v.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),N=r.forwardRef((function(e,n){var t=(0,j.Z)({props:e,name:"MuiTabPanel"}),i=t.children,o=t.className,r=t.value,a=(0,x.Z)(t,S),s=(0,h.Z)({},t),c=function(e){var n=e.classes;return(0,C.Z)({root:["root"]},P,n)}(s),d=u();if(null===d)throw new TypeError("No TabContext provided");var f=m(d,r),b=p(d,r);return(0,l.jsx)(k,(0,h.Z)({"aria-labelledby":b,className:(0,g.Z)(c.root,o),hidden:r!==d.value,id:f,ref:n,role:"tabpanel",ownerState:s},a,{children:r===d.value&&i}))})),E=t(25787),w=t(13967),I=t(11135),T=t(95193),A={minHeight:60},F=(0,E.Z)((function(e){return(0,I.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var n=e.children,t=e.classes,c=e.selectedTab,u=void 0===c?"0":c,m=e.routes,p=e.isRouteTabs,h=r.useState(u),x=(0,o.Z)(h,2),f=x[0],b=x[1],g=(0,w.Z)(),v=(0,T.Z)(g.breakpoints.down("md")),j=[],C=[];return n?(n.forEach((function(e){j.push(e.tabConfig),C.push(e.content)})),(0,l.jsx)(d,{value:"".concat(f),children:(0,l.jsxs)(a.Z,{className:t.tabsContainer,children:[(0,l.jsx)(a.Z,{className:t.tabsHeaderContainer,children:(0,l.jsx)(Z,{onChange:function(e,n){b(n)},orientation:v?"horizontal":"vertical",variant:v?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:j.map((function(e,n){return e?(0,l.jsx)(s.Z,(0,i.Z)((0,i.Z)({className:t.tabHeader,value:"".concat(n),style:A},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,l.jsxs)(a.Z,{className:t.tabContentContainer,children:[p?null:C.map((function(e,n){return(0,l.jsx)(N,{classes:(0,i.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),p?(0,l.jsx)("div",{className:t.tabPanel,children:m}):null]})]})})):null}))},23533:function(e,n,t){"use strict";t.r(n);var i=t(70885),o=t(1413),r=t(72791),a=t(60364),s=t(11135),l=t(25787),c=t(23814),d=t(10703),u=t(61889),m=t(36151),p=t(40986),h=t(92983),x=t(81207),f=t(32291),b=t(42649),Z=t(92217),g=t(62666),v=t(63466),j=t(27391),C=t(14917),y=t(64244),P=t(28789),S=t(74900),k=t(54599),N=t(74794),E=t(14662),w=t(84669),I=t(56087),T=t(38442),A=t(75578),F=t(40603),M=t(80184),R=(0,A.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(312)]).then(t.bind(t,312))}))),B=(0,a.$j)((function(e){return{features:e.console.session.features}}),{setErrorSnackMessage:b.Ih,setSnackBarMessage:b.y1});n.default=(0,l.Z)((function(e){return(0,s.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({buttonContainer:{textAlign:"right"},pageContainer:{border:"1px solid #EAEAEA",height:"100%"},paperContainer:{padding:"15px 15px 15px 50px",minHeight:"450px"},breadcrumLink:{textDecoration:"none",color:"black"},statement:{border:"1px solid #DADADA",padding:8,marginBottom:8,borderRadius:4},labelCol:{fontWeight:"bold"}},c.OR),c.qg),c.oO),(0,c.Bz)(e.spacing(4))))}))(B((function(e){var n=e.classes,t=e.match,o=e.setErrorSnackMessage,a=e.setSnackBarMessage,s=e.features,l=(0,r.useState)(null),c=(0,i.Z)(l,2),b=c[0],A=c[1],B=(0,r.useState)([]),L=(0,i.Z)(B,2),O=L[0],z=L[1],D=(0,r.useState)([]),H=(0,i.Z)(D,2),_=H[0],G=H[1],U=(0,r.useState)([]),V=(0,i.Z)(U,2),W=V[0],Y=V[1],J=(0,r.useState)(!1),q=(0,i.Z)(J,2),K=q[0],$=q[1],Q=(0,r.useState)(t.params[0]),X=(0,i.Z)(Q,2),ee=X[0],ne=X[1],te=(0,r.useState)(""),ie=(0,i.Z)(te,2),oe=ie[0],re=ie[1],ae=(0,r.useState)(!0),se=(0,i.Z)(ae,2),le=se[0],ce=se[1],de=(0,r.useState)(""),ue=(0,i.Z)(de,2),me=ue[0],pe=ue[1],he=(0,r.useState)(!0),xe=(0,i.Z)(he,2),fe=xe[0],be=xe[1],Ze=(0,r.useState)(""),ge=(0,i.Z)(Ze,2),ve=ge[0],je=ge[1],Ce=(0,r.useState)(!0),ye=(0,i.Z)(Ce,2),Pe=ye[0],Se=ye[1],ke=(0,r.useState)(!1),Ne=(0,i.Z)(ke,2),Ee=Ne[0],we=Ne[1],Ie=s&&s.includes("ldap-idp")||!1,Te=(0,T.F)(I.C3,[I.Ft.ADMIN_LIST_GROUPS,I.Ft.ADMIN_GET_GROUP],!0),Ae=(0,T.F)(I.C3,[I.Ft.ADMIN_GET_GROUP]),Fe=(0,T.F)(I.C3,[I.Ft.ADMIN_LIST_GROUPS]),Me=(0,T.F)(I.C3,[I.Ft.ADMIN_GET_USER]),Re=(0,T.F)(I.C3,[I.Ft.ADMIN_GET_POLICY]),Be=(0,T.F)(I.C3,[I.Ft.ADMIN_CREATE_POLICY]),Le=function(e){e.preventDefault(),K||($(!0),Be?x.Z.invoke("POST","/api/v1/policies",{name:ee,policy:oe}).then((function(e){$(!1),a("Policy successfully updated")})).catch((function(e){$(!1),o(e)})):$(!1))};(0,r.useEffect)((function(){le&&(le&&(Re?x.Z.invoke("GET","/api/v1/policy?name=".concat(encodeURIComponent(ee))).then((function(e){if(e){A(e),re(e?JSON.stringify(JSON.parse(e.policy),null,4):"");var n=JSON.parse(e.policy);z(n.Statement)}ce(!1)})).catch((function(e){o(e),ce(!1)})):ce(!1)),fe&&(Fe&&!Ie?x.Z.invoke("GET","/api/v1/policies/".concat(encodeURIComponent(ee),"/users")).then((function(e){G(e),be(!1)})).catch((function(e){o(e),be(!1)})):be(!1)),Pe&&(Te&&!Ie?x.Z.invoke("GET","/api/v1/policies/".concat(encodeURIComponent(ee),"/groups")).then((function(e){Y(e),Se(!1)})).catch((function(e){o(e),Se(!1)})):Se(!1)))}),[ee,le,fe,Pe,o,G,Y,re,A,be,Se,Fe,Te,Re,Ie]);var Oe=""!==ee.trim(),ze=[{type:"view",onClick:function(e){g.Z.push("".concat(I.gA.USERS,"/").concat(e))},disableButtonFunction:function(){return!Me}}],De=_.filter((function(e){return e.includes(me)})),He=[{type:"view",onClick:function(e){g.Z.push("".concat(I.gA.GROUPS,"/").concat(e))},disableButtonFunction:function(){return!Ae}}],_e=W.filter((function(e){return e.includes(ve)}));return(0,M.jsxs)(r.Fragment,{children:[Ee&&(0,M.jsx)(R,{deleteOpen:Ee,selectedPolicy:ee,closeDeleteModalAndRefresh:function(e){we(!1),g.Z.push(I.gA.POLICIES)}}),(0,M.jsx)(f.Z,{label:(0,M.jsx)(r.Fragment,{children:(0,M.jsx)(w.Z,{to:I.gA.POLICIES,label:"Policy"})})}),(0,M.jsxs)(N.Z,{className:n.pageContainer,children:[(0,M.jsx)(u.ZP,{item:!0,xs:12,children:(0,M.jsx)(C.Z,{icon:(0,M.jsx)(r.Fragment,{children:(0,M.jsx)(y.Z,{width:40})}),title:ee,subTitle:(0,M.jsx)(r.Fragment,{children:"IAM Policy"}),actions:(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)(T.s,{scopes:[I.Ft.ADMIN_DELETE_POLICY],resource:I.C3,errorProps:{disabled:!0},children:(0,M.jsx)(F.Z,{tooltip:"Delete Policy",text:"Delete Policy",variant:"outlined",color:"secondary",icon:(0,M.jsx)(k.Z,{}),onClick:function(){we(!0)}})}),(0,M.jsx)(F.Z,{tooltip:"Refresh",text:"Refresh",variant:"outlined",color:"primary",icon:(0,M.jsx)(P.default,{}),onClick:function(){be(!0),Se(!0),ce(!0)}})]})})}),(0,M.jsxs)(E.Z,{children:[{tabConfig:{label:"Summary",disabled:!Re},content:(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)("div",{className:n.sectionTitle,children:"Policy Summary"}),(0,M.jsx)(d.Z,{className:n.paperContainer,children:(0,M.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){Le(e)},children:(0,M.jsxs)(u.ZP,{container:!0,children:[(0,M.jsx)(u.ZP,{item:!0,xs:8,children:(0,M.jsx)("h4",{children:"Statements"})}),(0,M.jsx)(u.ZP,{item:!0,xs:4}),(0,M.jsx)(r.Fragment,{children:O.map((function(e,t){return(0,M.jsx)(u.ZP,{item:!0,xs:12,className:n.statement,children:(0,M.jsxs)(u.ZP,{container:!0,children:[(0,M.jsx)(u.ZP,{item:!0,xs:2,className:n.labelCol,children:"Effect"}),(0,M.jsx)(u.ZP,{item:!0,xs:4,children:(0,M.jsx)(r.Fragment,{children:e.Effect})}),(0,M.jsx)(u.ZP,{item:!0,xs:2,className:n.labelCol}),(0,M.jsx)(u.ZP,{item:!0,xs:4}),(0,M.jsx)(u.ZP,{item:!0,xs:2,className:n.labelCol,children:"Actions"}),(0,M.jsx)(u.ZP,{item:!0,xs:4,children:(0,M.jsx)("ul",{children:e.Action&&e.Action.map((function(e,n){return(0,M.jsx)("li",{children:e},"".concat(t,"-r-").concat(n))}))})}),(0,M.jsx)(u.ZP,{item:!0,xs:2,className:n.labelCol,children:"Resources"}),(0,M.jsx)(u.ZP,{item:!0,xs:4,children:(0,M.jsx)("ul",{children:e.Resource&&e.Resource.map((function(e,n){return(0,M.jsx)("li",{children:e},"".concat(t,"-r-").concat(n))}))})})]})},"s-".concat(t))}))})]})})})]})},{tabConfig:{label:"Users",disabled:!Fe||Ie},content:(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)("div",{className:n.sectionTitle,children:"Users"}),(0,M.jsxs)(u.ZP,{container:!0,children:[(0,M.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,M.jsx)(j.Z,{placeholder:"Search Users",className:n.searchField,id:"search-resource",label:"",onChange:function(e){pe(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,M.jsx)(v.Z,{position:"start",children:(0,M.jsx)(S.Z,{})})},variant:"standard"})}),(0,M.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,M.jsx)("br",{})}),(0,M.jsx)(h.Z,{itemActions:ze,columns:[{label:"Name",elementKey:"name"}],isLoading:fe,records:De,entityName:"Users",idField:"name"})]})]})},{tabConfig:{label:"Groups",disabled:!Te||Ie},content:(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)("div",{className:n.sectionTitle,children:"Groups"}),(0,M.jsxs)(u.ZP,{container:!0,children:[(0,M.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,M.jsx)(j.Z,{placeholder:"Search Groups",className:n.searchField,id:"search-resource",label:"",onChange:function(e){je(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,M.jsx)(v.Z,{position:"start",children:(0,M.jsx)(S.Z,{})})},variant:"standard"})}),(0,M.jsx)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,M.jsx)("br",{})}),(0,M.jsx)(h.Z,{itemActions:He,columns:[{label:"Name",elementKey:"name"}],isLoading:Pe,records:_e,entityName:"Groups",idField:"name"})]})]})},{tabConfig:{label:"Raw Policy",disabled:!Re},content:(0,M.jsxs)(r.Fragment,{children:[(0,M.jsx)("div",{className:n.sectionTitle,children:"Raw Policy"}),(0,M.jsx)(d.Z,{className:n.paperContainer,children:(0,M.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){Le(e)},children:(0,M.jsxs)(u.ZP,{container:!0,children:[(0,M.jsx)(u.ZP,{item:!0,xs:12,className:n.formScrollable,children:(0,M.jsx)(Z.Z,{readOnly:!Be,value:oe,onBeforeChange:function(e,n,t){re(t)},editorHeight:"350px"})}),(0,M.jsxs)(u.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[!b&&(0,M.jsx)("button",{type:"button",color:"primary",className:n.clearButton,onClick:function(){ne(""),re("")},children:"Clear"}),(0,M.jsx)(T.s,{scopes:[I.Ft.ADMIN_CREATE_POLICY],resource:I.C3,errorProps:{disabled:!0},children:(0,M.jsx)(m.Z,{type:"submit",variant:"contained",color:"primary",disabled:K||!Oe,children:"Save"})})]}),K&&(0,M.jsx)(u.ZP,{item:!0,xs:12,children:(0,M.jsx)(p.Z,{})})]})})})]})}]})]})]})})))},26759:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var o=i(t(45649)),r=t(80184),a=(0,o.default)((0,r.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");n.Z=a},70366:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var o=i(t(45649)),r=t(80184),a=(0,o.default)((0,r.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");n.Z=a},97911:function(e,n,t){"use strict";var i=t(95318);n.Z=void 0;var o=i(t(45649)),r=t(80184),a=(0,o.default)((0,r.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");n.Z=a},94454:function(e,n,t){"use strict";t.d(n,{Z:function(){return k}});var i=t(4942),o=t(63366),r=t(87462),a=t(72791),s=t(90767),l=t(12065),c=t(97278),d=t(76189),u=t(80184),m=(0,d.Z)((0,u.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),p=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),h=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox"),x=t(14036),f=t(93736),b=t(47630),Z=t(95159);function g(e){return(0,Z.Z)("MuiCheckbox",e)}var v=(0,t(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),j=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],C=(0,b.ZP)(c.Z,{shouldForwardProp:function(e){return(0,b.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,t.indeterminate&&n.indeterminate,"default"!==t.color&&n["color".concat((0,x.Z)(t.color))]]}})((function(e){var n,t=e.theme,o=e.ownerState;return(0,r.Z)({color:t.palette.text.secondary},!o.disableRipple&&{"&:hover":{backgroundColor:(0,l.Fq)("default"===o.color?t.palette.action.active:t.palette[o.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==o.color&&(n={},(0,i.Z)(n,"&.".concat(v.checked,", &.").concat(v.indeterminate),{color:t.palette[o.color].main}),(0,i.Z)(n,"&.".concat(v.disabled),{color:t.palette.action.disabled}),n))})),y=(0,u.jsx)(p,{}),P=(0,u.jsx)(m,{}),S=(0,u.jsx)(h,{}),k=a.forwardRef((function(e,n){var t,i,l=(0,f.Z)({props:e,name:"MuiCheckbox"}),c=l.checkedIcon,d=void 0===c?y:c,m=l.color,p=void 0===m?"primary":m,h=l.icon,b=void 0===h?P:h,Z=l.indeterminate,v=void 0!==Z&&Z,k=l.indeterminateIcon,N=void 0===k?S:k,E=l.inputProps,w=l.size,I=void 0===w?"medium":w,T=(0,o.Z)(l,j),A=v?N:b,F=v?N:d,M=(0,r.Z)({},l,{color:p,indeterminate:v,size:I}),R=function(e){var n=e.classes,t=e.indeterminate,i=e.color,o={root:["root",t&&"indeterminate","color".concat((0,x.Z)(i))]},a=(0,s.Z)(o,g,n);return(0,r.Z)({},n,a)}(M);return(0,u.jsx)(C,(0,r.Z)({type:"checkbox",inputProps:(0,r.Z)({"data-indeterminate":v},E),icon:a.cloneElement(A,{fontSize:null!=(t=A.props.fontSize)?t:I}),checkedIcon:a.cloneElement(F,{fontSize:null!=(i=F.props.fontSize)?i:I}),ownerState:M,ref:n},T,{classes:R}))}))},63466:function(e,n,t){"use strict";t.d(n,{Z:function(){return C}});var i=t(4942),o=t(63366),r=t(87462),a=t(72791),s=t(28182),l=t(90767),c=t(14036),d=t(20890),u=t(93840),m=t(52930),p=t(47630),h=t(95159);function x(e){return(0,h.Z)("MuiInputAdornment",e)}var f,b=(0,t(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),Z=t(93736),g=t(80184),v=["children","className","component","disablePointerEvents","disableTypography","position","variant"],j=(0,p.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["position".concat((0,c.Z)(t.position))],!0===t.disablePointerEvents&&n.disablePointerEvents,n[t.variant]]}})((function(e){var n=e.theme,t=e.ownerState;return(0,r.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:n.palette.action.active},"filled"===t.variant&&(0,i.Z)({},"&.".concat(b.positionStart,"&:not(.").concat(b.hiddenLabel,")"),{marginTop:16}),"start"===t.position&&{marginRight:8},"end"===t.position&&{marginLeft:8},!0===t.disablePointerEvents&&{pointerEvents:"none"})})),C=a.forwardRef((function(e,n){var t=(0,Z.Z)({props:e,name:"MuiInputAdornment"}),i=t.children,p=t.className,h=t.component,b=void 0===h?"div":h,C=t.disablePointerEvents,y=void 0!==C&&C,P=t.disableTypography,S=void 0!==P&&P,k=t.position,N=t.variant,E=(0,o.Z)(t,v),w=(0,m.Z)()||{},I=N;N&&w.variant,w&&!I&&(I=w.variant);var T=(0,r.Z)({},t,{hiddenLabel:w.hiddenLabel,size:w.size,disablePointerEvents:y,position:k,variant:I}),A=function(e){var n=e.classes,t=e.disablePointerEvents,i=e.hiddenLabel,o=e.position,r=e.size,a=e.variant,s={root:["root",t&&"disablePointerEvents",o&&"position".concat((0,c.Z)(o)),a,i&&"hiddenLabel",r&&"size".concat((0,c.Z)(r))]};return(0,l.Z)(s,x,n)}(T);return(0,g.jsx)(u.Z.Provider,{value:null,children:(0,g.jsx)(j,(0,r.Z)({as:b,ownerState:T,className:(0,s.Z)(A.root,p),ref:n},E,{children:"string"!==typeof i||S?(0,g.jsxs)(a.Fragment,{children:["start"===k?f||(f=(0,g.jsx)("span",{className:"notranslate",children:"\u200b"})):null,i]}):(0,g.jsx)(d.Z,{color:"text.secondary",children:i})}))})}))},26769:function(e,n,t){var i=t(39066),o=t(93629),r=t(43141);e.exports=function(e){return"string"==typeof e||!o(e)&&r(e)&&"[object String]"==i(e)}},45987:function(e,n,t){"use strict";t.d(n,{Z:function(){return o}});var i=t(63366);function o(e,n){if(null==e)return{};var t,o,r=(0,i.Z)(e,n);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,t)&&(r[t]=e[t])}return r}}}]); -//# sourceMappingURL=1955.54bd6485.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/1955.54bd6485.chunk.js.map b/portal-ui/build/static/js/1955.54bd6485.chunk.js.map deleted file mode 100644 index a8f66937e..000000000 --- a/portal-ui/build/static/js/1955.54bd6485.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/1955.54bd6485.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/ScreenTitle/ScreenTitle.tsx","../node_modules/@mui/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","screens/Console/Policies/PolicyDetails.tsx","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/lodash/isString.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\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 BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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 Grid from \"@mui/material/Grid\";\nimport \"codemirror/theme/dracula.css\";\n/** Code mirror */\nimport CodeMirror, { Extension } from \"@uiw/react-codemirror\";\nimport { StreamLanguage } from \"@codemirror/stream-parser\";\nimport { json } from \"@codemirror/lang-json\";\nimport { yaml } from \"@codemirror/legacy-modes/mode/yaml\";\n\n/** Code mirror */\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon, EditorThemeSwitchIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { EditorView } from \"@codemirror/view\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst langHighlight: Record = {\n json,\n yaml: () => StreamLanguage.define(yaml),\n};\n\nconst lightTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#FBFAFA\",\n },\n \".cm-content\": {\n caretColor: \"#05122B\",\n },\n \"&.cm-focused .cm-cursor\": {\n borderLeftColor: \"#05122B\",\n },\n \".cm-gutters\": {\n backgroundColor: \"#FBFAFA\",\n color: \"#000000\",\n border: \"none\",\n },\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n color: \"#2781B0\",\n \"& .ͼc\": {\n color: \"#C83B51\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#dde1f1\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#05122B\",\n color: \"#ffffff\",\n },\n \".cm-selectionMatch\": {\n backgroundColor: \"#ebe7f1\",\n },\n \".cm-selectionLayer\": {\n fontWeight: 500,\n },\n \" .cm-selectionBackground\": {\n backgroundColor: \"#a180c7\",\n color: \"#ffffff\",\n },\n },\n {\n dark: false,\n }\n);\n\nconst darkTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#282a36\",\n color: \"#ffb86c\",\n },\n\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n \"& .ͼd, & .ͼc\": {\n color: \"#8e6cef\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#44475a\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#842de5\",\n color: \"#ff79c6\",\n },\n \".cm-selectionLayer .cm-selectionBackground\": {\n backgroundColor: \"green\",\n },\n },\n {\n dark: true,\n }\n);\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n const [isDarkTheme, setIsDarkTheme] = useState(false);\n\n //based on the language mode pick . default to json\n let extensionList: Extension[] = [];\n if (langHighlight[mode]) {\n extensionList = [...extensionList, langHighlight[mode]()];\n }\n\n return (\n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n \n
    \n
    \n\n \n \n {\n onBeforeChange(null, null, v);\n }}\n />\n \n \n \n {\n setIsDarkTheme(!isDarkTheme);\n }}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n {}}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n
    \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IScreenTitle {\n classes: any;\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n screenTitle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n },\n });\n\nconst ScreenTitle = ({\n classes,\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n return (\n \n \n
    \n {icon ?
    {icon}
    : null}\n
    \n

    {title}

    \n {subTitle}\n
    \n
    \n\n
    {actions}
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ScreenTitle);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of `` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n
    {routes}
    \n ) : null}\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\n","// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { IAMPolicy, IAMStatement, Policy } from \"./types\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n actionsTray,\n containerForHeader,\n modalBasic,\n searchField,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport Paper from \"@mui/material/Paper\";\nimport Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport api from \"../../../common/api\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport { setErrorSnackMessage, setSnackBarMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport history from \"../../../history\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport TextField from \"@mui/material/TextField\";\nimport ScreenTitle from \"../Common/ScreenTitle/ScreenTitle\";\nimport IAMPoliciesIcon from \"../../../icons/IAMPoliciesIcon\";\nimport RefreshIcon from \"../../../icons/RefreshIcon\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TrashIcon from \"../../../icons/TrashIcon\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport VerticalTabs from \"../Common/VerticalTabs/VerticalTabs\";\nimport BackLink from \"../../../common/BackLink\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../common/SecureComponent\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { AppState } from \"../../../store\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst DeletePolicy = withSuspense(React.lazy(() => import(\"./DeletePolicy\")));\n\ninterface IPolicyDetailsProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setSnackBarMessage: typeof setSnackBarMessage;\n features: string[] | null;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n pageContainer: {\n border: \"1px solid #EAEAEA\",\n height: \"100%\",\n },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n minHeight: \"450px\",\n },\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n statement: {\n border: \"1px solid #DADADA\",\n padding: 8,\n marginBottom: 8,\n borderRadius: 4,\n },\n labelCol: {\n fontWeight: \"bold\",\n },\n ...actionsTray,\n ...searchField,\n ...modalBasic,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst PolicyDetails = ({\n classes,\n match,\n setErrorSnackMessage,\n setSnackBarMessage,\n features,\n}: IPolicyDetailsProps) => {\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 const [policyName, setPolicyName] = useState(match.params[0]);\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n const [loadingPolicy, setLoadingPolicy] = useState(true);\n const [filterUsers, setFilterUsers] = useState(\"\");\n const [loadingUsers, setLoadingUsers] = useState(true);\n const [filterGroups, setFilterGroups] = useState(\"\");\n const [loadingGroups, setLoadingGroups] = useState(true);\n const [deleteOpen, setDeleteOpen] = useState(false);\n\n const ldapIsEnabled = (features && features.includes(\"ldap-idp\")) || false;\n\n const displayGroups = hasPermission(\n CONSOLE_UI_RESOURCE,\n [IAM_SCOPES.ADMIN_LIST_GROUPS, IAM_SCOPES.ADMIN_GET_GROUP],\n true\n );\n\n const viewGroup = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_GROUP,\n ]);\n\n const displayUsers = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_LIST_GROUPS,\n ]);\n\n const viewUser = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_USER,\n ]);\n\n const displayPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_POLICY,\n ]);\n\n const editPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_CREATE_POLICY,\n ]);\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (editPolicy) {\n api\n .invoke(\"POST\", \"/api/v1/policies\", {\n name: policyName,\n policy: policyDefinition,\n })\n .then((_) => {\n setAddLoading(false);\n setSnackBarMessage(\"Policy successfully updated\");\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setErrorSnackMessage(err);\n });\n } else {\n setAddLoading(false);\n }\n };\n\n useEffect(() => {\n const loadUsersForPolicy = () => {\n if (loadingUsers) {\n if (displayUsers && !ldapIsEnabled) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policies/${encodeURIComponent(policyName)}/users`\n )\n .then((result: any) => {\n setUserList(result);\n setLoadingUsers(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingUsers(false);\n });\n } else {\n setLoadingUsers(false);\n }\n }\n };\n\n const loadGroupsForPolicy = () => {\n if (loadingGroups) {\n if (displayGroups && !ldapIsEnabled) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policies/${encodeURIComponent(policyName)}/groups`\n )\n .then((result: any) => {\n setGroupList(result);\n setLoadingGroups(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingGroups(false);\n });\n } else {\n setLoadingGroups(false);\n }\n }\n };\n const loadPolicyDetails = () => {\n if (loadingPolicy) {\n if (displayPolicy) {\n api\n .invoke(\n \"GET\",\n `/api/v1/policy?name=${encodeURIComponent(policyName)}`\n )\n .then((result: any) => {\n if (result) {\n setPolicy(result);\n setPolicyDefinition(\n result\n ? JSON.stringify(JSON.parse(result.policy), null, 4)\n : \"\"\n );\n const pol: IAMPolicy = JSON.parse(result.policy);\n setPolicyStatements(pol.Statement);\n }\n setLoadingPolicy(false);\n })\n .catch((err: ErrorResponseHandler) => {\n 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 setErrorSnackMessage,\n setUserList,\n setGroupList,\n setPolicyDefinition,\n setPolicy,\n setLoadingUsers,\n setLoadingGroups,\n displayUsers,\n displayGroups,\n displayPolicy,\n ldapIsEnabled,\n ]);\n\n const resetForm = () => {\n setPolicyName(\"\");\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 history.push(IAM_PAGES.POLICIES);\n };\n\n const userViewAction = (user: any) => {\n history.push(`${IAM_PAGES.USERS}/${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 history.push(`${IAM_PAGES.GROUPS}/${group}`);\n };\n\n const groupTableActions = [\n {\n type: \"view\",\n onClick: groupViewAction,\n disableButtonFunction: () => !viewGroup,\n },\n ];\n\n const filteredGroups = groupList.filter((elementItem) =>\n elementItem.includes(filterGroups)\n );\n\n return (\n \n {deleteOpen && (\n \n )}\n \n \n \n }\n />\n\n \n \n \n \n
    \n }\n title={policyName}\n subTitle={IAM Policy}\n actions={\n \n \n }\n onClick={deletePolicy}\n />\n \n\n }\n onClick={() => {\n setLoadingUsers(true);\n setLoadingGroups(true);\n setLoadingPolicy(true);\n }}\n />\n \n }\n />\n \n\n \n {{\n tabConfig: { label: \"Summary\", disabled: !displayPolicy },\n content: (\n \n
    Policy Summary
    \n \n ) => {\n saveRecord(e);\n }}\n >\n \n \n

    Statements

    \n
    \n \n\n \n {policyStatements.map((stmt, i) => {\n return (\n \n \n \n Effect\n \n \n {stmt.Effect}\n \n \n \n \n Actions\n \n \n
      \n {stmt.Action &&\n stmt.Action.map((act, actIndex) => (\n
    • \n {act}\n
    • \n ))}\n
    \n
    \n \n Resources\n \n \n
      \n {stmt.Resource &&\n stmt.Resource.map((res, resIndex) => (\n
    • \n {res}\n
    • \n ))}\n
    \n
    \n
    \n
    \n );\n })}\n
    \n
    \n \n
    \n
    \n ),\n }}\n {{\n tabConfig: {\n label: \"Users\",\n disabled: !displayUsers || ldapIsEnabled,\n },\n content: (\n \n
    Users
    \n \n \n {\n setFilterUsers(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n \n
    \n
    \n \n
    \n
    \n ),\n }}\n {{\n tabConfig: {\n label: \"Groups\",\n disabled: !displayGroups || ldapIsEnabled,\n },\n content: (\n \n
    Groups
    \n \n \n {\n setFilterGroups(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n \n \n
    \n
    \n \n
    \n
    \n ),\n }}\n {{\n tabConfig: { label: \"Raw Policy\", disabled: !displayPolicy },\n content: (\n \n
    Raw Policy
    \n \n ) => {\n saveRecord(e);\n }}\n >\n \n \n {\n setPolicyDefinition(value);\n }}\n editorHeight={\"350px\"}\n />\n \n \n {!policy && (\n {\n resetForm();\n }}\n >\n Clear\n \n )}\n \n \n Save\n \n \n \n {addLoading && (\n \n \n \n )}\n \n \n \n
    \n ),\n }}\n
    \n \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n features: state.console.session.features,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setSnackBarMessage,\n});\n\nexport default withStyles(styles)(connector(PolicyDetails));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\n\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: theme.palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ?\n /* notranslate needed while Google Translate will not fix zero-width space issue */\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","useStyles","makeStyles","root","padding","props","variant","tgtColor","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","disabled","tooltip","restProps","size","border","borderWidth","borderStyle","backgroundColor","opacity","contained","dark","children","rest","button","clsx","title","langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","caretColor","borderLeftColor","borderRight","darkTheme","fieldBasic","inputLabel","value","mode","onBeforeChange","readOnly","editorHeight","useState","isDarkTheme","setIsDarkTheme","extensionList","tooltipContainer","placement","item","xs","extensions","editable","basicSetup","onChange","v","vu","borderTop","justifyContent","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","actions","includes","Fragment","container","direction","sm","md","length","component","id","headerBarIcon","headerBarSubheader","maxWidth","screenTitle","borderBottom","flexFlow","titleColumn","leftItems","rightItems","subTitle","style","margin","Context","React","TabContext","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","child","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","name","overridesResolver","styles","spacing","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","hidden","role","tabStripStyle","tabsContainer","tabsHeaderContainer","marginBottom","tabContentContainer","tabPanel","selectedTab","routes","isRouteTabs","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","push","tabConfig","content","Box","event","newValue","orientation","scrollButtons","tabList","map","index","Tab","tabHeader","disableRipple","disableTouchRipple","focusRipple","DeletePolicy","withSuspense","setErrorSnackMessage","setSnackBarMessage","buttonContainer","pageContainer","paperContainer","breadcrumLink","statement","labelCol","actionsTray","searchField","modalBasic","containerForHeader","match","policy","setPolicy","policyStatements","setPolicyStatements","userList","setUserList","groupList","setGroupList","addLoading","setAddLoading","params","policyName","setPolicyName","policyDefinition","setPolicyDefinition","loadingPolicy","setLoadingPolicy","filterUsers","setFilterUsers","loadingUsers","setLoadingUsers","filterGroups","setFilterGroups","loadingGroups","setLoadingGroups","deleteOpen","setDeleteOpen","ldapIsEnabled","displayGroups","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","viewGroup","displayUsers","viewUser","displayPolicy","editPolicy","saveRecord","preventDefault","api","then","_","catch","err","useEffect","encodeURIComponent","result","JSON","stringify","parse","pol","Statement","validSave","trim","userTableActions","type","user","history","IAM_PAGES","disableButtonFunction","filteredUsers","filter","elementItem","groupTableActions","group","filteredGroups","selectedPolicy","closeDeleteModalAndRefresh","refresh","scopes","resource","errorProps","sectionTitle","noValidate","autoComplete","onSubmit","e","stmt","i","Effect","Action","act","actIndex","Resource","res","resIndex","placeholder","val","target","InputProps","disableUnderline","startAdornment","position","itemActions","columns","elementKey","isLoading","records","entityName","idField","formScrollable","editor","data","clearButton","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","createSvgIcon","getCheckboxUtilityClass","CheckboxRoot","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","indeterminate","capitalize","alpha","action","active","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","_icon$props$fontSize","_indeterminateIcon$pr","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","slots","composedClasses","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","disablePointerEvents","maxHeight","whiteSpace","inputAdornmentClasses","pointerEvents","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","as","_jsxs","Typography","baseGetTag","isArray","isObjectLike","module","_objectWithoutProperties","source","excluded","key","Object","getOwnPropertySymbols","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2112.afb8bcb6.chunk.js b/portal-ui/build/static/js/2112.d1dc9c18.chunk.js similarity index 96% rename from portal-ui/build/static/js/2112.afb8bcb6.chunk.js rename to portal-ui/build/static/js/2112.d1dc9c18.chunk.js index 61c8809ce..099c05ad2 100644 --- a/portal-ui/build/static/js/2112.afb8bcb6.chunk.js +++ b/portal-ui/build/static/js/2112.d1dc9c18.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2112],{9505:function(e,n,t){var o=t(70885),i=t(72791),a=t(81207);n.Z=function(e,n){var t=(0,i.useState)(!1),c=(0,o.Z)(t,2),s=c[0],r=c[1];return[s,function(t,o,i){r(!0),a.Z.invoke(t,o,i).then((function(n){r(!1),e(n)})).catch((function(e){r(!1),n(e)}))}]}},23508:function(e,n,t){var o=t(1413),i=t(72791),a=t(5574),c=t(65661),s=t(39157),r=t(97123),l=t(36151),d=t(59860),u=t(13400),m=t(29823),f=t(11135),p=t(25787),Z=t(23814),v=t(80184);n.Z=(0,p.Z)((function(e){return(0,f.Z)((0,o.Z)({},Z.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,f=e.onClose,p=e.onCancel,Z=e.onConfirm,x=e.classes,C=void 0===x?{}:x,h=e.title,j=void 0===h?"":h,b=e.isLoading,k=e.confirmationContent,g=e.cancelText,P=void 0===g?"Cancel":g,N=e.confirmText,y=void 0===N?"Confirm":N,B=e.confirmButtonProps,E=void 0===B?{}:B,M=e.cancelButtonProps,T=void 0===M?{}:M,V=e.titleIcon,D=void 0===V?null:V;return(0,v.jsxs)(a.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&f()},className:C.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,v.jsxs)(c.Z,{className:C.title,children:[(0,v.jsxs)("div",{className:C.titleText,children:[D," ",j]}),(0,v.jsx)("div",{className:C.closeContainer,children:(0,v.jsx)(u.Z,{"aria-label":"close",className:C.closeButton,onClick:f,disableRipple:!0,size:"small",children:(0,v.jsx)(m.Z,{})})})]}),(0,v.jsx)(s.Z,{className:C.content,children:k}),(0,v.jsxs)(r.Z,{className:C.actions,children:[(0,v.jsx)(l.Z,(0,o.Z)((0,o.Z)({className:C.cancelButton,onClick:p||f,disabled:b,type:"button"},T),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:P})),(0,v.jsx)(d.Z,(0,o.Z)((0,o.Z)({className:C.confirmButton,type:"button",onClick:Z,loading:b,disabled:b,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,v.jsx)(i.Fragment,{}),autoFocus:!0,id:"confirm-ok"},E),{},{children:y}))]})]})}))},32112:function(e,n,t){t.r(n);var o=t(70885),i=t(72791),a=t(51691),c=t(21435),s=t(61889),r=t(60364),l=t(42649),d=t(9505),u=t(23508),m=t(74833),f=t(80184),p=(0,r.$j)(null,{setErrorSnackMessage:l.Ih});n.default=p((function(e){var n=e.deleteOpen,t=e.selectedPVC,r=e.closeDeleteModalAndRefresh,l=e.setErrorSnackMessage,p=(0,i.useState)(""),Z=(0,o.Z)(p,2),v=Z[0],x=Z[1],C=(0,d.Z)((function(){return r(!0)}),(function(e){return l(e)})),h=(0,o.Z)(C,2),j=h[0],b=h[1];return(0,f.jsx)(u.Z,{title:"Delete PVC",confirmText:"Delete",isOpen:n,titleIcon:(0,f.jsx)(m.Nv,{}),isLoading:j,onConfirm:function(){v===t.name?b("DELETE","/api/v1/namespaces/".concat(t.namespace,"/tenants/").concat(t.tenant,"/pvc/").concat(t.name)):l({errorMessage:"PVC name is incorrect",detailedError:""})},onClose:function(){return r(!1)},confirmButtonProps:{disabled:v!==t.name||j},confirmationContent:(0,f.jsxs)(a.Z,{children:["To continue please type ",(0,f.jsx)("b",{children:t.name})," in the box.",(0,f.jsx)(s.ZP,{item:!0,xs:12,children:(0,f.jsx)(c.Z,{id:"retype-PVC",name:"retype-PVC",onChange:function(e){x(e.target.value)},label:"",value:v})})]})})}))},29823:function(e,n,t){var o=t(95318);n.Z=void 0;var i=o(t(45649)),a=t(80184),c=(0,i.default)((0,a.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");n.Z=c}}]); -//# sourceMappingURL=2112.afb8bcb6.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2112],{9505:function(e,n,t){var o=t(70885),i=t(72791),a=t(81207);n.Z=function(e,n){var t=(0,i.useState)(!1),c=(0,o.Z)(t,2),s=c[0],r=c[1];return[s,function(t,o,i){r(!0),a.Z.invoke(t,o,i).then((function(n){r(!1),e(n)})).catch((function(e){r(!1),n(e)}))}]}},23508:function(e,n,t){var o=t(1413),i=t(72791),a=t(5574),c=t(65661),s=t(39157),r=t(97123),l=t(36151),d=t(59860),u=t(13400),m=t(29823),f=t(11135),p=t(25787),Z=t(23814),v=t(80184);n.Z=(0,p.Z)((function(e){return(0,f.Z)((0,o.Z)({},Z.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,f=e.onClose,p=e.onCancel,Z=e.onConfirm,x=e.classes,C=void 0===x?{}:x,h=e.title,j=void 0===h?"":h,b=e.isLoading,k=e.confirmationContent,g=e.cancelText,P=void 0===g?"Cancel":g,N=e.confirmText,y=void 0===N?"Confirm":N,B=e.confirmButtonProps,E=void 0===B?{}:B,M=e.cancelButtonProps,T=void 0===M?{}:M,V=e.titleIcon,D=void 0===V?null:V;return(0,v.jsxs)(a.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&f()},className:C.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,v.jsxs)(c.Z,{className:C.title,children:[(0,v.jsxs)("div",{className:C.titleText,children:[D," ",j]}),(0,v.jsx)("div",{className:C.closeContainer,children:(0,v.jsx)(u.Z,{"aria-label":"close",className:C.closeButton,onClick:f,disableRipple:!0,size:"small",children:(0,v.jsx)(m.Z,{})})})]}),(0,v.jsx)(s.Z,{className:C.content,children:k}),(0,v.jsxs)(r.Z,{className:C.actions,children:[(0,v.jsx)(l.Z,(0,o.Z)((0,o.Z)({className:C.cancelButton,onClick:p||f,disabled:b,type:"button"},T),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:P})),(0,v.jsx)(d.Z,(0,o.Z)((0,o.Z)({className:C.confirmButton,type:"button",onClick:Z,loading:b,disabled:b,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,v.jsx)(i.Fragment,{}),autoFocus:!0,id:"confirm-ok"},E),{},{children:y}))]})]})}))},32112:function(e,n,t){t.r(n);var o=t(70885),i=t(72791),a=t(51691),c=t(21435),s=t(61889),r=t(60364),l=t(42649),d=t(9505),u=t(23508),m=t(13048),f=t(80184),p=(0,r.$j)(null,{setErrorSnackMessage:l.Ih});n.default=p((function(e){var n=e.deleteOpen,t=e.selectedPVC,r=e.closeDeleteModalAndRefresh,l=e.setErrorSnackMessage,p=(0,i.useState)(""),Z=(0,o.Z)(p,2),v=Z[0],x=Z[1],C=(0,d.Z)((function(){return r(!0)}),(function(e){return l(e)})),h=(0,o.Z)(C,2),j=h[0],b=h[1];return(0,f.jsx)(u.Z,{title:"Delete PVC",confirmText:"Delete",isOpen:n,titleIcon:(0,f.jsx)(m.Nv,{}),isLoading:j,onConfirm:function(){v===t.name?b("DELETE","/api/v1/namespaces/".concat(t.namespace,"/tenants/").concat(t.tenant,"/pvc/").concat(t.name)):l({errorMessage:"PVC name is incorrect",detailedError:""})},onClose:function(){return r(!1)},confirmButtonProps:{disabled:v!==t.name||j},confirmationContent:(0,f.jsxs)(a.Z,{children:["To continue please type ",(0,f.jsx)("b",{children:t.name})," in the box.",(0,f.jsx)(s.ZP,{item:!0,xs:12,children:(0,f.jsx)(c.Z,{id:"retype-PVC",name:"retype-PVC",onChange:function(e){x(e.target.value)},label:"",value:v})})]})})}))},29823:function(e,n,t){var o=t(95318);n.Z=void 0;var i=o(t(45649)),a=t(80184),c=(0,i.default)((0,a.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");n.Z=c}}]); +//# sourceMappingURL=2112.d1dc9c18.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2112.afb8bcb6.chunk.js.map b/portal-ui/build/static/js/2112.d1dc9c18.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/2112.afb8bcb6.chunk.js.map rename to portal-ui/build/static/js/2112.d1dc9c18.chunk.js.map index 16c7f9939..1e19b0acd 100644 --- a/portal-ui/build/static/js/2112.afb8bcb6.chunk.js.map +++ b/portal-ui/build/static/js/2112.d1dc9c18.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2112.afb8bcb6.chunk.js","mappings":"iJA+BA,IAvBe,SACbA,EACAC,GAEA,OAAkCC,EAAAA,EAAAA,WAAkB,GAApD,eAAOC,EAAP,KAAkBC,EAAlB,KAgBA,MAAO,CAACD,EAdQ,SAACE,EAAgBC,EAAaC,GAC5CH,GAAa,GACbI,EAAAA,EAAAA,OACUH,EAAQC,EAAKC,GACpBE,MAAK,SAACC,GACLN,GAAa,GACbJ,EAAUU,MAEXC,OAAM,SAACC,GACNR,GAAa,GACbH,EAAQW,U,kLCmGhB,KAAeC,EAAAA,EAAAA,IA1GA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,UACRC,EAAAA,OAwGP,EArFsB,SAAC,GAcI,IAAD,IAbxBC,OAAAA,OAawB,SAZxBC,EAYwB,EAZxBA,QACAC,EAWwB,EAXxBA,SACAC,EAUwB,EAVxBA,UAUwB,IATxBC,QAAAA,OASwB,MATd,GASc,MARxBC,MAAAA,OAQwB,MARhB,GAQgB,EAPxBnB,EAOwB,EAPxBA,UACAoB,EAMwB,EANxBA,oBAMwB,IALxBC,WAAAA,OAKwB,MALX,SAKW,MAJxBC,YAAAA,OAIwB,MAJV,UAIU,MAHxBC,mBAAAA,OAGwB,MAHH,GAGG,MAFxBC,kBAAAA,OAEwB,MAFJ,GAEI,MADxBC,UAAAA,OACwB,MADZ,KACY,EACxB,OACE,UAAC,IAAD,CACEC,KAAMZ,EACNC,QAAS,SAACY,EAAOC,GACA,kBAAXA,GACFb,KAGJc,UAAWX,EAAQY,KACnBC,GAAI,CACF,mBAAoB,CAClBC,QAAS,wBAVf,WAcE,UAAC,IAAD,CAAaH,UAAWX,EAAQC,MAAhC,WACE,iBAAKU,UAAWX,EAAQe,UAAxB,UACGR,EADH,IACeN,MAEf,gBAAKU,UAAWX,EAAQgB,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACXL,UAAWX,EAAQiB,YACnBC,QAASrB,EACTsB,eAAa,EACbC,KAAK,QALP,UAOE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAeT,UAAWX,EAAQqB,QAAlC,SACGnB,KAEH,UAAC,IAAD,CAAeS,UAAWX,EAAQsB,QAAlC,WACE,SAAC,KAAD,gBACEX,UAAWX,EAAQuB,aACnBL,QAASpB,GAAYD,EACrB2B,SAAU1C,EACV2C,KAAK,UACDnB,GALN,IAMEoB,QAAQ,WACRC,MAAM,UACNC,GAAI,iBARN,SAUGzB,MAGH,SAAC,KAAD,gBACEQ,UAAWX,EAAQ6B,cACnBJ,KAAK,SACLP,QAASnB,EACT+B,QAAShD,EACT0C,SAAU1C,EACV4C,QAAQ,WACRC,MAAM,YACNI,gBAAgB,QAChBC,WAAW,SAAC,WAAD,IACXC,WAAS,EACTL,GAAI,cACAvB,GAZN,aAcGD,e,yJCrBL8B,GAAYC,EAAAA,EAAAA,IAAQ,KAAM,CAC9BC,qBAAAA,EAAAA,KAGF,UAAeF,GAhEG,SAAC,GAKA,IAJjBG,EAIgB,EAJhBA,WACAC,EAGgB,EAHhBA,YACAC,EAEgB,EAFhBA,2BACAH,EACgB,EADhBA,qBAEA,GAAkCvD,EAAAA,EAAAA,UAAS,IAA3C,eAAO2D,EAAP,KAAkBC,EAAlB,KAMA,GAAyCC,EAAAA,EAAAA,IAJpB,kBAAMH,GAA2B,MACnC,SAAChD,GAAD,OAA+B6C,EAAqB7C,MAGvE,eAAOoD,EAAP,KAAsBC,EAAtB,KAgBA,OACE,SAAC,IAAD,CACE3C,MAAK,aACLG,YAAa,SACbR,OAAQyC,EACR9B,WAAW,SAAC,KAAD,IACXzB,UAAW6D,EACX5C,UArBoB,WAClByC,IAAcF,EAAYO,KAO9BD,EACE,SADa,6BAESN,EAAYQ,UAFrB,oBAE0CR,EAAYS,OAFtD,gBAEoET,EAAYO,OAR7FT,EAAqB,CACnBY,aAAc,wBACdC,cAAe,MAkBjBpD,QA1BY,kBAAM0C,GAA2B,IA2B7ClC,mBAAoB,CAClBmB,SAAUgB,IAAcF,EAAYO,MAAQF,GAE9CzC,qBACE,UAAC,IAAD,uCAC0B,uBAAIoC,EAAYO,OAD1C,gBAEE,SAAC,KAAD,CAAMK,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,CACEvB,GAAG,aACHiB,KAAK,aACLO,SAAU,SAAC3C,GACTgC,EAAahC,EAAM4C,OAAOC,QAE5BC,MAAM,GACND,MAAOd,e,0BCpFjBgB,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,0GACD,SAEJN,EAAQ,EAAUG","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Tenants/TenantDetails/DeletePVC.tsx","../node_modules/@mui/icons-material/Close.js"],"sourcesContent":["import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\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 { DialogContentText } from \"@mui/material\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\nimport { IStoragePVCs } from \"../../Storage/types\";\n\ninterface IDeletePVC {\n deleteOpen: boolean;\n selectedPVC: IStoragePVCs;\n closeDeleteModalAndRefresh: (refreshList: boolean) => any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeletePVC = ({\n deleteOpen,\n selectedPVC,\n closeDeleteModalAndRefresh,\n setErrorSnackMessage,\n}: IDeletePVC) => {\n const [retypePVC, setRetypePVC] = useState(\"\");\n\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n if (retypePVC !== selectedPVC.name) {\n setErrorSnackMessage({\n errorMessage: \"PVC name is incorrect\",\n detailedError: \"\",\n });\n return;\n }\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/namespaces/${selectedPVC.namespace}/tenants/${selectedPVC.tenant}/pvc/${selectedPVC.name}`\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypePVC !== selectedPVC.name || deleteLoading,\n }}\n confirmationContent={\n \n To continue please type {selectedPVC.name} in the box.\n \n ) => {\n setRetypePVC(event.target.value);\n }}\n label=\"\"\n value={retypePVC}\n />\n \n \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default connector(DeletePVC);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","withStyles","theme","createStyles","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","classes","title","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","className","root","sx","padding","titleText","closeContainer","closeButton","onClick","disableRipple","size","content","actions","cancelButton","disabled","type","variant","color","id","confirmButton","loading","loadingPosition","startIcon","autoFocus","connector","connect","setErrorSnackMessage","deleteOpen","selectedPVC","closeDeleteModalAndRefresh","retypePVC","setRetypePVC","useApi","deleteLoading","invokeDeleteApi","name","namespace","tenant","errorMessage","detailedError","item","xs","onChange","target","value","label","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2112.d1dc9c18.chunk.js","mappings":"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","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Tenants/TenantDetails/DeletePVC.tsx","../node_modules/@mui/icons-material/Close.js"],"sourcesContent":["import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\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 { DialogContentText } from \"@mui/material\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\nimport { IStoragePVCs } from \"../../Storage/types\";\n\ninterface IDeletePVC {\n deleteOpen: boolean;\n selectedPVC: IStoragePVCs;\n closeDeleteModalAndRefresh: (refreshList: boolean) => any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeletePVC = ({\n deleteOpen,\n selectedPVC,\n closeDeleteModalAndRefresh,\n setErrorSnackMessage,\n}: IDeletePVC) => {\n const [retypePVC, setRetypePVC] = useState(\"\");\n\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n if (retypePVC !== selectedPVC.name) {\n setErrorSnackMessage({\n errorMessage: \"PVC name is incorrect\",\n detailedError: \"\",\n });\n return;\n }\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/namespaces/${selectedPVC.namespace}/tenants/${selectedPVC.tenant}/pvc/${selectedPVC.name}`\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypePVC !== selectedPVC.name || deleteLoading,\n }}\n confirmationContent={\n \n To continue please type {selectedPVC.name} in the box.\n \n ) => {\n setRetypePVC(event.target.value);\n }}\n label=\"\"\n value={retypePVC}\n />\n \n \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default connector(DeletePVC);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","withStyles","theme","createStyles","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","classes","title","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","className","root","sx","padding","titleText","closeContainer","closeButton","onClick","disableRipple","size","content","actions","cancelButton","disabled","type","variant","color","id","confirmButton","loading","loadingPosition","startIcon","autoFocus","connector","connect","setErrorSnackMessage","deleteOpen","selectedPVC","closeDeleteModalAndRefresh","retypePVC","setRetypePVC","useApi","deleteLoading","invokeDeleteApi","name","namespace","tenant","errorMessage","detailedError","item","xs","onChange","target","value","label","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2114.ac47a792.chunk.js b/portal-ui/build/static/js/2114.fac0126b.chunk.js similarity index 99% rename from portal-ui/build/static/js/2114.ac47a792.chunk.js rename to portal-ui/build/static/js/2114.fac0126b.chunk.js index 3b4bc8afc..e7d50be06 100644 --- a/portal-ui/build/static/js/2114.ac47a792.chunk.js +++ b/portal-ui/build/static/js/2114.fac0126b.chunk.js @@ -1,2 +1,2 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2114],{23804:function(e,n,t){"use strict";t(72791);var a=t(11135),i=t(25787),s=t(61889),r=t(80184);n.Z=(0,i.Z)((function(e){return(0,a.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,a=e.title,i=e.help;return(0,r.jsx)("div",{className:n.root,children:(0,r.jsxs)(s.ZP,{container:!0,children:[(0,r.jsxs)(s.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,a]}),(0,r.jsx)(s.ZP,{item:!0,xs:12,className:n.helpText,children:i})]})})}))},51:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return K}});var a=t(70885),i=t(1413),s=t(72791),r=t(60364),o=t(11135),l=t(25787),c=t(26181),d=t.n(c),u=t(46431),m=t.n(u),x=t(61889),f=t(74833),p=t(23814),h=t(42649),Z=t(81207),v=t(36151),g=t(40986),j=t(56028),y=t(21435),b=t(37516),S=t(17420),C=t(90673),_=t(83679),k=t(80184),N={setModalErrorSnackMessage:h.zb},P=(0,r.$j)(null,N),E=(0,l.Z)((function(e){return(0,o.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({dateSelector:{"& div":{borderBottom:0,marginBottom:0,"& div:nth-child(2)":{border:"1px solid #EAEAEA",paddingLeft:5,"& div":{border:0}}}}},p.bK),p.ID),p.DF),p.QV))}))(P((function(e){var n=e.classes,t=e.closeModalAndRefresh,r=e.selectedBucket,o=e.lifecycle,l=e.open,c=e.setModalErrorSnackMessage,u=(0,s.useState)(!0),m=(0,a.Z)(u,2),p=m[0],h=m[1],N=(0,s.useState)(!1),P=(0,a.Z)(N,2),E=P[0],I=P[1],F=(0,s.useState)(""),T=(0,a.Z)(F,2),L=T[0],R=T[1],M=(0,s.useState)(!1),w=(0,a.Z)(M,2),B=w[0],O=w[1],A=(0,s.useState)([]),D=(0,a.Z)(A,2),V=D[0],z=D[1],G=(0,s.useState)(""),K=(0,a.Z)(G,2),H=K[0],q=K[1],U=(0,s.useState)(""),W=(0,a.Z)(U,2),Y=W[0],Q=W[1],$=(0,s.useState)(""),J=(0,a.Z)($,2),X=J[0],ee=J[1],ne=(0,s.useState)(!1),te=(0,a.Z)(ne,2),ae=te[0],ie=te[1],se=(0,s.useState)("0"),re=(0,a.Z)(se,2),oe=re[0],le=re[1],ce=(0,s.useState)("0"),de=(0,a.Z)(ce,2),ue=de[0],me=de[1],xe=(0,s.useState)("expiry"),fe=(0,a.Z)(xe,2),pe=fe[0],he=fe[1],Ze=(0,s.useState)("0"),ve=(0,a.Z)(Ze,2),ge=ve[0],je=ve[1],ye=(0,s.useState)("0"),be=(0,a.Z)(ye,2),Se=be[0],Ce=be[1],_e=(0,s.useState)(!1),ke=(0,a.Z)(_e,2),Ne=ke[0],Pe=ke[1];(0,s.useEffect)((function(){p&&Z.Z.invoke("GET","/api/v1/admin/tiers").then((function(e){var n=d()(e,"items",[]);if(null!==n&&n.length>=1){var t=n.map((function(e){var n=e.type,t=d()(e,"".concat(n,".name"),"");return{label:t,value:t}}));z(t),t.length>0&&Q(t[0].value)}h(!1)})).catch((function(e){h(!1)}))}),[p]),(0,s.useEffect)((function(){var e=!0;"expiry"!==pe&&""===Y&&(e=!1),Pe(e)}),[pe,ge,Se,Y]),(0,s.useEffect)((function(){var e;"Enabled"===o.status&&O(!0);var n,t,a,i,s,r,l=!1;(o.transition&&(o.transition.days&&0!==o.transition.days&&(Ce(o.transition.days.toString()),he("transition"),l=!0),o.transition.date&&"0001-01-01T00:00:00Z"!==o.transition.date&&(he("transition"),l=!0)),o.expiration&&(o.expiration.days&&0!==o.expiration.days&&(je(o.expiration.days.toString()),he("expiry"),l=!1),o.expiration.date&&"0001-01-01T00:00:00Z"!==o.expiration.date&&(he("expiry"),l=!1)),l)?(Q((null===(n=o.transition)||void 0===n?void 0:n.storage_class)||""),me((null===(t=o.transition)||void 0===t||null===(a=t.noncurrent_transition_days)||void 0===a?void 0:a.toString())||"0"),ee((null===(i=o.transition)||void 0===i?void 0:i.noncurrent_storage_class)||"")):le((null===(s=o.expiration)||void 0===s||null===(r=s.noncurrent_expiration_days)||void 0===r?void 0:r.toString())||"0");if(ie(!(null===(e=o.expiration)||void 0===e||!e.delete_marker)),q(o.prefix||""),o.tags){var c=o.tags.reduce((function(e,n,t){return"".concat(e).concat(0!==t?"&":"").concat(n.key,"=").concat(n.value)}),"");R(c)}}),[o]);return(0,k.jsx)(j.Z,{onClose:function(){t(!1)},modalOpen:l,title:"Edit Lifecycle Configuration",titleIcon:(0,k.jsx)(f.QI,{}),children:(0,k.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){if(e.preventDefault(),!E&&(I(!0),null!==r&&null!==o)){var n={};if("expiry"===pe){var a={expiry_days:parseInt(ge)};n=(0,i.Z)((0,i.Z)({},a),{},{noncurrentversion_expiration_days:parseInt(oe)})}else{var s={transition_days:parseInt(Se)};n=(0,i.Z)((0,i.Z)({},s),{},{noncurrentversion_transition_days:parseInt(ue),noncurrentversion_transition_storage_class:X,storage_class:Y})}var l=(0,i.Z)({type:pe,disable:!B,prefix:H,tags:L,expired_object_delete_marker:ae},n);Z.Z.invoke("PUT","/api/v1/buckets/".concat(r,"/lifecycle/").concat(o.id),l).then((function(e){I(!1),t(!0)})).catch((function(e){I(!1),c(e)}))}}(e)},children:(0,k.jsxs)(x.ZP,{container:!0,children:[(0,k.jsxs)(x.ZP,{item:!0,xs:12,className:n.formScrollable,children:[(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(y.Z,{id:"id",name:"id",label:"Id",value:o.id,onChange:function(){},disabled:!0})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(b.Z,{label:"Rule State",indicatorLabels:["Enabled","Disabled"],checked:B,value:"user_enabled",id:"user-status",name:"user-status",onChange:function(e){O(e.target.checked)}})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"Lifecycle Configuration"}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(_.Z,{currentSelection:pe,id:"quota_type",name:"quota_type",label:"ILM Rule",selectorOptions:[{value:"expiry",label:"Expiry"},{value:"transition",label:"Transition"}],onChange:function(){},disableOptions:!0})}),"expiry"===pe?(0,k.jsxs)(s.Fragment,{children:[(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(y.Z,{type:"number",id:"expiry_days",name:"expiry_days",onChange:function(e){je(e.target.value)},label:"Expiry Days",value:ge,min:"0"})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(y.Z,{type:"number",id:"noncurrentversion_expiration_days",name:"noncurrentversion_expiration_days",onChange:function(e){le(e.target.value)},label:"Non-current Expiration Days",value:oe,min:"0"})})]}):(0,k.jsxs)(s.Fragment,{children:[(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(y.Z,{type:"number",id:"transition_days",name:"transition_days",onChange:function(e){Ce(e.target.value)},label:"Transition Days",value:Se,min:"0"})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(y.Z,{type:"number",id:"noncurrentversion_transition_days",name:"noncurrentversion_transition_days",onChange:function(e){me(e.target.value)},label:"Non-current Transition Days",value:ue,min:"0"})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(y.Z,{id:"noncurrentversion_t_SC",name:"noncurrentversion_t_SC",onChange:function(e){ee(e.target.value)},placeholder:"Set Non-current Version Transition Storage Class",label:"Non-current Version Transition Storage Class",value:X})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{label:"Storage Class",id:"storage_class",name:"storage_class",value:Y,onChange:function(e){Q(e.target.value)},options:V})})]})]})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"File Configuration"}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(y.Z,{id:"prefix",name:"prefix",onChange:function(e){q(e.target.value)},label:"Prefix",value:H})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(S.Z,{name:"tags",label:"Tags",elements:L,onChange:function(e){R(e)},keyPlaceholder:"Tag Key",valuePlaceholder:"Tag Value",withBorder:!0})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(b.Z,{value:"expired_delete_marker",id:"expired_delete_marker",name:"expired_delete_marker",checked:ae,onChange:function(e){ie(e.target.checked)},label:"Expired Object Delete Marker"})})]})})]}),(0,k.jsxs)(x.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,k.jsx)(v.Z,{type:"button",variant:"outlined",color:"primary",disabled:E,onClick:function(){t(!1)},children:"Cancel"}),(0,k.jsx)(v.Z,{type:"submit",variant:"contained",color:"primary",disabled:E||!Ne,children:"Save"})]}),E&&(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(g.Z,{})})]})})})}))),I=t(56578),F=(0,r.$j)(null,{setModalErrorSnackMessage:h.zb}),T=(0,l.Z)((function(e){return(0,o.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({dateSelector:{"& div":{borderBottom:0,marginBottom:0,"& div:nth-child(2)":{border:"1px solid #EAEAEA",paddingLeft:5,"& div":{border:0}}}}},p.bK),p.ID),p.DF),p.QV))}))(F((function(e){var n=e.open,t=e.closeModalAndRefresh,r=e.classes,o=e.bucketName,l=e.setModalErrorSnackMessage,c=(0,s.useState)(!0),u=(0,a.Z)(c,2),m=u[0],p=u[1],h=(0,s.useState)([]),b=(0,a.Z)(h,2),N=b[0],P=b[1],E=(0,s.useState)(!1),F=(0,a.Z)(E,2),T=F[0],L=F[1],R=(0,s.useState)(""),M=(0,a.Z)(R,2),w=M[0],B=M[1],O=(0,s.useState)(""),A=(0,a.Z)(O,2),D=A[0],V=A[1],z=(0,s.useState)(""),G=(0,a.Z)(z,2),K=G[0],H=G[1],q=(0,s.useState)(""),U=(0,a.Z)(q,2),W=U[0],Y=U[1],Q=(0,s.useState)(""),$=(0,a.Z)(Q,2),J=$[0],X=$[1],ee=(0,s.useState)("expiry"),ne=(0,a.Z)(ee,2),te=ne[0],ae=ne[1],ie=(0,s.useState)(""),se=(0,a.Z)(ie,2),re=se[0],oe=se[1],le=(0,s.useState)(""),ce=(0,a.Z)(le,2),de=ce[0],ue=ce[1],me=(0,s.useState)(!1),xe=(0,a.Z)(me,2),fe=xe[0],pe=xe[1];(0,s.useEffect)((function(){m&&Z.Z.invoke("GET","/api/v1/admin/tiers").then((function(e){var n=d()(e,"items",[]);if(null!==n&&n.length>=1){var t=n.map((function(e){var n=e.type,t=d()(e,"".concat(n,".name"),"");return{label:t,value:t}}));P(t),t.length>0&&H(t[0].value)}p(!1)})).catch((function(e){p(!1)}))}),[m]),(0,s.useEffect)((function(){var e=!0;"expiry"!==te&&""===K&&(e=!1),pe(e)}),[te,re,de,K]);return(0,k.jsxs)(j.Z,{modalOpen:n,onClose:function(){t(!1)},title:"Add Lifecycle Rule",titleIcon:(0,k.jsx)(f.QI,{}),children:[m&&(0,k.jsx)(x.ZP,{container:!0,className:r.loadingBox,children:(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(g.Z,{})})}),!m&&(0,k.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),L(!0),function(){var e={},n=!1;if("expiry"===te){var a={expiry_days:parseInt(re)};parseInt(re)>0&&parseInt(W)>0&&(n=!0),e=(0,i.Z)((0,i.Z)({},a),{},{noncurrentversion_expiration_days:parseInt(W)})}else{var s={transition_days:parseInt(de)};parseInt(de)>0&&parseInt(J)>0&&(n=!0),e=(0,i.Z)((0,i.Z)({},s),{},{noncurrentversion_transition_days:parseInt(J),storage_class:K})}var r=(0,i.Z)({type:te,prefix:w,tags:D,expired_object_delete_marker:n},e);Z.Z.invoke("POST","/api/v1/buckets/".concat(o,"/lifecycle"),r).then((function(){L(!1),t(!0)})).catch((function(e){L(!1),l(e)}))}()},children:(0,k.jsxs)(x.ZP,{container:!0,children:[(0,k.jsxs)(x.ZP,{item:!0,xs:12,className:r.formScrollable,children:[(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsxs)(x.ZP,{container:!0,children:[(0,k.jsx)(x.ZP,{item:!0,xs:3,textAlign:"left",children:(0,k.jsx)(_.Z,{currentSelection:te,id:"quota_type",name:"quota_type",label:"",onChange:function(e){ae(e.target.value)},selectorOptions:[{value:"expiry",label:"Expiry"},{value:"transition",label:"Transition"}]})}),(0,k.jsx)(x.ZP,{item:!0,xs:9}),"expiry"===te?(0,k.jsxs)(s.Fragment,{children:[(0,k.jsx)(x.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,k.jsx)(y.Z,{id:"expiry_days",name:"expiry_days",onChange:function(e){e.target.validity.valid&&oe(e.target.value)},pattern:"[0-9]*",label:"Delete Latest Version After",value:re,overlayObject:(0,k.jsx)(I.Z,{id:"expire-current-unit",unitSelected:"days",unitsList:[{label:"Days",value:"days"}],disabled:!0})})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,k.jsx)(y.Z,{id:"noncurrentversion_expiration_days",name:"noncurrentversion_expiration_days",onChange:function(e){e.target.validity.valid&&Y(e.target.value)},pattern:"[0-9]*",label:"Delete Older Versions After",value:W,min:"0",overlayObject:(0,k.jsx)(I.Z,{id:"expire-noncurrent-unit",unitSelected:"days",unitsList:[{label:"Days",value:"days"}],disabled:!0})})})]}):(0,k.jsxs)(s.Fragment,{children:[(0,k.jsx)(x.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,k.jsx)(C.Z,{label:"Tier",id:"storage_class",name:"storage_class",value:K,onChange:function(e){H(e.target.value)},options:N})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,k.jsx)(y.Z,{id:"transition_days",name:"transition_days",onChange:function(e){e.target.validity.valid&&ue(e.target.value)},pattern:"[0-9]*",label:"Transition Latest Version",value:de,min:"0",overlayObject:(0,k.jsx)(I.Z,{id:"transition-current-unit",unitSelected:"days",unitsList:[{label:"Days",value:"days"}],disabled:!0})})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,k.jsx)(y.Z,{type:"number",id:"noncurrentversion_transition_days",name:"noncurrentversion_transition_days",onChange:function(e){e.target.validity.valid&&X(e.target.value)},label:"Transition Older Versions",value:J,pattern:"[0-9]*",overlayObject:(0,k.jsx)(I.Z,{id:"transition-noncurrent-unit",unitSelected:"days",unitsList:[{label:"Days",value:"days"}],disabled:!0})})})]})]})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,k.jsxs)("fieldset",{className:r.fieldGroup,children:[(0,k.jsx)("legend",{className:r.descriptionText,children:"Filters"}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(y.Z,{id:"prefix",name:"prefix",onChange:function(e){B(e.target.value)},label:"Prefix",value:w})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(S.Z,{name:"tags",label:"Tags",elements:"",onChange:function(e){V(e)},keyPlaceholder:"Tag Key",valuePlaceholder:"Tag Value",withBorder:!0})})]})})]}),(0,k.jsxs)(x.ZP,{item:!0,xs:12,className:r.modalButtonBar,children:[(0,k.jsx)(v.Z,{type:"button",variant:"outlined",color:"primary",disabled:T,onClick:function(){t(!1)},children:"Cancel"}),(0,k.jsx)(v.Z,{type:"submit",variant:"contained",color:"primary",disabled:T||!fe,children:"Save"})]}),T&&(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(g.Z,{})})]})})]})}))),L=t(92983),R=t(23804),M=t(60680),w=t(38442),B=t(56087),O=t(40603),A=t(51691),D=t(23508),V=(0,r.$j)(null,{setErrorSnackMessage:h.Ih}),z=(0,l.Z)((function(e){return(0,o.Z)((0,i.Z)({},p.oO))}))(V((function(e){var n=e.onCloseAndRefresh,t=e.deleteOpen,i=e.bucket,r=e.id,o=e.setErrorSnackMessage,l=(0,s.useState)(!1),c=(0,a.Z)(l,2),d=c[0],u=c[1];(0,s.useEffect)((function(){d&&Z.Z.invoke("DELETE","/api/v1/buckets/".concat(i,"/lifecycle/").concat(r)).then((function(e){u(!1),n(!0)})).catch((function(e){u(!1),o(e)}))}),[d,i,r,n,o]);return(0,k.jsx)(D.Z,{title:"Delete Lifecycle Rule",confirmText:"Delete",isOpen:t,isLoading:d,onConfirm:function(){u(!0)},titleIcon:(0,k.jsx)(f.Nv,{}),onClose:function(){return n(!1)},confirmationContent:(0,k.jsxs)(A.Z,{children:["Are you sure you want to delete the ",(0,k.jsx)("strong",{children:r})," rule?"]})})}))),G=(0,r.$j)((function(e){return{session:e.console.session,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:h.Ih}),K=(0,l.Z)((function(e){return(0,o.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},p.qg),p.OR),{},{twHeight:{minHeight:400}}))}))(G((function(e){var n=e.classes,t=e.match,i=(e.setErrorSnackMessage,e.loadingBucket),r=(e.bucketInfo,(0,s.useState)(!0)),o=(0,a.Z)(r,2),l=o[0],c=o[1],u=(0,s.useState)([]),p=(0,a.Z)(u,2),h=p[0],v=p[1],g=(0,s.useState)(!1),j=(0,a.Z)(g,2),y=j[0],b=j[1],S=(0,s.useState)(!1),C=(0,a.Z)(S,2),_=C[0],N=C[1],P=(0,s.useState)(null),I=(0,a.Z)(P,2),F=I[0],A=I[1],D=(0,s.useState)(!1),V=(0,a.Z)(D,2),G=V[0],K=V[1],H=(0,s.useState)(null),q=(0,a.Z)(H,2),U=q[0],W=q[1],Y=t.params.bucketName,Q=(0,w.F)(Y,[B.Ft.S3_GET_LIFECYCLE_CONFIGURATION]);(0,s.useEffect)((function(){i&&c(!0)}),[i,c]),(0,s.useEffect)((function(){l&&(Q?Z.Z.invoke("GET","/api/v1/buckets/".concat(Y,"/lifecycle")).then((function(e){var n=d()(e,"lifecycle",[]);v(n||[]),c(!1)})).catch((function(e){console.error(e),v([]),c(!1)})):c(!1))}),[l,c,Y,Q]);var $=[{label:"ID",elementKey:"id"},{label:"Prefix",elementKey:"prefix"},{label:"Status",elementKey:"status"},{label:"Expiration",elementKey:"expiration",renderFunction:function(e){return e.days?"".concat(e.days," day").concat(e.days>1?"s":""):"0001-01-01T00:00:00Z"===e.date?"":(0,k.jsx)(m(),{children:e.date})}},{label:"Transition",elementKey:"transition",renderFunction:function(e){return e.days?"".concat(e.days," day").concat(e.days>1?"s":""):"0001-01-01T00:00:00Z"===e.date?"":(0,k.jsx)(m(),{children:e.date})}},{label:"Storage Class",elementKey:"storage_class",renderFunction:function(e){return d()(e,"transition.storage_class","")},renderFullObject:!0}],J=[{type:"view",onClick:function(e){A(e),N(!0)}},{type:"delete",onClick:function(e){W(e),K(!0)},sendOnlyId:!0}];return(0,k.jsxs)(s.Fragment,{children:[_&&F&&(0,k.jsx)(E,{open:_,closeModalAndRefresh:function(e){N(!1),A(null),e&&c(!0)},selectedBucket:Y,lifecycle:F}),y&&(0,k.jsx)(T,{open:y,bucketName:Y,closeModalAndRefresh:function(e){b(!1),e&&c(!0)}}),G&&U&&(0,k.jsx)(z,{id:U,bucket:Y,deleteOpen:G,onCloseAndRefresh:function(e){K(!1),W(null),e&&c(!0)}}),(0,k.jsxs)(x.ZP,{container:!0,children:[(0,k.jsxs)(x.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,k.jsx)(M.Z,{children:"Lifecycle Rules"}),(0,k.jsx)(w.s,{scopes:[B.Ft.S3_PUT_LIFECYCLE_CONFIGURATION,B.Ft.ADMIN_LIST_TIERS],resource:Y,matchAll:!0,errorProps:{disabled:!0},children:(0,k.jsx)(O.Z,{tooltip:"Add Lifecycle Rule",onClick:function(){b(!0)},text:"Add Lifecycle Rule",icon:(0,k.jsx)(f.dt,{}),color:"primary",variant:"contained"})})]}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(w.s,{scopes:[B.Ft.S3_GET_LIFECYCLE_CONFIGURATION],resource:Y,errorProps:{disabled:!0},children:(0,k.jsx)(L.Z,{itemActions:J,columns:$,isLoading:l,records:h,entityName:"Lifecycle",customEmptyMessage:"There are no Lifecycle rules yet",idField:"id",customPaperHeight:n.twHeight})})}),!l&&(0,k.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,k.jsx)("br",{}),(0,k.jsx)(R.Z,{title:"Lifecycle Rules",iconComponent:(0,k.jsx)(f.y2,{}),help:(0,k.jsxs)(s.Fragment,{children:["MinIO Object Lifecycle Management allows creating rules for time or date based automatic transition or expiry of objects. For object transition, MinIO automatically moves the object to a configured remote storage tier.",(0,k.jsx)("br",{}),(0,k.jsx)("br",{}),"You can learn more at our"," ",(0,k.jsx)("a",{href:"https://docs.min.io/minio/baremetal/lifecycle-management/lifecycle-management-overview.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})]})]})]})})))},17420:function(e,n,t){"use strict";var a=t(42982),i=t(70885),s=t(1413),r=t(72791),o=t(26181),l=t.n(o),c=t(48573),d=t.n(c),u=t(11135),m=t(25787),x=t(61889),f=t(77961),p=t(30829),h=t(20068),Z=t(23814),v=t(21435),g=t(47919),j=t(80184);n.Z=(0,m.Z)((function(e){return(0,u.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},Z.YI),Z.Hr),{},{inputWithBorder:{border:"1px solid #EAEAEA",padding:15,height:150,overflowY:"auto",position:"relative",marginTop:15},lineInputBoxes:{display:"flex",marginBottom:10},queryDiv:{alignSelf:"center",margin:"0 4px",fontWeight:600}}))}))((function(e){var n=e.elements,t=e.name,s=e.label,o=e.tooltip,c=void 0===o?"":o,u=e.keyPlaceholder,m=void 0===u?"":u,Z=e.valuePlaceholder,y=void 0===Z?"":Z,b=e.onChange,S=e.withBorder,C=void 0!==S&&S,_=e.classes,k=(0,r.useState)([""]),N=(0,i.Z)(k,2),P=N[0],E=N[1],I=(0,r.useState)([""]),F=(0,i.Z)(I,2),T=F[0],L=F[1],R=(0,r.createRef)();(0,r.useEffect)((function(){if(1===P.length&&""===P[0]&&1===T.length&&""===T[0]&&n&&""!==n){var e=n.split("&"),t=[],a=[];e.forEach((function(e){var n=e.split("=");2===n.length&&(t.push(n[0]),a.push(n[1]))})),t.push(""),a.push(""),E(t),L(a)}}),[P,T,n]),(0,r.useEffect)((function(){var e=R.current;e&&P.length>1&&e.scrollIntoView(!1)}),[P]);var M=(0,r.useRef)(!0);(0,r.useLayoutEffect)((function(){M.current?M.current=!1:O()}),[P,T]);var w=function(e){e.persist();var n=(0,a.Z)(P);n[l()(e.target,"dataset.index",0)]=e.target.value,E(n)},B=function(e){e.persist();var n=(0,a.Z)(T);n[l()(e.target,"dataset.index",0)]=e.target.value,L(n)},O=d()((function(){var e="";P.forEach((function(n,t){if(P[t]&&T[t]){var a="".concat(n,"=").concat(T[t]);0!==t&&(a="&".concat(a)),e="".concat(e).concat(a)}})),b(e)}),500),A=T.map((function(e,n){return(0,j.jsxs)(x.ZP,{item:!0,xs:12,className:_.lineInputBoxes,children:[(0,j.jsx)(v.Z,{id:"".concat(t,"-key-").concat(n.toString()),label:"",name:"".concat(t,"-").concat(n.toString()),value:P[n],onChange:w,index:n,placeholder:m}),(0,j.jsx)("span",{className:_.queryDiv,children:":"}),(0,j.jsx)(v.Z,{id:"".concat(t,"-value-").concat(n.toString()),label:"",name:"".concat(t,"-").concat(n.toString()),value:T[n],onChange:B,index:n,placeholder:y,overlayIcon:n===T.length-1?(0,j.jsx)(g.Z,{}):null,overlayAction:function(){!function(){if(""!==P[P.length-1].trim()&&""!==T[T.length-1].trim()){var e=(0,a.Z)(P),n=(0,a.Z)(T);e.push(""),n.push(""),E(e),L(n)}}()}})]},"query-pair-".concat(t,"-").concat(n.toString()))}));return(0,j.jsx)(r.Fragment,{children:(0,j.jsxs)(x.ZP,{item:!0,xs:12,className:_.fieldContainer,children:[(0,j.jsxs)(p.Z,{className:_.inputLabel,children:[(0,j.jsx)("span",{children:s}),""!==c&&(0,j.jsx)("div",{className:_.tooltipContainer,children:(0,j.jsx)(h.Z,{title:c,placement:"top-start",children:(0,j.jsx)(f.Z,{className:_.tooltip})})})]}),(0,j.jsxs)(x.ZP,{item:!0,xs:12,className:"".concat(C?_.inputWithBorder:""),children:[A,(0,j.jsx)("div",{ref:R})]})]})})}))},83679:function(e,n,t){"use strict";var a=t(4942),i=t(1413),s=(t(72791),t(28182)),r=t(61889),o=t(10765),l=t(85523),c=t(61419),d=t(30829),u=t(20068),m=t(11135),x=t(25787),f=t(72455),p=t(23814),h=t(84570),Z=t(80184),v=(0,f.Z)((0,i.Z)({root:{"&:hover":{backgroundColor:"transparent"}}},p.FU)),g=function(e){var n=v();return(0,Z.jsx)(c.Z,(0,i.Z)({className:n.root,disableRipple:!0,color:"default",checkedIcon:(0,Z.jsx)("span",{className:n.radioSelectedIcon}),icon:(0,Z.jsx)("span",{className:n.radioUnselectedIcon})},e))};n.Z=(0,x.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},p.YI),p.Hr),{},{optionLabel:{"&.Mui-disabled":{"& .MuiFormControlLabel-label":{color:"#9c9c9c"}},"&:last-child":{marginRight:0},"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E"}},checkedOption:{"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E",fontWeight:700}}}))}))((function(e){var n=e.selectorOptions,t=void 0===n?[]:n,i=e.currentSelection,c=e.label,m=e.id,x=e.name,f=e.onChange,p=e.tooltip,v=void 0===p?"":p,j=e.disableOptions,y=void 0!==j&&j,b=e.classes,S=e.displayInColumn,C=void 0!==S&&S;return(0,Z.jsxs)(r.ZP,{container:!0,alignItems:"center",children:[(0,Z.jsx)(r.ZP,{item:!0,xs:!0,children:(0,Z.jsxs)(d.Z,{htmlFor:m,className:b.inputLabel,children:[(0,Z.jsx)("span",{children:c}),""!==v&&(0,Z.jsx)("div",{className:b.tooltipContainer,children:(0,Z.jsx)(u.Z,{title:v,placement:"top-start",children:(0,Z.jsx)("div",{children:(0,Z.jsx)(h.Z,{})})})})]})}),(0,Z.jsx)(r.ZP,{item:!0,xs:!0,className:b.radioOptionsLayout,children:(0,Z.jsx)(o.Z,{"aria-label":m,id:m,name:x,value:i,onChange:f,row:!C,style:{display:"block",textAlign:"right"},children:t.map((function(e){return(0,Z.jsx)(l.Z,{value:e.value,control:(0,Z.jsx)(g,{}),label:e.label,disabled:y,className:(0,s.Z)(b.optionLabel,(0,a.Z)({},b.checkedOption,e.value===i))},"rd-".concat(x,"-").concat(e.value))}))})})]})}))},23508:function(e,n,t){"use strict";var a=t(1413),i=t(72791),s=t(5574),r=t(65661),o=t(39157),l=t(97123),c=t(36151),d=t(59860),u=t(13400),m=t(29823),x=t(11135),f=t(25787),p=t(23814),h=t(80184);n.Z=(0,f.Z)((function(e){return(0,x.Z)((0,a.Z)({},p.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,x=e.onClose,f=e.onCancel,p=e.onConfirm,Z=e.classes,v=void 0===Z?{}:Z,g=e.title,j=void 0===g?"":g,y=e.isLoading,b=e.confirmationContent,S=e.cancelText,C=void 0===S?"Cancel":S,_=e.confirmText,k=void 0===_?"Confirm":_,N=e.confirmButtonProps,P=void 0===N?{}:N,E=e.cancelButtonProps,I=void 0===E?{}:E,F=e.titleIcon,T=void 0===F?null:F;return(0,h.jsxs)(s.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&x()},className:v.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(r.Z,{className:v.title,children:[(0,h.jsxs)("div",{className:v.titleText,children:[T," ",j]}),(0,h.jsx)("div",{className:v.closeContainer,children:(0,h.jsx)(u.Z,{"aria-label":"close",className:v.closeButton,onClick:x,disableRipple:!0,size:"small",children:(0,h.jsx)(m.Z,{})})})]}),(0,h.jsx)(o.Z,{className:v.content,children:b}),(0,h.jsxs)(l.Z,{className:v.actions,children:[(0,h.jsx)(c.Z,(0,a.Z)((0,a.Z)({className:v.cancelButton,onClick:f||x,disabled:y,type:"button"},I),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:C})),(0,h.jsx)(d.Z,(0,a.Z)((0,a.Z)({className:v.confirmButton,type:"button",onClick:p,loading:y,disabled:y,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(i.Fragment,{}),autoFocus:!0,id:"confirm-ok"},P),{},{children:k}))]})]})}))},56028:function(e,n,t){"use strict";var a=t(70885),i=t(1413),s=t(72791),r=t(60364),o=t(13400),l=t(55646),c=t(5574),d=t(65661),u=t(39157),m=t(11135),x=t(25787),f=t(23814),p=t(42649),h=t(29823),Z=t(28057),v=t(80184),g=(0,r.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:p.MK});n.Z=(0,x.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(g((function(e){var n=e.onClose,t=e.modalOpen,r=e.title,m=e.children,x=e.classes,f=e.wideLimit,p=void 0===f||f,g=e.modalSnackMessage,j=e.noContentPadding,y=e.setModalSnackMessage,b=e.titleIcon,S=void 0===b?null:b,C=(0,s.useState)(!1),_=(0,a.Z)(C,2),k=_[0],N=_[1];(0,s.useEffect)((function(){y("")}),[y]),(0,s.useEffect)((function(){if(g){if(""===g.message)return void N(!1);"error"!==g.type&&N(!0)}}),[g]);var P=p?{classes:{paper:x.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return g&&(E=g.detailedErrorMsg,(""===g.detailedErrorMsg||g.detailedErrorMsg.length<5)&&(E=g.message)),(0,v.jsxs)(c.Z,(0,i.Z)((0,i.Z)({open:t,classes:x},P),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:x.root,children:[(0,v.jsxs)(d.Z,{className:x.title,children:[(0,v.jsxs)("div",{className:x.titleText,children:[S," ",r]}),(0,v.jsx)("div",{className:x.closeContainer,children:(0,v.jsx)(o.Z,{"aria-label":"close",id:"close",className:x.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,v.jsx)(h.Z,{})})})]}),(0,v.jsx)(Z.Z,{isModal:!0}),(0,v.jsx)(l.Z,{open:k,className:x.snackBarModal,onClose:function(){N(!1),y("")},message:E,ContentProps:{className:"".concat(x.snackBar," ").concat(g&&"error"===g.type?x.errorSnackBar:"")},autoHideDuration:g&&"error"===g.type?1e4:5e3}),(0,v.jsx)(u.Z,{className:j?"":x.content,children:m})]}))})))},60680:function(e,n,t){"use strict";t(72791);var a=t(11135),i=t(25787),s=t(80184);n.Z=(0,i.Z)((function(e){return(0,a.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var n=e.classes,t=e.children;return(0,s.jsx)("h1",{className:n.root,children:t})}))},26759:function(e,n,t){"use strict";var a=t(95318);n.Z=void 0;var i=a(t(45649)),s=t(80184),r=(0,i.default)((0,s.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");n.Z=r},70366:function(e,n,t){"use strict";var a=t(95318);n.Z=void 0;var i=a(t(45649)),s=t(80184),r=(0,i.default)((0,s.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");n.Z=r},97911:function(e,n,t){"use strict";var a=t(95318);n.Z=void 0;var i=a(t(45649)),s=t(80184),r=(0,i.default)((0,s.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");n.Z=r},26769:function(e,n,t){var a=t(39066),i=t(93629),s=t(43141);e.exports=function(e){return"string"==typeof e||!i(e)&&s(e)&&"[object String]"==a(e)}}}]); -//# sourceMappingURL=2114.ac47a792.chunk.js.map \ No newline at end of file +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2114],{23804:function(e,n,t){"use strict";t(72791);var a=t(11135),i=t(25787),s=t(61889),r=t(80184);n.Z=(0,i.Z)((function(e){return(0,a.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,a=e.title,i=e.help;return(0,r.jsx)("div",{className:n.root,children:(0,r.jsxs)(s.ZP,{container:!0,children:[(0,r.jsxs)(s.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,a]}),(0,r.jsx)(s.ZP,{item:!0,xs:12,className:n.helpText,children:i})]})})}))},51:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return K}});var a=t(70885),i=t(1413),s=t(72791),r=t(60364),o=t(11135),l=t(25787),c=t(26181),d=t.n(c),u=t(46431),m=t.n(u),x=t(61889),f=t(13048),p=t(23814),h=t(42649),Z=t(81207),v=t(36151),g=t(40986),j=t(56028),y=t(21435),b=t(37516),S=t(17420),C=t(90673),_=t(83679),k=t(80184),N={setModalErrorSnackMessage:h.zb},P=(0,r.$j)(null,N),E=(0,l.Z)((function(e){return(0,o.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({dateSelector:{"& div":{borderBottom:0,marginBottom:0,"& div:nth-child(2)":{border:"1px solid #EAEAEA",paddingLeft:5,"& div":{border:0}}}}},p.bK),p.ID),p.DF),p.QV))}))(P((function(e){var n=e.classes,t=e.closeModalAndRefresh,r=e.selectedBucket,o=e.lifecycle,l=e.open,c=e.setModalErrorSnackMessage,u=(0,s.useState)(!0),m=(0,a.Z)(u,2),p=m[0],h=m[1],N=(0,s.useState)(!1),P=(0,a.Z)(N,2),E=P[0],I=P[1],F=(0,s.useState)(""),T=(0,a.Z)(F,2),L=T[0],R=T[1],M=(0,s.useState)(!1),w=(0,a.Z)(M,2),B=w[0],O=w[1],A=(0,s.useState)([]),D=(0,a.Z)(A,2),V=D[0],z=D[1],G=(0,s.useState)(""),K=(0,a.Z)(G,2),H=K[0],q=K[1],U=(0,s.useState)(""),W=(0,a.Z)(U,2),Y=W[0],Q=W[1],$=(0,s.useState)(""),J=(0,a.Z)($,2),X=J[0],ee=J[1],ne=(0,s.useState)(!1),te=(0,a.Z)(ne,2),ae=te[0],ie=te[1],se=(0,s.useState)("0"),re=(0,a.Z)(se,2),oe=re[0],le=re[1],ce=(0,s.useState)("0"),de=(0,a.Z)(ce,2),ue=de[0],me=de[1],xe=(0,s.useState)("expiry"),fe=(0,a.Z)(xe,2),pe=fe[0],he=fe[1],Ze=(0,s.useState)("0"),ve=(0,a.Z)(Ze,2),ge=ve[0],je=ve[1],ye=(0,s.useState)("0"),be=(0,a.Z)(ye,2),Se=be[0],Ce=be[1],_e=(0,s.useState)(!1),ke=(0,a.Z)(_e,2),Ne=ke[0],Pe=ke[1];(0,s.useEffect)((function(){p&&Z.Z.invoke("GET","/api/v1/admin/tiers").then((function(e){var n=d()(e,"items",[]);if(null!==n&&n.length>=1){var t=n.map((function(e){var n=e.type,t=d()(e,"".concat(n,".name"),"");return{label:t,value:t}}));z(t),t.length>0&&Q(t[0].value)}h(!1)})).catch((function(e){h(!1)}))}),[p]),(0,s.useEffect)((function(){var e=!0;"expiry"!==pe&&""===Y&&(e=!1),Pe(e)}),[pe,ge,Se,Y]),(0,s.useEffect)((function(){var e;"Enabled"===o.status&&O(!0);var n,t,a,i,s,r,l=!1;(o.transition&&(o.transition.days&&0!==o.transition.days&&(Ce(o.transition.days.toString()),he("transition"),l=!0),o.transition.date&&"0001-01-01T00:00:00Z"!==o.transition.date&&(he("transition"),l=!0)),o.expiration&&(o.expiration.days&&0!==o.expiration.days&&(je(o.expiration.days.toString()),he("expiry"),l=!1),o.expiration.date&&"0001-01-01T00:00:00Z"!==o.expiration.date&&(he("expiry"),l=!1)),l)?(Q((null===(n=o.transition)||void 0===n?void 0:n.storage_class)||""),me((null===(t=o.transition)||void 0===t||null===(a=t.noncurrent_transition_days)||void 0===a?void 0:a.toString())||"0"),ee((null===(i=o.transition)||void 0===i?void 0:i.noncurrent_storage_class)||"")):le((null===(s=o.expiration)||void 0===s||null===(r=s.noncurrent_expiration_days)||void 0===r?void 0:r.toString())||"0");if(ie(!(null===(e=o.expiration)||void 0===e||!e.delete_marker)),q(o.prefix||""),o.tags){var c=o.tags.reduce((function(e,n,t){return"".concat(e).concat(0!==t?"&":"").concat(n.key,"=").concat(n.value)}),"");R(c)}}),[o]);return(0,k.jsx)(j.Z,{onClose:function(){t(!1)},modalOpen:l,title:"Edit Lifecycle Configuration",titleIcon:(0,k.jsx)(f.QI,{}),children:(0,k.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){if(e.preventDefault(),!E&&(I(!0),null!==r&&null!==o)){var n={};if("expiry"===pe){var a={expiry_days:parseInt(ge)};n=(0,i.Z)((0,i.Z)({},a),{},{noncurrentversion_expiration_days:parseInt(oe)})}else{var s={transition_days:parseInt(Se)};n=(0,i.Z)((0,i.Z)({},s),{},{noncurrentversion_transition_days:parseInt(ue),noncurrentversion_transition_storage_class:X,storage_class:Y})}var l=(0,i.Z)({type:pe,disable:!B,prefix:H,tags:L,expired_object_delete_marker:ae},n);Z.Z.invoke("PUT","/api/v1/buckets/".concat(r,"/lifecycle/").concat(o.id),l).then((function(e){I(!1),t(!0)})).catch((function(e){I(!1),c(e)}))}}(e)},children:(0,k.jsxs)(x.ZP,{container:!0,children:[(0,k.jsxs)(x.ZP,{item:!0,xs:12,className:n.formScrollable,children:[(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(y.Z,{id:"id",name:"id",label:"Id",value:o.id,onChange:function(){},disabled:!0})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(b.Z,{label:"Rule State",indicatorLabels:["Enabled","Disabled"],checked:B,value:"user_enabled",id:"user-status",name:"user-status",onChange:function(e){O(e.target.checked)}})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"Lifecycle Configuration"}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(_.Z,{currentSelection:pe,id:"quota_type",name:"quota_type",label:"ILM Rule",selectorOptions:[{value:"expiry",label:"Expiry"},{value:"transition",label:"Transition"}],onChange:function(){},disableOptions:!0})}),"expiry"===pe?(0,k.jsxs)(s.Fragment,{children:[(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(y.Z,{type:"number",id:"expiry_days",name:"expiry_days",onChange:function(e){je(e.target.value)},label:"Expiry Days",value:ge,min:"0"})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(y.Z,{type:"number",id:"noncurrentversion_expiration_days",name:"noncurrentversion_expiration_days",onChange:function(e){le(e.target.value)},label:"Non-current Expiration Days",value:oe,min:"0"})})]}):(0,k.jsxs)(s.Fragment,{children:[(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(y.Z,{type:"number",id:"transition_days",name:"transition_days",onChange:function(e){Ce(e.target.value)},label:"Transition Days",value:Se,min:"0"})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(y.Z,{type:"number",id:"noncurrentversion_transition_days",name:"noncurrentversion_transition_days",onChange:function(e){me(e.target.value)},label:"Non-current Transition Days",value:ue,min:"0"})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(y.Z,{id:"noncurrentversion_t_SC",name:"noncurrentversion_t_SC",onChange:function(e){ee(e.target.value)},placeholder:"Set Non-current Version Transition Storage Class",label:"Non-current Version Transition Storage Class",value:X})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsx)(C.Z,{label:"Storage Class",id:"storage_class",name:"storage_class",value:Y,onChange:function(e){Q(e.target.value)},options:V})})]})]})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,k.jsxs)("fieldset",{className:n.fieldGroup,children:[(0,k.jsx)("legend",{className:n.descriptionText,children:"File Configuration"}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(y.Z,{id:"prefix",name:"prefix",onChange:function(e){q(e.target.value)},label:"Prefix",value:H})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(S.Z,{name:"tags",label:"Tags",elements:L,onChange:function(e){R(e)},keyPlaceholder:"Tag Key",valuePlaceholder:"Tag Value",withBorder:!0})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(b.Z,{value:"expired_delete_marker",id:"expired_delete_marker",name:"expired_delete_marker",checked:ae,onChange:function(e){ie(e.target.checked)},label:"Expired Object Delete Marker"})})]})})]}),(0,k.jsxs)(x.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,k.jsx)(v.Z,{type:"button",variant:"outlined",color:"primary",disabled:E,onClick:function(){t(!1)},children:"Cancel"}),(0,k.jsx)(v.Z,{type:"submit",variant:"contained",color:"primary",disabled:E||!Ne,children:"Save"})]}),E&&(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(g.Z,{})})]})})})}))),I=t(56578),F=(0,r.$j)(null,{setModalErrorSnackMessage:h.zb}),T=(0,l.Z)((function(e){return(0,o.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({dateSelector:{"& div":{borderBottom:0,marginBottom:0,"& div:nth-child(2)":{border:"1px solid #EAEAEA",paddingLeft:5,"& div":{border:0}}}}},p.bK),p.ID),p.DF),p.QV))}))(F((function(e){var n=e.open,t=e.closeModalAndRefresh,r=e.classes,o=e.bucketName,l=e.setModalErrorSnackMessage,c=(0,s.useState)(!0),u=(0,a.Z)(c,2),m=u[0],p=u[1],h=(0,s.useState)([]),b=(0,a.Z)(h,2),N=b[0],P=b[1],E=(0,s.useState)(!1),F=(0,a.Z)(E,2),T=F[0],L=F[1],R=(0,s.useState)(""),M=(0,a.Z)(R,2),w=M[0],B=M[1],O=(0,s.useState)(""),A=(0,a.Z)(O,2),D=A[0],V=A[1],z=(0,s.useState)(""),G=(0,a.Z)(z,2),K=G[0],H=G[1],q=(0,s.useState)(""),U=(0,a.Z)(q,2),W=U[0],Y=U[1],Q=(0,s.useState)(""),$=(0,a.Z)(Q,2),J=$[0],X=$[1],ee=(0,s.useState)("expiry"),ne=(0,a.Z)(ee,2),te=ne[0],ae=ne[1],ie=(0,s.useState)(""),se=(0,a.Z)(ie,2),re=se[0],oe=se[1],le=(0,s.useState)(""),ce=(0,a.Z)(le,2),de=ce[0],ue=ce[1],me=(0,s.useState)(!1),xe=(0,a.Z)(me,2),fe=xe[0],pe=xe[1];(0,s.useEffect)((function(){m&&Z.Z.invoke("GET","/api/v1/admin/tiers").then((function(e){var n=d()(e,"items",[]);if(null!==n&&n.length>=1){var t=n.map((function(e){var n=e.type,t=d()(e,"".concat(n,".name"),"");return{label:t,value:t}}));P(t),t.length>0&&H(t[0].value)}p(!1)})).catch((function(e){p(!1)}))}),[m]),(0,s.useEffect)((function(){var e=!0;"expiry"!==te&&""===K&&(e=!1),pe(e)}),[te,re,de,K]);return(0,k.jsxs)(j.Z,{modalOpen:n,onClose:function(){t(!1)},title:"Add Lifecycle Rule",titleIcon:(0,k.jsx)(f.QI,{}),children:[m&&(0,k.jsx)(x.ZP,{container:!0,className:r.loadingBox,children:(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(g.Z,{})})}),!m&&(0,k.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),L(!0),function(){var e={},n=!1;if("expiry"===te){var a={expiry_days:parseInt(re)};parseInt(re)>0&&parseInt(W)>0&&(n=!0),e=(0,i.Z)((0,i.Z)({},a),{},{noncurrentversion_expiration_days:parseInt(W)})}else{var s={transition_days:parseInt(de)};parseInt(de)>0&&parseInt(J)>0&&(n=!0),e=(0,i.Z)((0,i.Z)({},s),{},{noncurrentversion_transition_days:parseInt(J),storage_class:K})}var r=(0,i.Z)({type:te,prefix:w,tags:D,expired_object_delete_marker:n},e);Z.Z.invoke("POST","/api/v1/buckets/".concat(o,"/lifecycle"),r).then((function(){L(!1),t(!0)})).catch((function(e){L(!1),l(e)}))}()},children:(0,k.jsxs)(x.ZP,{container:!0,children:[(0,k.jsxs)(x.ZP,{item:!0,xs:12,className:r.formScrollable,children:[(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsxs)(x.ZP,{container:!0,children:[(0,k.jsx)(x.ZP,{item:!0,xs:3,textAlign:"left",children:(0,k.jsx)(_.Z,{currentSelection:te,id:"quota_type",name:"quota_type",label:"",onChange:function(e){ae(e.target.value)},selectorOptions:[{value:"expiry",label:"Expiry"},{value:"transition",label:"Transition"}]})}),(0,k.jsx)(x.ZP,{item:!0,xs:9}),"expiry"===te?(0,k.jsxs)(s.Fragment,{children:[(0,k.jsx)(x.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,k.jsx)(y.Z,{id:"expiry_days",name:"expiry_days",onChange:function(e){e.target.validity.valid&&oe(e.target.value)},pattern:"[0-9]*",label:"Delete Latest Version After",value:re,overlayObject:(0,k.jsx)(I.Z,{id:"expire-current-unit",unitSelected:"days",unitsList:[{label:"Days",value:"days"}],disabled:!0})})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,k.jsx)(y.Z,{id:"noncurrentversion_expiration_days",name:"noncurrentversion_expiration_days",onChange:function(e){e.target.validity.valid&&Y(e.target.value)},pattern:"[0-9]*",label:"Delete Older Versions After",value:W,min:"0",overlayObject:(0,k.jsx)(I.Z,{id:"expire-noncurrent-unit",unitSelected:"days",unitsList:[{label:"Days",value:"days"}],disabled:!0})})})]}):(0,k.jsxs)(s.Fragment,{children:[(0,k.jsx)(x.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,k.jsx)(C.Z,{label:"Tier",id:"storage_class",name:"storage_class",value:K,onChange:function(e){H(e.target.value)},options:N})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,k.jsx)(y.Z,{id:"transition_days",name:"transition_days",onChange:function(e){e.target.validity.valid&&ue(e.target.value)},pattern:"[0-9]*",label:"Transition Latest Version",value:de,min:"0",overlayObject:(0,k.jsx)(I.Z,{id:"transition-current-unit",unitSelected:"days",unitsList:[{label:"Days",value:"days"}],disabled:!0})})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,k.jsx)(y.Z,{type:"number",id:"noncurrentversion_transition_days",name:"noncurrentversion_transition_days",onChange:function(e){e.target.validity.valid&&X(e.target.value)},label:"Transition Older Versions",value:J,pattern:"[0-9]*",overlayObject:(0,k.jsx)(I.Z,{id:"transition-noncurrent-unit",unitSelected:"days",unitsList:[{label:"Days",value:"days"}],disabled:!0})})})]})]})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,className:r.formFieldRow,children:(0,k.jsxs)("fieldset",{className:r.fieldGroup,children:[(0,k.jsx)("legend",{className:r.descriptionText,children:"Filters"}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(y.Z,{id:"prefix",name:"prefix",onChange:function(e){B(e.target.value)},label:"Prefix",value:w})}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(S.Z,{name:"tags",label:"Tags",elements:"",onChange:function(e){V(e)},keyPlaceholder:"Tag Key",valuePlaceholder:"Tag Value",withBorder:!0})})]})})]}),(0,k.jsxs)(x.ZP,{item:!0,xs:12,className:r.modalButtonBar,children:[(0,k.jsx)(v.Z,{type:"button",variant:"outlined",color:"primary",disabled:T,onClick:function(){t(!1)},children:"Cancel"}),(0,k.jsx)(v.Z,{type:"submit",variant:"contained",color:"primary",disabled:T||!fe,children:"Save"})]}),T&&(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(g.Z,{})})]})})]})}))),L=t(92983),R=t(23804),M=t(60680),w=t(38442),B=t(56087),O=t(40603),A=t(51691),D=t(23508),V=(0,r.$j)(null,{setErrorSnackMessage:h.Ih}),z=(0,l.Z)((function(e){return(0,o.Z)((0,i.Z)({},p.oO))}))(V((function(e){var n=e.onCloseAndRefresh,t=e.deleteOpen,i=e.bucket,r=e.id,o=e.setErrorSnackMessage,l=(0,s.useState)(!1),c=(0,a.Z)(l,2),d=c[0],u=c[1];(0,s.useEffect)((function(){d&&Z.Z.invoke("DELETE","/api/v1/buckets/".concat(i,"/lifecycle/").concat(r)).then((function(e){u(!1),n(!0)})).catch((function(e){u(!1),o(e)}))}),[d,i,r,n,o]);return(0,k.jsx)(D.Z,{title:"Delete Lifecycle Rule",confirmText:"Delete",isOpen:t,isLoading:d,onConfirm:function(){u(!0)},titleIcon:(0,k.jsx)(f.Nv,{}),onClose:function(){return n(!1)},confirmationContent:(0,k.jsxs)(A.Z,{children:["Are you sure you want to delete the ",(0,k.jsx)("strong",{children:r})," rule?"]})})}))),G=(0,r.$j)((function(e){return{session:e.console.session,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:h.Ih}),K=(0,l.Z)((function(e){return(0,o.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},p.qg),p.OR),{},{twHeight:{minHeight:400}}))}))(G((function(e){var n=e.classes,t=e.match,i=(e.setErrorSnackMessage,e.loadingBucket),r=(e.bucketInfo,(0,s.useState)(!0)),o=(0,a.Z)(r,2),l=o[0],c=o[1],u=(0,s.useState)([]),p=(0,a.Z)(u,2),h=p[0],v=p[1],g=(0,s.useState)(!1),j=(0,a.Z)(g,2),y=j[0],b=j[1],S=(0,s.useState)(!1),C=(0,a.Z)(S,2),_=C[0],N=C[1],P=(0,s.useState)(null),I=(0,a.Z)(P,2),F=I[0],A=I[1],D=(0,s.useState)(!1),V=(0,a.Z)(D,2),G=V[0],K=V[1],H=(0,s.useState)(null),q=(0,a.Z)(H,2),U=q[0],W=q[1],Y=t.params.bucketName,Q=(0,w.F)(Y,[B.Ft.S3_GET_LIFECYCLE_CONFIGURATION]);(0,s.useEffect)((function(){i&&c(!0)}),[i,c]),(0,s.useEffect)((function(){l&&(Q?Z.Z.invoke("GET","/api/v1/buckets/".concat(Y,"/lifecycle")).then((function(e){var n=d()(e,"lifecycle",[]);v(n||[]),c(!1)})).catch((function(e){console.error(e),v([]),c(!1)})):c(!1))}),[l,c,Y,Q]);var $=[{label:"ID",elementKey:"id"},{label:"Prefix",elementKey:"prefix"},{label:"Status",elementKey:"status"},{label:"Expiration",elementKey:"expiration",renderFunction:function(e){return e.days?"".concat(e.days," day").concat(e.days>1?"s":""):"0001-01-01T00:00:00Z"===e.date?"":(0,k.jsx)(m(),{children:e.date})}},{label:"Transition",elementKey:"transition",renderFunction:function(e){return e.days?"".concat(e.days," day").concat(e.days>1?"s":""):"0001-01-01T00:00:00Z"===e.date?"":(0,k.jsx)(m(),{children:e.date})}},{label:"Storage Class",elementKey:"storage_class",renderFunction:function(e){return d()(e,"transition.storage_class","")},renderFullObject:!0}],J=[{type:"view",onClick:function(e){A(e),N(!0)}},{type:"delete",onClick:function(e){W(e),K(!0)},sendOnlyId:!0}];return(0,k.jsxs)(s.Fragment,{children:[_&&F&&(0,k.jsx)(E,{open:_,closeModalAndRefresh:function(e){N(!1),A(null),e&&c(!0)},selectedBucket:Y,lifecycle:F}),y&&(0,k.jsx)(T,{open:y,bucketName:Y,closeModalAndRefresh:function(e){b(!1),e&&c(!0)}}),G&&U&&(0,k.jsx)(z,{id:U,bucket:Y,deleteOpen:G,onCloseAndRefresh:function(e){K(!1),W(null),e&&c(!0)}}),(0,k.jsxs)(x.ZP,{container:!0,children:[(0,k.jsxs)(x.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,k.jsx)(M.Z,{children:"Lifecycle Rules"}),(0,k.jsx)(w.s,{scopes:[B.Ft.S3_PUT_LIFECYCLE_CONFIGURATION,B.Ft.ADMIN_LIST_TIERS],resource:Y,matchAll:!0,errorProps:{disabled:!0},children:(0,k.jsx)(O.Z,{tooltip:"Add Lifecycle Rule",onClick:function(){b(!0)},text:"Add Lifecycle Rule",icon:(0,k.jsx)(f.dt,{}),color:"primary",variant:"contained"})})]}),(0,k.jsx)(x.ZP,{item:!0,xs:12,children:(0,k.jsx)(w.s,{scopes:[B.Ft.S3_GET_LIFECYCLE_CONFIGURATION],resource:Y,errorProps:{disabled:!0},children:(0,k.jsx)(L.Z,{itemActions:J,columns:$,isLoading:l,records:h,entityName:"Lifecycle",customEmptyMessage:"There are no Lifecycle rules yet",idField:"id",customPaperHeight:n.twHeight})})}),!l&&(0,k.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,k.jsx)("br",{}),(0,k.jsx)(R.Z,{title:"Lifecycle Rules",iconComponent:(0,k.jsx)(f.y2,{}),help:(0,k.jsxs)(s.Fragment,{children:["MinIO Object Lifecycle Management allows creating rules for time or date based automatic transition or expiry of objects. For object transition, MinIO automatically moves the object to a configured remote storage tier.",(0,k.jsx)("br",{}),(0,k.jsx)("br",{}),"You can learn more at our"," ",(0,k.jsx)("a",{href:"https://docs.min.io/minio/baremetal/lifecycle-management/lifecycle-management-overview.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})]})]})]})})))},17420:function(e,n,t){"use strict";var a=t(42982),i=t(70885),s=t(1413),r=t(72791),o=t(26181),l=t.n(o),c=t(48573),d=t.n(c),u=t(11135),m=t(25787),x=t(61889),f=t(77961),p=t(30829),h=t(20068),Z=t(23814),v=t(21435),g=t(47919),j=t(80184);n.Z=(0,m.Z)((function(e){return(0,u.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},Z.YI),Z.Hr),{},{inputWithBorder:{border:"1px solid #EAEAEA",padding:15,height:150,overflowY:"auto",position:"relative",marginTop:15},lineInputBoxes:{display:"flex",marginBottom:10},queryDiv:{alignSelf:"center",margin:"0 4px",fontWeight:600}}))}))((function(e){var n=e.elements,t=e.name,s=e.label,o=e.tooltip,c=void 0===o?"":o,u=e.keyPlaceholder,m=void 0===u?"":u,Z=e.valuePlaceholder,y=void 0===Z?"":Z,b=e.onChange,S=e.withBorder,C=void 0!==S&&S,_=e.classes,k=(0,r.useState)([""]),N=(0,i.Z)(k,2),P=N[0],E=N[1],I=(0,r.useState)([""]),F=(0,i.Z)(I,2),T=F[0],L=F[1],R=(0,r.createRef)();(0,r.useEffect)((function(){if(1===P.length&&""===P[0]&&1===T.length&&""===T[0]&&n&&""!==n){var e=n.split("&"),t=[],a=[];e.forEach((function(e){var n=e.split("=");2===n.length&&(t.push(n[0]),a.push(n[1]))})),t.push(""),a.push(""),E(t),L(a)}}),[P,T,n]),(0,r.useEffect)((function(){var e=R.current;e&&P.length>1&&e.scrollIntoView(!1)}),[P]);var M=(0,r.useRef)(!0);(0,r.useLayoutEffect)((function(){M.current?M.current=!1:O()}),[P,T]);var w=function(e){e.persist();var n=(0,a.Z)(P);n[l()(e.target,"dataset.index",0)]=e.target.value,E(n)},B=function(e){e.persist();var n=(0,a.Z)(T);n[l()(e.target,"dataset.index",0)]=e.target.value,L(n)},O=d()((function(){var e="";P.forEach((function(n,t){if(P[t]&&T[t]){var a="".concat(n,"=").concat(T[t]);0!==t&&(a="&".concat(a)),e="".concat(e).concat(a)}})),b(e)}),500),A=T.map((function(e,n){return(0,j.jsxs)(x.ZP,{item:!0,xs:12,className:_.lineInputBoxes,children:[(0,j.jsx)(v.Z,{id:"".concat(t,"-key-").concat(n.toString()),label:"",name:"".concat(t,"-").concat(n.toString()),value:P[n],onChange:w,index:n,placeholder:m}),(0,j.jsx)("span",{className:_.queryDiv,children:":"}),(0,j.jsx)(v.Z,{id:"".concat(t,"-value-").concat(n.toString()),label:"",name:"".concat(t,"-").concat(n.toString()),value:T[n],onChange:B,index:n,placeholder:y,overlayIcon:n===T.length-1?(0,j.jsx)(g.Z,{}):null,overlayAction:function(){!function(){if(""!==P[P.length-1].trim()&&""!==T[T.length-1].trim()){var e=(0,a.Z)(P),n=(0,a.Z)(T);e.push(""),n.push(""),E(e),L(n)}}()}})]},"query-pair-".concat(t,"-").concat(n.toString()))}));return(0,j.jsx)(r.Fragment,{children:(0,j.jsxs)(x.ZP,{item:!0,xs:12,className:_.fieldContainer,children:[(0,j.jsxs)(p.Z,{className:_.inputLabel,children:[(0,j.jsx)("span",{children:s}),""!==c&&(0,j.jsx)("div",{className:_.tooltipContainer,children:(0,j.jsx)(h.Z,{title:c,placement:"top-start",children:(0,j.jsx)(f.Z,{className:_.tooltip})})})]}),(0,j.jsxs)(x.ZP,{item:!0,xs:12,className:"".concat(C?_.inputWithBorder:""),children:[A,(0,j.jsx)("div",{ref:R})]})]})})}))},83679:function(e,n,t){"use strict";var a=t(4942),i=t(1413),s=(t(72791),t(28182)),r=t(61889),o=t(10765),l=t(85523),c=t(61419),d=t(30829),u=t(20068),m=t(11135),x=t(25787),f=t(72455),p=t(23814),h=t(84570),Z=t(80184),v=(0,f.Z)((0,i.Z)({root:{"&:hover":{backgroundColor:"transparent"}}},p.FU)),g=function(e){var n=v();return(0,Z.jsx)(c.Z,(0,i.Z)({className:n.root,disableRipple:!0,color:"default",checkedIcon:(0,Z.jsx)("span",{className:n.radioSelectedIcon}),icon:(0,Z.jsx)("span",{className:n.radioUnselectedIcon})},e))};n.Z=(0,x.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},p.YI),p.Hr),{},{optionLabel:{"&.Mui-disabled":{"& .MuiFormControlLabel-label":{color:"#9c9c9c"}},"&:last-child":{marginRight:0},"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E"}},checkedOption:{"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E",fontWeight:700}}}))}))((function(e){var n=e.selectorOptions,t=void 0===n?[]:n,i=e.currentSelection,c=e.label,m=e.id,x=e.name,f=e.onChange,p=e.tooltip,v=void 0===p?"":p,j=e.disableOptions,y=void 0!==j&&j,b=e.classes,S=e.displayInColumn,C=void 0!==S&&S;return(0,Z.jsxs)(r.ZP,{container:!0,alignItems:"center",children:[(0,Z.jsx)(r.ZP,{item:!0,xs:!0,children:(0,Z.jsxs)(d.Z,{htmlFor:m,className:b.inputLabel,children:[(0,Z.jsx)("span",{children:c}),""!==v&&(0,Z.jsx)("div",{className:b.tooltipContainer,children:(0,Z.jsx)(u.Z,{title:v,placement:"top-start",children:(0,Z.jsx)("div",{children:(0,Z.jsx)(h.Z,{})})})})]})}),(0,Z.jsx)(r.ZP,{item:!0,xs:!0,className:b.radioOptionsLayout,children:(0,Z.jsx)(o.Z,{"aria-label":m,id:m,name:x,value:i,onChange:f,row:!C,style:{display:"block",textAlign:"right"},children:t.map((function(e){return(0,Z.jsx)(l.Z,{value:e.value,control:(0,Z.jsx)(g,{}),label:e.label,disabled:y,className:(0,s.Z)(b.optionLabel,(0,a.Z)({},b.checkedOption,e.value===i))},"rd-".concat(x,"-").concat(e.value))}))})})]})}))},23508:function(e,n,t){"use strict";var a=t(1413),i=t(72791),s=t(5574),r=t(65661),o=t(39157),l=t(97123),c=t(36151),d=t(59860),u=t(13400),m=t(29823),x=t(11135),f=t(25787),p=t(23814),h=t(80184);n.Z=(0,f.Z)((function(e){return(0,x.Z)((0,a.Z)({},p.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,x=e.onClose,f=e.onCancel,p=e.onConfirm,Z=e.classes,v=void 0===Z?{}:Z,g=e.title,j=void 0===g?"":g,y=e.isLoading,b=e.confirmationContent,S=e.cancelText,C=void 0===S?"Cancel":S,_=e.confirmText,k=void 0===_?"Confirm":_,N=e.confirmButtonProps,P=void 0===N?{}:N,E=e.cancelButtonProps,I=void 0===E?{}:E,F=e.titleIcon,T=void 0===F?null:F;return(0,h.jsxs)(s.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&x()},className:v.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(r.Z,{className:v.title,children:[(0,h.jsxs)("div",{className:v.titleText,children:[T," ",j]}),(0,h.jsx)("div",{className:v.closeContainer,children:(0,h.jsx)(u.Z,{"aria-label":"close",className:v.closeButton,onClick:x,disableRipple:!0,size:"small",children:(0,h.jsx)(m.Z,{})})})]}),(0,h.jsx)(o.Z,{className:v.content,children:b}),(0,h.jsxs)(l.Z,{className:v.actions,children:[(0,h.jsx)(c.Z,(0,a.Z)((0,a.Z)({className:v.cancelButton,onClick:f||x,disabled:y,type:"button"},I),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:C})),(0,h.jsx)(d.Z,(0,a.Z)((0,a.Z)({className:v.confirmButton,type:"button",onClick:p,loading:y,disabled:y,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(i.Fragment,{}),autoFocus:!0,id:"confirm-ok"},P),{},{children:k}))]})]})}))},56028:function(e,n,t){"use strict";var a=t(70885),i=t(1413),s=t(72791),r=t(60364),o=t(13400),l=t(55646),c=t(5574),d=t(65661),u=t(39157),m=t(11135),x=t(25787),f=t(23814),p=t(42649),h=t(29823),Z=t(28057),v=t(80184),g=(0,r.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:p.MK});n.Z=(0,x.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(g((function(e){var n=e.onClose,t=e.modalOpen,r=e.title,m=e.children,x=e.classes,f=e.wideLimit,p=void 0===f||f,g=e.modalSnackMessage,j=e.noContentPadding,y=e.setModalSnackMessage,b=e.titleIcon,S=void 0===b?null:b,C=(0,s.useState)(!1),_=(0,a.Z)(C,2),k=_[0],N=_[1];(0,s.useEffect)((function(){y("")}),[y]),(0,s.useEffect)((function(){if(g){if(""===g.message)return void N(!1);"error"!==g.type&&N(!0)}}),[g]);var P=p?{classes:{paper:x.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return g&&(E=g.detailedErrorMsg,(""===g.detailedErrorMsg||g.detailedErrorMsg.length<5)&&(E=g.message)),(0,v.jsxs)(c.Z,(0,i.Z)((0,i.Z)({open:t,classes:x},P),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:x.root,children:[(0,v.jsxs)(d.Z,{className:x.title,children:[(0,v.jsxs)("div",{className:x.titleText,children:[S," ",r]}),(0,v.jsx)("div",{className:x.closeContainer,children:(0,v.jsx)(o.Z,{"aria-label":"close",id:"close",className:x.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,v.jsx)(h.Z,{})})})]}),(0,v.jsx)(Z.Z,{isModal:!0}),(0,v.jsx)(l.Z,{open:k,className:x.snackBarModal,onClose:function(){N(!1),y("")},message:E,ContentProps:{className:"".concat(x.snackBar," ").concat(g&&"error"===g.type?x.errorSnackBar:"")},autoHideDuration:g&&"error"===g.type?1e4:5e3}),(0,v.jsx)(u.Z,{className:j?"":x.content,children:m})]}))})))},60680:function(e,n,t){"use strict";t(72791);var a=t(11135),i=t(25787),s=t(80184);n.Z=(0,i.Z)((function(e){return(0,a.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var n=e.classes,t=e.children;return(0,s.jsx)("h1",{className:n.root,children:t})}))},26759:function(e,n,t){"use strict";var a=t(95318);n.Z=void 0;var i=a(t(45649)),s=t(80184),r=(0,i.default)((0,s.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");n.Z=r},70366:function(e,n,t){"use strict";var a=t(95318);n.Z=void 0;var i=a(t(45649)),s=t(80184),r=(0,i.default)((0,s.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");n.Z=r},97911:function(e,n,t){"use strict";var a=t(95318);n.Z=void 0;var i=a(t(45649)),s=t(80184),r=(0,i.default)((0,s.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");n.Z=r},26769:function(e,n,t){var a=t(39066),i=t(93629),s=t(43141);e.exports=function(e){return"string"==typeof e||!i(e)&&s(e)&&"[object String]"==a(e)}}}]); +//# sourceMappingURL=2114.fac0126b.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2114.ac47a792.chunk.js.map b/portal-ui/build/static/js/2114.fac0126b.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/2114.ac47a792.chunk.js.map rename to portal-ui/build/static/js/2114.fac0126b.chunk.js.map index 29077f038..3460f3970 100644 --- a/portal-ui/build/static/js/2114.ac47a792.chunk.js.map +++ b/portal-ui/build/static/js/2114.fac0126b.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2114.ac47a792.chunk.js","mappings":"sKA0EA,KAAeA,EAAAA,EAAAA,IApDA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,KAAM,CACJC,OAAQ,oBACRC,aAAc,EACdC,gBAAiB,UACjBC,YAAa,GACbC,WAAY,GACZC,cAAe,GACfC,aAAc,IAEhBC,UAAW,CACTC,SAAU,GACVC,WAAY,OACZC,aAAc,GACdC,QAAS,OACTC,WAAY,SACZ,cAAe,CACbC,YAAa,GACbC,OAAQ,GACRC,MAAO,KAGXC,SAAU,CACRR,SAAU,GACVL,YAAa,OA2BnB,EAhBgB,SAAC,GAAuD,IAArDc,EAAoD,EAApDA,QAASC,EAA2C,EAA3CA,cAAeC,EAA4B,EAA5BA,MAAOC,EAAqB,EAArBA,KAChD,OACE,gBAAKC,UAAWJ,EAAQlB,KAAxB,UACE,UAAC,KAAD,CAAMuB,WAAS,EAAf,WACE,UAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQV,UAAtC,UACGW,EACAC,MAEH,SAAC,KAAD,CAAMI,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQD,SAAtC,SACGI,a,oVC6aLK,EAAqB,CACzBC,0BAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAEhC,GAAe7B,EAAAA,EAAAA,IAvcA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gCACX+B,aAAc,CACZ,QAAS,CACPC,aAAc,EACdpB,aAAc,EAEd,qBAAsB,CACpBV,OAAQ,oBACRG,YAAa,EAEb,QAAS,CACPH,OAAQ,OAKb+B,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,OAmbP,CAAkCP,GAvaC,SAAC,GAOP,IAN3BV,EAM0B,EAN1BA,QACAkB,EAK0B,EAL1BA,qBACAC,EAI0B,EAJ1BA,eACAC,EAG0B,EAH1BA,UACAC,EAE0B,EAF1BA,KACAZ,EAC0B,EAD1BA,0BAEA,GAAwCa,EAAAA,EAAAA,WAAkB,GAA1D,eAAOC,EAAP,KAAqBC,EAArB,KACA,GAAoCF,EAAAA,EAAAA,WAAkB,GAAtD,eAAOG,EAAP,KAAmBC,EAAnB,KACA,GAAwBJ,EAAAA,EAAAA,UAAiB,IAAzC,eAAOK,EAAP,KAAaC,EAAb,KACA,GAA8BN,EAAAA,EAAAA,WAAkB,GAAhD,eAAOO,EAAP,KAAgBC,EAAhB,KACA,GAAkCR,EAAAA,EAAAA,UAA2B,IAA7D,eAAOS,EAAP,KAAkBC,EAAlB,KACA,GAA4BV,EAAAA,EAAAA,UAAS,IAArC,eAAOW,EAAP,KAAeC,EAAf,KACA,GAAwCZ,EAAAA,EAAAA,UAAS,IAAjD,eAAOa,EAAP,KAAqBC,EAArB,KACA,GAA4Cd,EAAAA,EAAAA,UAAS,IAArD,eAAOe,EAAP,KAAuBC,GAAvB,KACA,IAA8ChB,EAAAA,EAAAA,WAAkB,GAAhE,iBAAOiB,GAAP,MAAwBC,GAAxB,MACA,IAAgDlB,EAAAA,EAAAA,UAAiB,KAAjE,iBAAOmB,GAAP,MAAyBC,GAAzB,MACA,IAAgDpB,EAAAA,EAAAA,UAAiB,KAAjE,iBAAOqB,GAAP,MAAyBC,GAAzB,MACA,IAA8BtB,EAAAA,EAAAA,UAAiB,UAA/C,iBAAOuB,GAAP,MAAgBC,GAAhB,MACA,IAAoCxB,EAAAA,EAAAA,UAAiB,KAArD,iBAAOyB,GAAP,MAAmBC,GAAnB,MACA,IAA4C1B,EAAAA,EAAAA,UAAiB,KAA7D,iBAAO2B,GAAP,MAAuBC,GAAvB,MACA,IAAsC5B,EAAAA,EAAAA,WAAkB,GAAxD,iBAAO6B,GAAP,MAAoBC,GAApB,OAEAC,EAAAA,EAAAA,YAAU,WACJ9B,GACF+B,EAAAA,EAAAA,OACU,MADV,uBAEGC,MAAK,SAACC,GACL,IAAMzB,EAAmC0B,GAAAA,CAAID,EAAK,QAAS,IAE3D,GAAkB,OAAdzB,GAAsBA,EAAU2B,QAAU,EAAG,CAC/C,IAAMC,EAAU5B,EAAU6B,KAAI,SAACC,GAC7B,IAAMC,EAAWD,EAAKE,KAChBC,EAAQP,GAAAA,CAAII,EAAD,UAAUC,EAAV,SAA2B,IAE5C,MAAO,CAAEG,MAAOD,EAAOA,MAAOA,MAGhChC,EAAa2B,GACTA,EAAQD,OAAS,GACnBtB,EAAgBuB,EAAQ,GAAGK,OAG/BxC,GAAgB,MAEjB0C,OAAM,SAACC,GACN3C,GAAgB,QAGrB,CAACD,KAEJ8B,EAAAA,EAAAA,YAAU,WACR,IAAIe,GAAQ,EAEI,WAAZvB,IACmB,KAAjBV,IACFiC,GAAQ,GAGZhB,GAAegB,KACd,CAACvB,GAASE,GAAYE,GAAgBd,KAEzCkB,EAAAA,EAAAA,YAAU,WAAO,IAAD,EACW,YAArBjC,EAAUiD,QACZvC,GAAW,GAGb,IAqCoB,QAMb,IA3CHwC,GAAiB,GAEjBlD,EAAUmD,aACRnD,EAAUmD,WAAWC,MAAsC,IAA9BpD,EAAUmD,WAAWC,OACpDtB,GAAkB9B,EAAUmD,WAAWC,KAAKC,YAC5C3B,GAAW,cACXwB,GAAiB,GAKjBlD,EAAUmD,WAAWG,MACS,yBAA9BtD,EAAUmD,WAAWG,OAErB5B,GAAW,cACXwB,GAAiB,IAIjBlD,EAAUuD,aACRvD,EAAUuD,WAAWH,MAAsC,IAA9BpD,EAAUuD,WAAWH,OACpDxB,GAAc5B,EAAUuD,WAAWH,KAAKC,YACxC3B,GAAW,UACXwB,GAAiB,GAKjBlD,EAAUuD,WAAWD,MACS,yBAA9BtD,EAAUuD,WAAWD,OAErB5B,GAAW,UACXwB,GAAiB,IAKjBA,IACFlC,GAAgB,UAAAhB,EAAUmD,kBAAV,eAAsBK,gBAAiB,IACvDhC,IACE,UAAAxB,EAAUmD,kBAAV,mBAAsBM,kCAAtB,eAAkDJ,aAAc,KAElEnC,IAAkB,UAAAlB,EAAUmD,kBAAV,eAAsBO,2BAA4B,KAGpEpC,IACE,UAAAtB,EAAUuD,kBAAV,mBAAsBI,kCAAtB,eAAkDN,aAAc,KAOpE,GAHAjC,KAAoB,UAACpB,EAAUuD,kBAAX,QAAC,EAAsBK,gBAC3C9C,EAAUd,EAAUa,QAAU,IAE1Bb,EAAUO,KAAM,CAClB,IAAMsD,EAAM7D,EAAUO,KAAKuD,QACzB,SAACC,EAAmBC,EAAeC,GACjC,MAAM,GAAN,OAAUF,GAAV,OAAgC,IAAVE,EAAc,IAAM,IAA1C,OAA+CD,EAASE,IAAxD,YACEF,EAASpB,SAGb,IAGFpC,EAAQqD,MAET,CAAC7D,IA4DJ,OACE,SAACmE,EAAA,EAAD,CACEC,QAAS,WACPtE,GAAqB,IAEvBuE,UAAWpE,EACXnB,MAAO,+BACPwF,WAAW,SAAC,KAAD,IANb,UAQE,iBACEC,YAAU,EACVC,aAAa,MACbC,SAAU,SAACC,IAtEE,SAACC,GAGlB,GAFAA,EAAMC,kBAEFvE,IAGJC,GAAc,GACS,OAAnBP,GAAyC,OAAdC,GAAoB,CACjD,IAAI6E,EAAQ,GAEZ,GAAgB,WAAZpD,GAAsB,CACxB,IAAIqD,EAAS,CACXC,YAAaC,SAASrD,KAGxBkD,GAAK,kBACAC,GADA,IAEHG,kCAAmCD,SAAS3D,UAEzC,CACL,IAAI8B,EAAa,CACf+B,gBAAiBF,SAASnD,KAG5BgD,GAAK,kBACA1B,GADA,IAEHgC,kCAAmCH,SAASzD,IAC5C6D,2CAA4CnE,EAC5CuC,cAAezC,IAInB,IAAMsE,GAAe,QACnB1C,KAAMlB,GACN6D,SAAU7E,EACVI,OAAAA,EACAN,KAAAA,EACAgF,6BAA8BpE,IAC3B0D,GAGL3C,EAAAA,EAAAA,OAEI,MAFJ,0BAGuBnC,EAHvB,sBAGmDC,EAAUwF,IACzDH,GAEDlD,MAAK,SAACC,GACL9B,GAAc,GACdR,GAAqB,MAEtBgD,OAAM,SAACC,GACNzC,GAAc,GACdjB,EAA0B0D,OAkB1B0C,CAAWf,IAJf,UAOE,UAACgB,EAAA,GAAD,CAAMzG,WAAS,EAAf,WACE,UAACyG,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQ+G,eAAtC,WACE,SAACD,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEL,GAAG,KACHM,KAAK,KACLjD,MAAM,KACND,MAAO5C,EAAUwF,GACjBO,SAAU,aACVC,UAAQ,OAGZ,SAACN,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACK,EAAA,EAAD,CACEpD,MAAM,aACNqD,gBAAiB,CAAC,UAAW,YAC7BC,QAAS1F,EACTmC,MAAO,eACP4C,GAAG,cACHM,KAAK,cACLC,SAAU,SAACrB,GACThE,EAAWgE,EAAE0B,OAAOD,eAI1B,SAACT,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,sBAAU5G,UAAWJ,EAAQyH,WAA7B,WACE,mBAAQrH,UAAWJ,EAAQ0H,gBAA3B,sCAIA,SAACZ,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAf,UACE,SAACoH,EAAA,EAAD,CACEC,iBAAkB/E,GAClB+D,GAAG,aACHM,KAAK,aACLjD,MAAM,WACN4D,gBAAiB,CACf,CAAE7D,MAAO,SAAUC,MAAO,UAC1B,CAAED,MAAO,aAAcC,MAAO,eAEhCkD,SAAU,aACVW,gBAAc,MAGL,WAAZjF,IACC,UAAC,EAAAkF,SAAD,YACE,SAACjB,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACC,EAAA,EAAD,CACElD,KAAK,SACL6C,GAAG,cACHM,KAAK,cACLC,SAAU,SAACrB,GACT9C,GAAc8C,EAAE0B,OAAOxD,QAEzBC,MAAM,cACND,MAAOjB,GACPiF,IAAI,SAIR,SAAClB,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACC,EAAA,EAAD,CACElD,KAAK,SACL6C,GAAG,oCACHM,KAAK,oCACLC,SAAU,SAACrB,GACTpD,GAAoBoD,EAAE0B,OAAOxD,QAE/BC,MAAM,8BACND,MAAOvB,GACPuF,IAAI,YAKV,UAAC,EAAAD,SAAD,YACE,SAACjB,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACC,EAAA,EAAD,CACElD,KAAK,SACL6C,GAAG,kBACHM,KAAK,kBACLC,SAAU,SAACrB,GACT5C,GAAkB4C,EAAE0B,OAAOxD,QAE7BC,MAAM,kBACND,MAAOf,GACP+E,IAAI,SAGR,SAAClB,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACC,EAAA,EAAD,CACElD,KAAK,SACL6C,GAAG,oCACHM,KAAK,oCACLC,SAAU,SAACrB,GACTlD,GAAoBkD,EAAE0B,OAAOxD,QAE/BC,MAAM,8BACND,MAAOrB,GACPqF,IAAI,SAGR,SAAClB,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEL,GAAG,yBACHM,KAAK,yBACLC,SAAU,SAACrB,GACTxD,GAAkBwD,EAAE0B,OAAOxD,QAE7BiE,YAAY,mDACZhE,MAAM,+CACND,MAAO3B,OAGX,SAACyE,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACkB,EAAA,EAAD,CACEjE,MAAM,gBACN2C,GAAG,gBACHM,KAAK,gBACLlD,MAAO7B,EACPgF,SAAU,SAACrB,GACT1D,EAAgB0D,EAAE0B,OAAOxD,QAE3BmE,QAASpG,eAOrB,SAAC+E,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,sBAAU5G,UAAWJ,EAAQyH,WAA7B,WACE,mBAAQrH,UAAWJ,EAAQ0H,gBAA3B,iCAIA,SAACZ,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAf,UACE,SAAC0G,EAAA,EAAD,CACEL,GAAG,SACHM,KAAK,SACLC,SAAU,SAACrB,GACT5D,EAAU4D,EAAE0B,OAAOxD,QAErBC,MAAM,SACND,MAAO/B,OAGX,SAAC6E,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAf,UACE,SAAC6H,EAAA,EAAD,CACElB,KAAK,OACLjD,MAAM,OACNoE,SAAU1G,EACVwF,SAAU,SAACmB,GACT1G,EAAQ0G,IAEVC,eAAe,UACfC,iBAAiB,YACjBC,YAAU,OAGd,SAAC3B,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAf,UACE,SAAC8G,EAAA,EAAD,CACErD,MAAM,wBACN4C,GAAG,wBACHM,KAAK,wBACLK,QAAShF,GACT4E,SAAU,SAACpB,GACTvD,GAAmBuD,EAAMyB,OAAOD,UAElCtD,MAAO,4CAMjB,UAAC6C,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQ0I,eAAtC,WACE,SAACC,EAAA,EAAD,CACE5E,KAAK,SACL6E,QAAQ,WACRC,MAAM,UACNzB,SAAU3F,EACVqH,QAAS,WACP5H,GAAqB,IANzB,qBAWA,SAACyH,EAAA,EAAD,CACE5E,KAAK,SACL6E,QAAQ,YACRC,MAAM,UACNzB,SAAU3F,IAAe0B,GAJ3B,qBASD1B,IACC,SAACqF,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAf,UACE,SAACwI,EAAA,EAAD,iB,WCzDRrI,GAAYC,EAAAA,EAAAA,IAAQ,KAAM,CAC9BF,0BAAAA,EAAAA,KAGF,GAAe9B,EAAAA,EAAAA,IAxXA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,gCACX+B,aAAc,CACZ,QAAS,CACPC,aAAc,EACdpB,aAAc,EAEd,qBAAsB,CACpBV,OAAQ,oBACRG,YAAa,EAEb,QAAS,CACPH,OAAQ,OAKb+B,EAAAA,IACAC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,OAoWP,CAAkCP,GAjWR,SAAC,GAMD,IALxBW,EAKuB,EALvBA,KACAH,EAIuB,EAJvBA,qBACAlB,EAGuB,EAHvBA,QACAgJ,EAEuB,EAFvBA,WACAvI,EACuB,EADvBA,0BAEA,GAAwCa,EAAAA,EAAAA,WAAkB,GAA1D,eAAOC,EAAP,KAAqBC,EAArB,KACA,GAAkCF,EAAAA,EAAAA,UAA2B,IAA7D,eAAOS,EAAP,KAAkBC,EAAlB,KACA,GAAoCV,EAAAA,EAAAA,WAAS,GAA7C,eAAOG,EAAP,KAAmBC,EAAnB,KACA,GAA4BJ,EAAAA,EAAAA,UAAS,IAArC,eAAOW,EAAP,KAAeC,EAAf,KACA,GAAwBZ,EAAAA,EAAAA,UAAiB,IAAzC,eAAOK,EAAP,KAAaC,EAAb,KACA,GAAwCN,EAAAA,EAAAA,UAAS,IAAjD,eAAOa,EAAP,KAAqBC,EAArB,KACA,GAAgDd,EAAAA,EAAAA,UAAiB,IAAjE,eAAOmB,EAAP,KAAyBC,EAAzB,KACA,GAAgDpB,EAAAA,EAAAA,UAAiB,IAAjE,eAAOqB,EAAP,KAAyBC,EAAzB,KACA,IAA8BtB,EAAAA,EAAAA,UAAiB,UAA/C,iBAAOuB,GAAP,MAAgBC,GAAhB,MACA,IAAoCxB,EAAAA,EAAAA,UAAiB,IAArD,iBAAOyB,GAAP,MAAmBC,GAAnB,MACA,IAA4C1B,EAAAA,EAAAA,UAAiB,IAA7D,iBAAO2B,GAAP,MAAuBC,GAAvB,MACA,IAAsC5B,EAAAA,EAAAA,WAAkB,GAAxD,iBAAO6B,GAAP,MAAoBC,GAApB,OAEAC,EAAAA,EAAAA,YAAU,WACJ9B,GACF+B,EAAAA,EAAAA,OACU,MADV,uBAEGC,MAAK,SAACC,GACL,IAAMzB,EAAmC0B,GAAAA,CAAID,EAAK,QAAS,IAE3D,GAAkB,OAAdzB,GAAsBA,EAAU2B,QAAU,EAAG,CAC/C,IAAMC,EAAU5B,EAAU6B,KAAI,SAACC,GAC7B,IAAMC,EAAWD,EAAKE,KAChBC,EAAQP,GAAAA,CAAII,EAAD,UAAUC,EAAV,SAA2B,IAE5C,MAAO,CAAEG,MAAOD,EAAOA,MAAOA,MAGhChC,EAAa2B,GACTA,EAAQD,OAAS,GACnBtB,EAAgBuB,EAAQ,GAAGK,OAG/BxC,GAAgB,MAEjB0C,OAAM,SAACC,GACN3C,GAAgB,QAGrB,CAACD,KAEJ8B,EAAAA,EAAAA,YAAU,WACR,IAAIe,GAAQ,EAEI,WAAZvB,IACmB,KAAjBV,IACFiC,GAAQ,GAGZhB,GAAegB,KACd,CAACvB,GAASE,GAAYE,GAAgBd,IA4DzC,OACE,UAACoD,EAAA,EAAD,CACEE,UAAWpE,EACXmE,QAAS,WACPtE,GAAqB,IAEvBhB,MAAM,qBACNwF,WAAW,SAAC,KAAD,IANb,UAQGnE,IACC,SAACuF,EAAA,GAAD,CAAMzG,WAAS,EAACD,UAAWJ,EAAQiJ,WAAnC,UACE,SAACnC,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAf,UACE,SAACwI,EAAA,EAAD,SAKJxH,IACA,iBACEoE,YAAU,EACVC,aAAa,MACbC,SAAU,SAACC,GACTA,EAAEE,iBACFtE,GAAc,GAjFN,WAChB,IAAIuE,EAAQ,GAERiD,GAAW,EAEf,GAAgB,WAAZrG,GAAsB,CACxB,IAAIqD,EAAS,CACXC,YAAaC,SAASrD,KAGpBqD,SAASrD,IAAc,GAAKqD,SAAS3D,GAAoB,IAC3DyG,GAAW,GAGbjD,GAAK,kBACAC,GADA,IAEHG,kCAAmCD,SAAS3D,SAEzC,CACL,IAAI8B,EAAa,CACf+B,gBAAiBF,SAASnD,KAGxBmD,SAASnD,IAAkB,GAAKmD,SAASzD,GAAoB,IAC/DuG,GAAW,GAGbjD,GAAK,kBACA1B,GADA,IAEHgC,kCAAmCH,SAASzD,GAC5CiC,cAAezC,IAInB,IAAMgH,GAAe,QACnBpF,KAAMlB,GACNZ,OAAAA,EACAN,KAAAA,EACAgF,6BAA8BuC,GAC3BjD,GAGL3C,EAAAA,EAAAA,OAEI,OAFJ,0BAGuB0F,EAHvB,cAIIG,GAED5F,MAAK,WACJ7B,GAAc,GACdR,GAAqB,MAEtBgD,OAAM,SAACC,GACNzC,GAAc,GACdjB,EAA0B0D,MA4BtBiF,IANJ,UASE,UAACtC,EAAA,GAAD,CAAMzG,WAAS,EAAf,WACE,UAACyG,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQ+G,eAAtC,WACE,SAACD,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAf,UACE,UAACuG,EAAA,GAAD,CAAMzG,WAAS,EAAf,WACE,SAACyG,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,EAAG8I,UAAW,OAA7B,UACE,SAAC1B,EAAA,EAAD,CACEC,iBAAkB/E,GAClB+D,GAAG,aACHM,KAAK,aACLjD,MAAM,GACNkD,SAAU,SAACrB,GACThD,GAAWgD,EAAE0B,OAAOxD,QAEtB6D,gBAAiB,CACf,CAAE7D,MAAO,SAAUC,MAAO,UAC1B,CAAED,MAAO,aAAcC,MAAO,oBAIpC,SAAC6C,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,IACF,WAAZsC,IACC,UAAC,EAAAkF,SAAD,YACE,SAACjB,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEL,GAAG,cACHM,KAAK,cACLC,SAAU,SACRrB,GAEIA,EAAE0B,OAAO8B,SAASlF,OACpBpB,GAAc8C,EAAE0B,OAAOxD,QAG3BuF,QAAS,SACTtF,MAAM,8BACND,MAAOjB,GACPyG,eACE,SAACC,EAAA,EAAD,CACE7C,GAAI,sBACJ8C,aAAc,OACdC,UAAW,CAAC,CAAE1F,MAAO,OAAQD,MAAO,SACpCoD,UAAU,SAMlB,SAACN,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEL,GAAG,oCACHM,KAAK,oCACLC,SAAU,SACRrB,GAEIA,EAAE0B,OAAO8B,SAASlF,OACpB1B,EAAoBoD,EAAE0B,OAAOxD,QAGjCuF,QAAS,SACTtF,MAAM,8BACND,MAAOvB,EACPuF,IAAI,IACJwB,eACE,SAACC,EAAA,EAAD,CACE7C,GAAI,yBACJ8C,aAAc,OACdC,UAAW,CAAC,CAAE1F,MAAO,OAAQD,MAAO,SACpCoD,UAAU,YAOpB,UAAC,EAAAW,SAAD,YACE,SAACjB,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACkB,EAAA,EAAD,CACEjE,MAAM,OACN2C,GAAG,gBACHM,KAAK,gBACLlD,MAAO7B,EACPgF,SAAU,SAACrB,GACT1D,EAAgB0D,EAAE0B,OAAOxD,QAE3BmE,QAASpG,OAGb,SAAC+E,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACC,EAAA,EAAD,CACEL,GAAG,kBACHM,KAAK,kBACLC,SAAU,SACRrB,GAEIA,EAAE0B,OAAO8B,SAASlF,OACpBlB,GAAkB4C,EAAE0B,OAAOxD,QAG/BuF,QAAS,SACTtF,MAAM,4BACND,MAAOf,GACP+E,IAAI,IACJwB,eACE,SAACC,EAAA,EAAD,CACE7C,GAAI,0BACJ8C,aAAc,OACdC,UAAW,CAAC,CAAE1F,MAAO,OAAQD,MAAO,SACpCoD,UAAU,SAKlB,SAACN,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,SAACC,EAAA,EAAD,CACElD,KAAK,SACL6C,GAAG,oCACHM,KAAK,oCACLC,SAAU,SACRrB,GAEIA,EAAE0B,OAAO8B,SAASlF,OACpBxB,EAAoBkD,EAAE0B,OAAOxD,QAGjCC,MAAM,4BACND,MAAOrB,EACP4G,QAAS,SACTC,eACE,SAACC,EAAA,EAAD,CACE7C,GAAI,6BACJ8C,aAAc,OACdC,UAAW,CAAC,CAAE1F,MAAO,OAAQD,MAAO,SACpCoD,UAAU,iBAS1B,SAACN,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQgH,aAAtC,UACE,sBAAU5G,UAAWJ,EAAQyH,WAA7B,WACE,mBAAQrH,UAAWJ,EAAQ0H,gBAA3B,sBAEA,SAACZ,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAf,UACE,SAAC0G,EAAA,EAAD,CACEL,GAAG,SACHM,KAAK,SACLC,SAAU,SAACrB,GACT5D,EAAU4D,EAAE0B,OAAOxD,QAErBC,MAAM,SACND,MAAO/B,OAGX,SAAC6E,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAf,UACE,SAAC6H,EAAA,EAAD,CACElB,KAAK,OACLjD,MAAM,OACNoE,SAAU,GACVlB,SAAU,SAACmB,GACT1G,EAAQ0G,IAEVC,eAAe,UACfC,iBAAiB,YACjBC,YAAU,eAMpB,UAAC3B,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQ0I,eAAtC,WACE,SAACC,EAAA,EAAD,CACE5E,KAAK,SACL6E,QAAQ,WACRC,MAAM,UACNzB,SAAU3F,EACVqH,QAAS,WACP5H,GAAqB,IANzB,qBAWA,SAACyH,EAAA,EAAD,CACE5E,KAAK,SACL6E,QAAQ,YACRC,MAAM,UACNzB,SAAU3F,IAAe0B,GAJ3B,qBASD1B,IACC,SAACqF,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAf,UACE,SAACwI,EAAA,EAAD,kB,wFC5UVrI,GAAYC,EAAAA,EAAAA,IAAQ,KAAM,CAC9BiJ,qBAAAA,EAAAA,KAGF,GAAejL,EAAAA,EAAAA,IAvDA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,UACRgL,EAAAA,OAqDP,CAAkCnJ,GAlDA,SAAC,GAMN,IAL3BoJ,EAK0B,EAL1BA,kBACAC,EAI0B,EAJ1BA,WACAC,EAG0B,EAH1BA,OACApD,EAE0B,EAF1BA,GACAgD,EAC0B,EAD1BA,qBAEA,GAAwCtI,EAAAA,EAAAA,WAAkB,GAA1D,eAAO2I,EAAP,KAAqBC,EAArB,MAEA7G,EAAAA,EAAAA,YAAU,WACJ4G,GACF3G,EAAAA,EAAAA,OACU,SADV,0BACuC0G,EADvC,sBAC2DpD,IACxDrD,MAAK,SAACC,GACL0G,GAAgB,GAChBJ,GAAkB,MAEnB5F,OAAM,SAACC,GACN+F,GAAgB,GAChBN,EAAqBzF,QAG1B,CAAC8F,EAAcD,EAAQpD,EAAIkD,EAAmBF,IAMjD,OACE,SAACO,EAAA,EAAD,CACEjK,MAAK,wBACLkK,YAAa,SACbC,OAAQN,EACRO,UAAWL,EACXM,UAVoB,WACtBL,GAAgB,IAUdxE,WAAW,SAAC,KAAD,IACXF,QAAS,kBAAMsE,GAAkB,IACjCU,qBACE,UAACC,EAAA,EAAD,mDACsC,4BAAS7D,IAD/C,kBCuPFlG,GAAYC,EAAAA,EAAAA,KAND,SAAC+J,GAAD,MAAsB,CACrCC,QAASD,EAAME,QAAQD,QACvBE,cAAeH,EAAMI,QAAQC,cAAcF,cAC3CG,WAAYN,EAAMI,QAAQC,cAAcC,cAGN,CAClCpB,qBAAAA,EAAAA,KAGF,GAAejL,EAAAA,EAAAA,IA5RA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,0BACRoM,EAAAA,IACAC,EAAAA,IAFO,IAGVC,SAAU,CACRC,UAAW,UAuRjB,CAAkC1K,GA3QL,SAAC,GAMK,IALjCV,EAKgC,EALhCA,QACAqL,EAIgC,EAJhCA,MAEAR,GAEgC,EAHhCjB,qBAGgC,EAFhCiB,eAGA,GADgC,EADhCG,YAEgD1J,EAAAA,EAAAA,WAAkB,IAAlE,eAAOgK,EAAP,KAAyBC,EAAzB,KACA,GAAgDjK,EAAAA,EAAAA,UAA0B,IAA1E,eAAOkK,EAAP,KAAyBC,EAAzB,KACA,GAAgDnK,EAAAA,EAAAA,WAAkB,GAAlE,eAAOoK,EAAP,KAAyBC,EAAzB,KACA,GAAkDrK,EAAAA,EAAAA,WAAkB,GAApE,eAAOsK,EAAP,KAA0BC,EAA1B,KACA,GACEvK,EAAAA,EAAAA,UAA+B,MADjC,eAAOwK,EAAP,KAA8BC,EAA9B,KAEA,GACEzK,EAAAA,EAAAA,WAAkB,GADpB,eAAO0K,EAAP,KAA4BC,EAA5B,KAEA,GAAoC3K,EAAAA,EAAAA,UAAwB,MAA5D,eAAO4K,EAAP,KAAmBC,EAAnB,KAEMnD,EAAaqC,EAAMe,OAAN,WAEbC,GAAwBC,EAAAA,EAAAA,GAActD,EAAY,CACtDuD,EAAAA,GAAAA,kCAGFlJ,EAAAA,EAAAA,YAAU,WACJwH,GACFU,GAAoB,KAErB,CAACV,EAAeU,KAEnBlI,EAAAA,EAAAA,YAAU,WACJiI,IACEe,EACF/I,EAAAA,EAAAA,OACU,MADV,0BACoC0F,EADpC,eAEGzF,MAAK,SAACC,GACL,IAAMgJ,EAAU/I,GAAAA,CAAID,EAAK,YAAa,IAEtCiI,EAAoBe,GAAW,IAC/BjB,GAAoB,MAErBrH,OAAM,SAACC,GACNyG,QAAQ6B,MAAMtI,GACdsH,EAAoB,IACpBF,GAAoB,MAGxBA,GAAoB,MAGvB,CACDD,EACAC,EACAvC,EACAqD,IAGF,IAsDMK,EAAmB,CACvB,CAAEzI,MAAO,KAAM0I,WAAY,MAC3B,CACE1I,MAAO,SACP0I,WAAY,UAEd,CACE1I,MAAO,SACP0I,WAAY,UAEd,CACE1I,MAAO,aACP0I,WAAY,aACZC,eA3CqB,SAACjI,GACxB,OAAIA,EAAWH,KACP,GAAN,OAAUG,EAAWH,KAArB,eAAgCG,EAAWH,KAAO,EAAI,IAAM,IAGtC,yBAApBG,EAAWD,KACN,IAGF,SAAC,IAAD,UAAsBC,EAAWD,SAoCxC,CACET,MAAO,aACP0I,WAAY,aACZC,eApCqB,SAACrI,GACxB,OAAIA,EAAWC,KACP,GAAN,OAAUD,EAAWC,KAArB,eAAgCD,EAAWC,KAAO,EAAI,IAAM,IAGtC,yBAApBD,EAAWG,KACN,IAGF,SAAC,IAAD,UAAsBH,EAAWG,SA6BxC,CACET,MAAO,gBACP0I,WAAY,gBACZC,eA7BuB,SAACC,GAG1B,OAFgBpJ,GAAAA,CAAIoJ,EAAU,2BAA4B,KA6BxDC,kBAAkB,IAIhBC,EAAmB,CACvB,CACEhJ,KAAM,OAEN+E,QAHF,SAGUkE,GACNjB,EAAyBiB,GACzBnB,GAAqB,KAGzB,CACE9H,KAAM,SACN+E,QAFF,SAEUmE,GACNd,EAAcc,GACdhB,GAAuB,IAEzBiB,YAAY,IAIhB,OACE,UAAC,EAAAnF,SAAD,WACG6D,GAAqBE,IACpB,SAAC,EAAD,CACEzK,KAAMuK,EACN1K,qBA1GsB,SAACiM,GAC7BtB,GAAqB,GACrBE,EAAyB,MACrBoB,GACF5B,GAAoB,IAuGhBpK,eAAgB6H,EAChB5H,UAAW0K,IAGdJ,IACC,SAAC,EAAD,CACErK,KAAMqK,EACN1C,WAAYA,EACZ9H,qBA3GqB,SAACiM,GAC5BxB,GAAoB,GAChBwB,GACF5B,GAAoB,MA2GnBS,GAAuBE,IACtB,SAAC,EAAD,CACEtF,GAAIsF,EACJlC,OAAQhB,EACRe,WAAYiC,EACZlC,kBA5GkB,SAACqD,GACzBlB,GAAuB,GACvBE,EAAc,MAEVgB,GACF5B,GAAoB,OA0GpB,UAACzE,EAAA,GAAD,CAAMzG,WAAS,EAAf,WACE,UAACyG,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQkL,YAAtC,WACE,SAACkC,EAAA,EAAD,+BACA,SAACC,EAAA,EAAD,CACEC,OAAQ,CACNf,EAAAA,GAAAA,+BACAA,EAAAA,GAAAA,kBAEFgB,SAAUvE,EACVwE,UAAQ,EACRC,WAAY,CAAErG,UAAU,GAP1B,UASE,SAACsG,EAAA,EAAD,CACEC,QAAS,qBACT7E,QAAS,WACP6C,GAAoB,IAEtBiC,KAAM,qBACNC,MAAM,SAAC,KAAD,IACNhF,MAAM,UACND,QAAS,oBAIf,SAAC9B,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAf,UACE,SAAC8M,EAAA,EAAD,CACEC,OAAQ,CAACf,EAAAA,GAAAA,gCACTgB,SAAUvE,EACVyE,WAAY,CAAErG,UAAU,GAH1B,UAKE,SAAC0G,EAAA,EAAD,CACEC,YAAahB,EACbiB,QAAStB,EACTpC,UAAWgB,EACXkB,QAAShB,EACTyC,WAAW,YACXC,mBAAmB,mCACnBC,QAAQ,KACRC,kBAAmBpO,EAAQmL,gBAI/BG,IACA,UAACxE,EAAA,GAAD,CAAMxG,MAAI,EAACC,GAAI,GAAf,WACE,mBACA,SAAC8N,EAAA,EAAD,CACEnO,MAAO,kBACPD,eAAe,SAAC,KAAD,IACfE,MACE,UAAC,EAAA4H,SAAD,yOAKE,mBACA,kBANF,4BAO4B,KAC1B,cACEuG,KAAK,sGACL9G,OAAO,SACP+G,IAAI,aAHN,2BARF,uB,wOC7ChB,KAAe5P,EAAAA,EAAAA,IA3MA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,0BACR2P,EAAAA,IACAC,EAAAA,IAFO,IAGVC,gBAAiB,CACf3P,OAAQ,oBACR4P,QAAS,GACT9O,OAAQ,IACR+O,UAAW,OACXC,SAAU,WACVC,UAAW,IAEbC,eAAgB,CACdrP,QAAS,OACTD,aAAc,IAEhBuP,SAAU,CACRC,UAAW,SACXC,OAAQ,QACR1P,WAAY,UAwLlB,EApL2B,SAAC,GAUA,IAT1B6I,EASyB,EATzBA,SACAnB,EAQyB,EARzBA,KACAjD,EAOyB,EAPzBA,MAOyB,IANzB0J,QAAAA,OAMyB,MANf,GAMe,MALzBpF,eAAAA,OAKyB,MALR,GAKQ,MAJzBC,iBAAAA,OAIyB,MAJN,GAIM,EAHzBrB,EAGyB,EAHzBA,SAGyB,IAFzBsB,WAAAA,OAEyB,SADzBzI,EACyB,EADzBA,QAEA,GAAsCsB,EAAAA,EAAAA,UAAmB,CAAC,KAA1D,eAAO6N,EAAP,KAAoBC,EAApB,KACA,GAA0C9N,EAAAA,EAAAA,UAAmB,CAAC,KAA9D,eAAO+N,EAAP,KAAsBC,EAAtB,KACMC,GAAaC,EAAAA,EAAAA,cAGnBnM,EAAAA,EAAAA,YAAU,WACR,GACyB,IAAvB8L,EAAYzL,QACO,KAAnByL,EAAY,IACa,IAAzBE,EAAc3L,QACO,KAArB2L,EAAc,IACdhH,GACa,KAAbA,EACA,CACA,IAAMoH,EAAgBpH,EAASqH,MAAM,KACjCC,EAAO,GACPC,EAAS,GAEbH,EAAcI,SAAQ,SAACC,GACrB,IAAMC,EAAeD,EAAQJ,MAAM,KACP,IAAxBK,EAAarM,SACfiM,EAAKK,KAAKD,EAAa,IACvBH,EAAOI,KAAKD,EAAa,QAI7BJ,EAAKK,KAAK,IACVJ,EAAOI,KAAK,IAEZZ,EAAeO,GACfL,EAAiBM,MAElB,CAACT,EAAaE,EAAehH,KAGhChF,EAAAA,EAAAA,YAAU,WACR,IAAM4M,EAAYV,EAAWW,QACzBD,GAAad,EAAYzL,OAAS,GACpCuM,EAAUE,gBAAe,KAG1B,CAAChB,IAGJ,IAAMiB,GAAcC,EAAAA,EAAAA,SAAO,IAC3BC,EAAAA,EAAAA,kBAAgB,WACVF,EAAYF,QACdE,EAAYF,SAAU,EAGxBK,MAEC,CAACpB,EAAaE,IAGjB,IAiBMmB,EAAc,SAAC1K,GACnBA,EAAE2K,UAEF,IAAIC,GAAc,OAAOvB,GAEzBuB,EADcjN,GAAAA,CAAIqC,EAAE0B,OAAQ,gBAAiB,IACrB1B,EAAE0B,OAAOxD,MAEjCoL,EAAesB,IAGXC,EAAgB,SAAC7K,GACrBA,EAAE2K,UAEF,IAAIC,GAAc,OAAOrB,GAEzBqB,EADcjN,GAAAA,CAAIqC,EAAE0B,OAAQ,gBAAiB,IACrB1B,EAAE0B,OAAOxD,MAEjCsL,EAAiBoB,IAIbH,EAAoBK,GAAAA,EAAS,WACjC,IAAIC,EAAc,GAElB1B,EAAYU,SAAQ,SAACiB,EAAQzL,GAC3B,GAAI8J,EAAY9J,IAAUgK,EAAchK,GAAQ,CAC9C,IAAI0L,EAAY,UAAMD,EAAN,YAAgBzB,EAAchK,IAChC,IAAVA,IACF0L,EAAY,WAAOA,IAErBF,EAAW,UAAMA,GAAN,OAAoBE,OAInC5J,EAAS0J,KACR,KAEGG,EAAS3B,EAAczL,KAAI,SAACkM,EAASzK,GACzC,OACE,UAAC,KAAD,CACE/E,MAAI,EACJC,GAAI,GACJH,UAAWJ,EAAQ+O,eAHrB,WAME,SAAC,IAAD,CACEnI,GAAE,UAAKM,EAAL,gBAAiB7B,EAAMZ,YACzBR,MAAO,GACPiD,KAAI,UAAKA,EAAL,YAAa7B,EAAMZ,YACvBT,MAAOmL,EAAY9J,GACnB8B,SAAUqJ,EACVnL,MAAOA,EACP4C,YAAaM,KAEf,iBAAMnI,UAAWJ,EAAQgP,SAAzB,gBACA,SAAC,IAAD,CACEpI,GAAE,UAAKM,EAAL,kBAAmB7B,EAAMZ,YAC3BR,MAAO,GACPiD,KAAI,UAAKA,EAAL,YAAa7B,EAAMZ,YACvBT,MAAOqL,EAAchK,GACrB8B,SAAUwJ,EACVtL,MAAOA,EACP4C,YAAaO,EACbyI,YAAa5L,IAAUgK,EAAc3L,OAAS,GAAI,SAAC,IAAD,IAAc,KAChEwN,cAAe,YAjFF,WACnB,GACiD,KAA/C/B,EAAYA,EAAYzL,OAAS,GAAGyN,QACe,KAAnD9B,EAAcA,EAAc3L,OAAS,GAAGyN,OACxC,CACA,IAAMC,GAAQ,OAAOjC,GACfkC,GAAU,OAAOhC,GAEvB+B,EAASpB,KAAK,IACdqB,EAAWrB,KAAK,IAEhBZ,EAAegC,GACf9B,EAAiB+B,IAsEXC,QA1BN,qBAIqBpK,EAJrB,YAI6B7B,EAAMZ,gBA6BvC,OACE,SAAC,WAAD,WACE,UAAC,KAAD,CAAMnE,MAAI,EAACC,GAAI,GAAIH,UAAWJ,EAAQuR,eAAtC,WACE,UAAC,IAAD,CAAYnR,UAAWJ,EAAQwR,WAA/B,WACE,0BAAOvN,IACM,KAAZ0J,IACC,gBAAKvN,UAAWJ,EAAQyR,iBAAxB,UACE,SAAC,IAAD,CAASvR,MAAOyN,EAAS+D,UAAU,YAAnC,UACE,SAAC,IAAD,CAAUtR,UAAWJ,EAAQ2N,kBAKrC,UAAC,KAAD,CACErN,MAAI,EACJC,GAAI,GACJH,UAAS,UAAKqI,EAAazI,EAAQ0O,gBAAkB,IAHvD,UAKGsC,GACD,gBAAKW,IAAKpC,gB,qNC1KdqC,GAAcC,EAAAA,EAAAA,IAAW,QAC7B/S,KAAM,CACJ,UAAW,CACTG,gBAAiB,iBAGlB6S,EAAAA,KAGCC,EAAc,SAACC,GACnB,IAAMhS,EAAU4R,IAEhB,OACE,SAAC,KAAD,QACExR,UAAWJ,EAAQlB,KACnBmT,eAAa,EACbpJ,MAAM,UACNqJ,aAAa,iBAAM9R,UAAWJ,EAAQmS,oBACtCtE,MAAM,iBAAMzN,UAAWJ,EAAQoS,uBAC3BJ,KAgEV,KAAerT,EAAAA,EAAAA,IA9GA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,0BACR2P,EAAAA,IACAC,EAAAA,IAFO,IAGV4D,YAAa,CACX,iBAAkB,CAChB,+BAAgC,CAC9BxJ,MAAO,YAGX,eAAgB,CACdjJ,YAAa,GAEf,+BAAgC,CAC9BL,SAAU,GACVsJ,MAAO,YAGXyJ,cAAe,CACb,+BAAgC,CAC9B/S,SAAU,GACVsJ,MAAO,UACPrJ,WAAY,WAwFpB,EA3DkC,SAAC,GAWX,IAAD,IAVrBqI,gBAAAA,OAUqB,MAVH,GAUG,EATrBD,EASqB,EATrBA,iBACA3D,EAQqB,EARrBA,MACA2C,EAOqB,EAPrBA,GACAM,EAMqB,EANrBA,KACAC,EAKqB,EALrBA,SAKqB,IAJrBwG,QAAAA,OAIqB,MAJX,GAIW,MAHrB7F,eAAAA,OAGqB,SAFrB9H,EAEqB,EAFrBA,QAEqB,IADrBuS,gBAAAA,OACqB,SACrB,OACE,UAAC,KAAD,CAAMlS,WAAS,EAACV,WAAY,SAA5B,WACE,SAAC,KAAD,CAAMW,MAAI,EAACC,IAAE,EAAb,UACE,UAAC,IAAD,CAAYiS,QAAS5L,EAAIxG,UAAWJ,EAAQwR,WAA5C,WACE,0BAAOvN,IACM,KAAZ0J,IACC,gBAAKvN,UAAWJ,EAAQyR,iBAAxB,UACE,SAAC,IAAD,CAASvR,MAAOyN,EAAS+D,UAAU,YAAnC,UACE,0BACE,SAAC,IAAD,gBAOZ,SAAC,KAAD,CAAMpR,MAAI,EAACC,IAAE,EAACH,UAAWJ,EAAQyS,mBAAjC,UACE,SAAC,IAAD,CACE,aAAY7L,EACZA,GAAIA,EACJM,KAAMA,EACNlD,MAAO4D,EACPT,SAAUA,EACVuL,KAAMH,EACNI,MAAO,CAAEjT,QAAS,QAAS2J,UAAW,SAPxC,SASGxB,EAAgBjE,KAAI,SAACgP,GACpB,OACE,SAAC,IAAD,CAEE5O,MAAO4O,EAAe5O,MACtB6O,SAAS,SAACd,EAAD,IACT9N,MAAO2O,EAAe3O,MACtBmD,SAAUU,EACV1H,WAAW0S,EAAAA,EAAAA,GAAK9S,EAAQqS,aAAT,UACZrS,EAAQsS,cACPM,EAAe5O,QAAU4D,KAR/B,aACaV,EADb,YACqB0L,EAAe5O,sB,+LChBlD,KAAerF,EAAAA,EAAAA,IA1GA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,UACRkU,EAAAA,OAwGP,EArFsB,SAAC,GAcI,IAAD,IAbxB1I,OAAAA,OAawB,SAZxB7E,EAYwB,EAZxBA,QACAwN,EAWwB,EAXxBA,SACAzI,EAUwB,EAVxBA,UAUwB,IATxBvK,QAAAA,OASwB,MATd,GASc,MARxBE,MAAAA,OAQwB,MARhB,GAQgB,EAPxBoK,EAOwB,EAPxBA,UACAE,EAMwB,EANxBA,oBAMwB,IALxByI,WAAAA,OAKwB,MALX,SAKW,MAJxB7I,YAAAA,OAIwB,MAJV,UAIU,MAHxB8I,mBAAAA,OAGwB,MAHH,GAGG,MAFxBC,kBAAAA,OAEwB,MAFJ,GAEI,MADxBzN,UAAAA,OACwB,MADZ,KACY,EACxB,OACE,UAAC,IAAD,CACErE,KAAMgJ,EACN7E,QAAS,SAACO,EAAOqN,GACA,kBAAXA,GACF5N,KAGJpF,UAAWJ,EAAQlB,KACnBuU,GAAI,CACF,mBAAoB,CAClB1E,QAAS,wBAVf,WAcE,UAAC,IAAD,CAAavO,UAAWJ,EAAQE,MAAhC,WACE,iBAAKE,UAAWJ,EAAQsT,UAAxB,UACG5N,EADH,IACexF,MAEf,gBAAKE,UAAWJ,EAAQuT,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACXnT,UAAWJ,EAAQwT,YACnB1K,QAAStD,EACTyM,eAAa,EACbwB,KAAK,QALP,UAOE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAerT,UAAWJ,EAAQ0T,QAAlC,SACGlJ,KAEH,UAAC,IAAD,CAAepK,UAAWJ,EAAQ2T,QAAlC,WACE,SAAC,KAAD,gBACEvT,UAAWJ,EAAQ4T,aACnB9K,QAASkK,GAAYxN,EACrB4B,SAAUkD,EACVvG,KAAK,UACDoP,GALN,IAMEvK,QAAQ,WACRC,MAAM,UACNjC,GAAI,iBARN,SAUGqM,MAGH,SAAC,KAAD,gBACE7S,UAAWJ,EAAQ6T,cACnB9P,KAAK,SACL+E,QAASyB,EACTuJ,QAASxJ,EACTlD,SAAUkD,EACV1B,QAAQ,WACRC,MAAM,YACNkL,gBAAgB,QAChBC,WAAW,SAAC,WAAD,IACXC,WAAS,EACTrN,GAAI,cACAsM,GAZN,aAcG9I,e,qNC6DL1J,GAAYC,EAAAA,EAAAA,KAJD,SAAC+J,GAAD,MAAsB,CACrCwJ,kBAAmBxJ,EAAMyJ,OAAOC,iBAGE,CAClCC,qBAAAA,EAAAA,KAGF,KAAe1V,EAAAA,EAAAA,IAvIA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACRkU,EAAAA,IADO,IAEVW,QAAS,CACP/E,QAAS,GACTvP,cAAe,GAEjBkV,iBAAkB,CAChBxU,MAAO,OACPyU,SAAU,MAETC,EAAAA,OA4HP,CAAkC9T,GAzHb,SAAC,GAWF,IAVlB8E,EAUiB,EAVjBA,QACAC,EASiB,EATjBA,UACAvF,EAQiB,EARjBA,MACAuU,EAOiB,EAPjBA,SACAzU,EAMiB,EANjBA,QAMiB,IALjB0U,UAAAA,OAKiB,SAJjBR,EAIiB,EAJjBA,kBACAS,EAGiB,EAHjBA,iBACAN,EAEiB,EAFjBA,qBAEiB,IADjB3O,UAAAA,OACiB,MADL,KACK,EACjB,GAAwCpE,EAAAA,EAAAA,WAAkB,GAA1D,eAAOsT,EAAP,KAAqBC,EAArB,MAEAxR,EAAAA,EAAAA,YAAU,WACRgR,EAAqB,MACpB,CAACA,KAEJhR,EAAAA,EAAAA,YAAU,WACR,GAAI6Q,EAAmB,CACrB,GAAkC,KAA9BA,EAAkBY,QAEpB,YADAD,GAAgB,GAIa,UAA3BX,EAAkBnQ,MACpB8Q,GAAgB,MAGnB,CAACX,IAEJ,IAKMa,EAAaL,EACf,CACE1U,QAAS,CACPgV,MAAOhV,EAAQsU,mBAGnB,CAAEC,SAAU,KAAeU,WAAW,GAEtCH,EAAU,GAYd,OAVIZ,IACFY,EAAUZ,EAAkBgB,kBAEa,KAAvChB,EAAkBgB,kBAClBhB,EAAkBgB,iBAAiBxR,OAAS,KAE5CoR,EAAUZ,EAAkBY,WAK9B,UAAC,KAAD,gBACEzT,KAAMoE,EACNzF,QAASA,GACL+U,GAHN,IAIEI,OAAQ,QACR3P,QAAS,SAACO,EAAOqN,GACA,kBAAXA,GACF5N,KAGJpF,UAAWJ,EAAQlB,KAVrB,WAYE,UAAC,IAAD,CAAasB,UAAWJ,EAAQE,MAAhC,WACE,iBAAKE,UAAWJ,EAAQsT,UAAxB,UACG5N,EADH,IACexF,MAEf,gBAAKE,UAAWJ,EAAQuT,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACX3M,GAAI,QACJxG,UAAWJ,EAAQwT,YACnB1K,QAAStD,EACTyM,eAAa,EACbwB,KAAK,QANP,UAQE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAW2B,SAAS,KACpB,SAAC,IAAD,CACE/T,KAAMuT,EACNxU,UAAWJ,EAAQqV,cACnB7P,QAAS,WA3DbqP,GAAgB,GAChBR,EAAqB,KA6DjBS,QAASA,EACTQ,aAAc,CACZlV,UAAU,GAAD,OAAKJ,EAAQuV,SAAb,YACPrB,GAAgD,UAA3BA,EAAkBnQ,KACnC/D,EAAQwV,cACR,KAGRC,iBACEvB,GAAgD,UAA3BA,EAAkBnQ,KAAmB,IAAQ,OAGtE,SAAC,IAAD,CAAe3D,UAAWuU,EAAmB,GAAK3U,EAAQ0T,QAA1D,SACGe,a,iFC/HT,KAAe9V,EAAAA,EAAAA,IAlBA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,KAAM,CACJ6P,QAAS,EACTO,OAAQ,EACR3P,SAAU,aAahB,EAJmB,SAAC,GAAwC,IAAtCS,EAAqC,EAArCA,QAASyU,EAA4B,EAA5BA,SAC7B,OAAO,eAAIrU,UAAWJ,EAAQlB,KAAvB,SAA8B2V,Q,uCCnCnCiB,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,mBACD,iBAEJN,EAAQ,EAAUG,G,uCCfdL,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,mBACD,eAEJN,EAAQ,EAAUG,G,uCCfdL,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,sEACD,cAEJN,EAAQ,EAAUG,G,sBCjBlB,IAAII,EAAaR,EAAQ,OACrBS,EAAUT,EAAQ,OAClBU,EAAeV,EAAQ,OA2B3BW,EAAOV,QALP,SAAkB5R,GAChB,MAAuB,iBAATA,IACVoS,EAAQpS,IAAUqS,EAAarS,IArBrB,mBAqB+BmS,EAAWnS","sources":["common/HelpBox.tsx","screens/Console/Buckets/BucketDetails/EditLifecycleConfiguration.tsx","screens/Console/Buckets/BucketDetails/AddLifecycleModal.tsx","screens/Console/Buckets/BucketDetails/DeleteBucketLifecycleRule.tsx","screens/Console/Buckets/BucketDetails/BucketLifecyclePanel.tsx","screens/Console/Common/FormComponents/QueryMultiSelector/QueryMultiSelector.tsx","screens/Console/Common/FormComponents/RadioGroupSelector/RadioGroupSelector.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PanelTitle/PanelTitle.tsx","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/lodash/isString.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, LinearProgress, SelectChangeEvent } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { LifeCycleItem } from \"../types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { LifecycleConfigIcon } from \"../../../../icons\";\nimport { ITiersDropDown } from \"./AddLifecycleModal\";\nimport {\n ITierElement,\n ITierResponse,\n} from \"../../Configurations/TiersConfiguration/types\";\nimport api from \"../../../../common/api\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport QueryMultiSelector from \"../../Common/FormComponents/QueryMultiSelector/QueryMultiSelector\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateSelector: {\n \"& div\": {\n borderBottom: 0,\n marginBottom: 0,\n\n \"& div:nth-child(2)\": {\n border: \"1px solid #EAEAEA\",\n paddingLeft: 5,\n\n \"& div\": {\n border: 0,\n },\n },\n },\n },\n ...spacingUtils,\n ...modalStyleUtils,\n ...formFieldStyles,\n ...createTenantCommon,\n });\n\ninterface IAddUserContentProps {\n classes: any;\n closeModalAndRefresh: (reload: boolean) => void;\n selectedBucket: string;\n lifecycle: LifeCycleItem;\n open: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst EditLifecycleConfiguration = ({\n classes,\n closeModalAndRefresh,\n selectedBucket,\n lifecycle,\n open,\n setModalErrorSnackMessage,\n}: IAddUserContentProps) => {\n const [loadingTiers, setLoadingTiers] = useState(true);\n const [addLoading, setAddLoading] = useState(false);\n const [tags, setTags] = useState(\"\");\n const [enabled, setEnabled] = useState(false);\n const [tiersList, setTiersList] = useState([]);\n const [prefix, setPrefix] = useState(\"\");\n const [storageClass, setStorageClass] = useState(\"\");\n const [NCTransitionSC, setNCTransitionSC] = useState(\"\");\n const [expiredObjectDM, setExpiredObjectDM] = useState(false);\n const [NCExpirationDays, setNCExpirationDays] = useState(\"0\");\n const [NCTransitionDays, setNCTransitionDays] = useState(\"0\");\n const [ilmType, setIlmType] = useState(\"expiry\");\n const [expiryDays, setExpiryDays] = useState(\"0\");\n const [transitionDays, setTransitionDays] = useState(\"0\");\n const [isFormValid, setIsFormValid] = useState(false);\n\n useEffect(() => {\n if (loadingTiers) {\n api\n .invoke(\"GET\", `/api/v1/admin/tiers`)\n .then((res: ITierResponse) => {\n const tiersList: ITierElement[] | null = get(res, \"items\", []);\n\n if (tiersList !== null && tiersList.length >= 1) {\n const objList = tiersList.map((tier: ITierElement) => {\n const tierType = tier.type;\n const value = get(tier, `${tierType}.name`, \"\");\n\n return { label: value, value: value };\n });\n\n setTiersList(objList);\n if (objList.length > 0) {\n setStorageClass(objList[0].value);\n }\n }\n setLoadingTiers(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingTiers(false);\n });\n }\n }, [loadingTiers]);\n\n useEffect(() => {\n let valid = true;\n\n if (ilmType !== \"expiry\") {\n if (storageClass === \"\") {\n valid = false;\n }\n }\n setIsFormValid(valid);\n }, [ilmType, expiryDays, transitionDays, storageClass]);\n\n useEffect(() => {\n if (lifecycle.status === \"Enabled\") {\n setEnabled(true);\n }\n\n let transitionMode = false;\n\n if (lifecycle.transition) {\n if (lifecycle.transition.days && lifecycle.transition.days !== 0) {\n setTransitionDays(lifecycle.transition.days.toString());\n setIlmType(\"transition\");\n transitionMode = true;\n }\n\n // Fallback to old rules by date\n if (\n lifecycle.transition.date &&\n lifecycle.transition.date !== \"0001-01-01T00:00:00Z\"\n ) {\n setIlmType(\"transition\");\n transitionMode = true;\n }\n }\n\n if (lifecycle.expiration) {\n if (lifecycle.expiration.days && lifecycle.expiration.days !== 0) {\n setExpiryDays(lifecycle.expiration.days.toString());\n setIlmType(\"expiry\");\n transitionMode = false;\n }\n\n // Fallback to old rules by date\n if (\n lifecycle.expiration.date &&\n lifecycle.expiration.date !== \"0001-01-01T00:00:00Z\"\n ) {\n setIlmType(\"expiry\");\n transitionMode = false;\n }\n }\n\n // Transition fields\n if (transitionMode) {\n setStorageClass(lifecycle.transition?.storage_class || \"\");\n setNCTransitionDays(\n lifecycle.transition?.noncurrent_transition_days?.toString() || \"0\"\n );\n setNCTransitionSC(lifecycle.transition?.noncurrent_storage_class || \"\");\n } else {\n // Expiry fields\n setNCExpirationDays(\n lifecycle.expiration?.noncurrent_expiration_days?.toString() || \"0\"\n );\n }\n\n setExpiredObjectDM(!!lifecycle.expiration?.delete_marker);\n setPrefix(lifecycle.prefix || \"\");\n\n if (lifecycle.tags) {\n const tgs = lifecycle.tags.reduce(\n (stringLab: string, currItem: any, index: number) => {\n return `${stringLab}${index !== 0 ? \"&\" : \"\"}${currItem.key}=${\n currItem.value\n }`;\n },\n \"\"\n );\n\n setTags(tgs);\n }\n }, [lifecycle]);\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (selectedBucket !== null && lifecycle !== null) {\n let rules = {};\n\n if (ilmType === \"expiry\") {\n let expiry = {\n expiry_days: parseInt(expiryDays),\n };\n\n rules = {\n ...expiry,\n noncurrentversion_expiration_days: parseInt(NCExpirationDays),\n };\n } else {\n let transition = {\n transition_days: parseInt(transitionDays),\n };\n\n rules = {\n ...transition,\n noncurrentversion_transition_days: parseInt(NCTransitionDays),\n noncurrentversion_transition_storage_class: NCTransitionSC,\n storage_class: storageClass,\n };\n }\n\n const lifecycleUpdate = {\n type: ilmType,\n disable: !enabled,\n prefix,\n tags,\n expired_object_delete_marker: expiredObjectDM,\n ...rules,\n };\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${selectedBucket}/lifecycle/${lifecycle.id}`,\n lifecycleUpdate\n )\n .then((res) => {\n setAddLoading(false);\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n }\n };\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n modalOpen={open}\n title={\"Edit Lifecycle Configuration\"}\n titleIcon={}\n >\n ) => {\n saveRecord(e);\n }}\n >\n \n \n \n {}}\n disabled\n />\n \n \n {\n setEnabled(e.target.checked);\n }}\n />\n \n \n
    \n \n Lifecycle Configuration\n \n\n \n {}}\n disableOptions\n />\n \n {ilmType === \"expiry\" ? (\n \n \n ) => {\n setExpiryDays(e.target.value);\n }}\n label=\"Expiry Days\"\n value={expiryDays}\n min=\"0\"\n />\n \n\n \n ) => {\n setNCExpirationDays(e.target.value);\n }}\n label=\"Non-current Expiration Days\"\n value={NCExpirationDays}\n min=\"0\"\n />\n \n \n ) : (\n \n \n ) => {\n setTransitionDays(e.target.value);\n }}\n label=\"Transition Days\"\n value={transitionDays}\n min=\"0\"\n />\n \n \n ) => {\n setNCTransitionDays(e.target.value);\n }}\n label=\"Non-current Transition Days\"\n value={NCTransitionDays}\n min=\"0\"\n />\n \n \n ) => {\n setNCTransitionSC(e.target.value);\n }}\n placeholder=\"Set Non-current Version Transition Storage Class\"\n label=\"Non-current Version Transition Storage Class\"\n value={NCTransitionSC}\n />\n \n \n ) => {\n setStorageClass(e.target.value as string);\n }}\n options={tiersList}\n />\n \n \n )}\n
    \n
    \n \n
    \n \n File Configuration\n \n\n \n ) => {\n setPrefix(e.target.value);\n }}\n label=\"Prefix\"\n value={prefix}\n />\n \n \n {\n setTags(vl);\n }}\n keyPlaceholder=\"Tag Key\"\n valuePlaceholder=\"Tag Value\"\n withBorder\n />\n \n \n ) => {\n setExpiredObjectDM(event.target.checked);\n }}\n label={\"Expired Object Delete Marker\"}\n />\n \n
    \n
    \n
    \n \n {\n closeModalAndRefresh(false);\n }}\n >\n Cancel\n \n \n Save\n \n \n {addLoading && (\n \n \n \n )}\n
    \n \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(EditLifecycleConfiguration));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, LinearProgress, SelectChangeEvent } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport {\n ITierElement,\n ITierResponse,\n} from \"../../Configurations/TiersConfiguration/types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../../common/api\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport QueryMultiSelector from \"../../Common/FormComponents/QueryMultiSelector/QueryMultiSelector\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { LifecycleConfigIcon } from \"../../../../icons\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IReplicationModal {\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => any;\n classes: any;\n bucketName: string;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nexport interface ITiersDropDown {\n label: string;\n value: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateSelector: {\n \"& div\": {\n borderBottom: 0,\n marginBottom: 0,\n\n \"& div:nth-child(2)\": {\n border: \"1px solid #EAEAEA\",\n paddingLeft: 5,\n\n \"& div\": {\n border: 0,\n },\n },\n },\n },\n ...spacingUtils,\n ...modalStyleUtils,\n ...formFieldStyles,\n ...createTenantCommon,\n });\n\nconst AddLifecycleModal = ({\n open,\n closeModalAndRefresh,\n classes,\n bucketName,\n setModalErrorSnackMessage,\n}: IReplicationModal) => {\n const [loadingTiers, setLoadingTiers] = useState(true);\n const [tiersList, setTiersList] = useState([]);\n const [addLoading, setAddLoading] = useState(false);\n const [prefix, setPrefix] = useState(\"\");\n const [tags, setTags] = useState(\"\");\n const [storageClass, setStorageClass] = useState(\"\");\n const [NCExpirationDays, setNCExpirationDays] = useState(\"\");\n const [NCTransitionDays, setNCTransitionDays] = useState(\"\");\n const [ilmType, setIlmType] = useState(\"expiry\");\n const [expiryDays, setExpiryDays] = useState(\"\");\n const [transitionDays, setTransitionDays] = useState(\"\");\n const [isFormValid, setIsFormValid] = useState(false);\n\n useEffect(() => {\n if (loadingTiers) {\n api\n .invoke(\"GET\", `/api/v1/admin/tiers`)\n .then((res: ITierResponse) => {\n const tiersList: ITierElement[] | null = get(res, \"items\", []);\n\n if (tiersList !== null && tiersList.length >= 1) {\n const objList = tiersList.map((tier: ITierElement) => {\n const tierType = tier.type;\n const value = get(tier, `${tierType}.name`, \"\");\n\n return { label: value, value: value };\n });\n\n setTiersList(objList);\n if (objList.length > 0) {\n setStorageClass(objList[0].value);\n }\n }\n setLoadingTiers(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingTiers(false);\n });\n }\n }, [loadingTiers]);\n\n useEffect(() => {\n let valid = true;\n\n if (ilmType !== \"expiry\") {\n if (storageClass === \"\") {\n valid = false;\n }\n }\n setIsFormValid(valid);\n }, [ilmType, expiryDays, transitionDays, storageClass]);\n\n const addRecord = () => {\n let rules = {};\n\n let markerOn = false;\n\n if (ilmType === \"expiry\") {\n let expiry = {\n expiry_days: parseInt(expiryDays),\n };\n\n if (parseInt(expiryDays) > 0 && parseInt(NCExpirationDays) > 0) {\n markerOn = true;\n }\n\n rules = {\n ...expiry,\n noncurrentversion_expiration_days: parseInt(NCExpirationDays),\n };\n } else {\n let transition = {\n transition_days: parseInt(transitionDays),\n };\n\n if (parseInt(transitionDays) > 0 && parseInt(NCTransitionDays) > 0) {\n markerOn = true;\n }\n\n rules = {\n ...transition,\n noncurrentversion_transition_days: parseInt(NCTransitionDays),\n storage_class: storageClass,\n };\n }\n\n const lifecycleInsert = {\n type: ilmType,\n prefix,\n tags,\n expired_object_delete_marker: markerOn,\n ...rules,\n };\n\n api\n .invoke(\n \"POST\",\n `/api/v1/buckets/${bucketName}/lifecycle`,\n lifecycleInsert\n )\n .then(() => {\n setAddLoading(false);\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n title=\"Add Lifecycle Rule\"\n titleIcon={}\n >\n {loadingTiers && (\n \n \n \n \n \n )}\n\n {!loadingTiers && (\n ) => {\n e.preventDefault();\n setAddLoading(true);\n addRecord();\n }}\n >\n \n \n \n \n \n ) => {\n setIlmType(e.target.value as string);\n }}\n selectorOptions={[\n { value: \"expiry\", label: \"Expiry\" },\n { value: \"transition\", label: \"Transition\" },\n ]}\n />\n \n \n {ilmType === \"expiry\" ? (\n \n \n \n ) => {\n if (e.target.validity.valid) {\n setExpiryDays(e.target.value);\n }\n }}\n pattern={\"[0-9]*\"}\n label=\"Delete Latest Version After\"\n value={expiryDays}\n overlayObject={\n \n }\n />\n \n\n \n \n ) => {\n if (e.target.validity.valid) {\n setNCExpirationDays(e.target.value);\n }\n }}\n pattern={\"[0-9]*\"}\n label=\"Delete Older Versions After\"\n value={NCExpirationDays}\n min=\"0\"\n overlayObject={\n \n }\n />\n \n \n ) : (\n \n \n ) => {\n setStorageClass(e.target.value as string);\n }}\n options={tiersList}\n />\n \n \n \n ) => {\n if (e.target.validity.valid) {\n setTransitionDays(e.target.value);\n }\n }}\n pattern={\"[0-9]*\"}\n label=\"Transition Latest Version\"\n value={transitionDays}\n min=\"0\"\n overlayObject={\n \n }\n />\n \n \n \n ) => {\n if (e.target.validity.valid) {\n setNCTransitionDays(e.target.value);\n }\n }}\n label=\"Transition Older Versions\"\n value={NCTransitionDays}\n pattern={\"[0-9]*\"}\n overlayObject={\n \n }\n />\n \n \n )}\n \n \n \n
    \n Filters\n\n \n ) => {\n setPrefix(e.target.value);\n }}\n label=\"Prefix\"\n value={prefix}\n />\n \n \n {\n setTags(vl);\n }}\n keyPlaceholder=\"Tag Key\"\n valuePlaceholder=\"Tag Value\"\n withBorder\n />\n \n
    \n
    \n
    \n \n {\n closeModalAndRefresh(false);\n }}\n >\n Cancel\n \n \n Save\n \n \n {addLoading && (\n \n \n \n )}\n
    \n \n )}\n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(AddLifecycleModal));\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, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { modalBasic } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport api from \"../../../../common/api\";\n\ninterface IDeleteLifecycleRule {\n deleteOpen: boolean;\n onCloseAndRefresh: (refresh: boolean) => any;\n bucket: string;\n id: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n });\n\nconst DeleteBucketLifecycleRule = ({\n onCloseAndRefresh,\n deleteOpen,\n bucket,\n id,\n setErrorSnackMessage,\n}: IDeleteLifecycleRule) => {\n const [deletingRule, setDeletingRule] = useState(false);\n\n useEffect(() => {\n if (deletingRule) {\n api\n .invoke(\"DELETE\", `/api/v1/buckets/${bucket}/lifecycle/${id}`)\n .then((res) => {\n setDeletingRule(false);\n onCloseAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setDeletingRule(false);\n setErrorSnackMessage(err);\n });\n }\n }, [deletingRule, bucket, id, onCloseAndRefresh, setErrorSnackMessage]);\n\n const onConfirmDelete = () => {\n setDeletingRule(true);\n };\n\n return (\n }\n onClose={() => onCloseAndRefresh(false)}\n confirmationContent={\n \n Are you sure you want to delete the {id} rule?\n \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(DeleteBucketLifecycleRule));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport get from \"lodash/get\";\nimport * as reactMoment from \"react-moment\";\nimport Grid from \"@mui/material/Grid\";\nimport { BucketInfo, LifeCycleItem } from \"../types\";\nimport { AddIcon, TiersIcon } from \"../../../../icons\";\nimport {\n actionsTray,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport EditLifecycleConfiguration from \"./EditLifecycleConfiguration\";\nimport AddLifecycleModal from \"./AddLifecycleModal\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport PanelTitle from \"../../Common/PanelTitle/PanelTitle\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport RBIconButton from \"./SummaryItems/RBIconButton\";\nimport DeleteBucketLifecycleRule from \"./DeleteBucketLifecycleRule\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...searchField,\n ...actionsTray,\n twHeight: {\n minHeight: 400,\n },\n });\n\ninterface IBucketLifecyclePanelProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n loadingBucket: boolean;\n bucketInfo: BucketInfo | null;\n}\n\nconst BucketLifecyclePanel = ({\n classes,\n match,\n setErrorSnackMessage,\n loadingBucket,\n bucketInfo,\n}: IBucketLifecyclePanelProps) => {\n const [loadingLifecycle, setLoadingLifecycle] = useState(true);\n const [lifecycleRecords, setLifecycleRecords] = useState([]);\n const [addLifecycleOpen, setAddLifecycleOpen] = useState(false);\n const [editLifecycleOpen, setEditLifecycleOpen] = useState(false);\n const [selectedLifecycleRule, setSelectedLifecycleRule] =\n useState(null);\n const [deleteLifecycleOpen, setDeleteLifecycleOpen] =\n useState(false);\n const [selectedID, setSelectedID] = useState(null);\n\n const bucketName = match.params[\"bucketName\"];\n\n const displayLifeCycleRules = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_LIFECYCLE_CONFIGURATION,\n ]);\n\n useEffect(() => {\n if (loadingBucket) {\n setLoadingLifecycle(true);\n }\n }, [loadingBucket, setLoadingLifecycle]);\n\n useEffect(() => {\n if (loadingLifecycle) {\n if (displayLifeCycleRules) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/lifecycle`)\n .then((res: any) => {\n const records = get(res, \"lifecycle\", []);\n\n setLifecycleRecords(records || []);\n setLoadingLifecycle(false);\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n setLifecycleRecords([]);\n setLoadingLifecycle(false);\n });\n } else {\n setLoadingLifecycle(false);\n }\n }\n }, [\n loadingLifecycle,\n setLoadingLifecycle,\n bucketName,\n displayLifeCycleRules,\n ]);\n\n const closeEditLCAndRefresh = (refresh: boolean) => {\n setEditLifecycleOpen(false);\n setSelectedLifecycleRule(null);\n if (refresh) {\n setLoadingLifecycle(true);\n }\n };\n\n const closeAddLCAndRefresh = (refresh: boolean) => {\n setAddLifecycleOpen(false);\n if (refresh) {\n setLoadingLifecycle(true);\n }\n };\n\n const closeDelLCRefresh = (refresh: boolean) => {\n setDeleteLifecycleOpen(false);\n setSelectedID(null);\n\n if (refresh) {\n setLoadingLifecycle(true);\n }\n };\n\n const expirationRender = (expiration: any) => {\n if (expiration.days) {\n return `${expiration.days} day${expiration.days > 1 ? \"s\" : \"\"}`;\n }\n\n if (expiration.date === \"0001-01-01T00:00:00Z\") {\n return \"\";\n }\n\n return {expiration.date};\n };\n\n const transitionRender = (transition: any) => {\n if (transition.days) {\n return `${transition.days} day${transition.days > 1 ? \"s\" : \"\"}`;\n }\n\n if (transition.date === \"0001-01-01T00:00:00Z\") {\n return \"\";\n }\n\n return {transition.date};\n };\n\n const renderStorageClass = (objectST: any) => {\n const stClass = get(objectST, \"transition.storage_class\", \"\");\n\n return stClass;\n };\n\n const lifecycleColumns = [\n { label: \"ID\", elementKey: \"id\" },\n {\n label: \"Prefix\",\n elementKey: \"prefix\",\n },\n {\n label: \"Status\",\n elementKey: \"status\",\n },\n {\n label: \"Expiration\",\n elementKey: \"expiration\",\n renderFunction: expirationRender,\n },\n {\n label: \"Transition\",\n elementKey: \"transition\",\n renderFunction: transitionRender,\n },\n {\n label: \"Storage Class\",\n elementKey: \"storage_class\",\n renderFunction: renderStorageClass,\n renderFullObject: true,\n },\n ];\n\n const lifecycleActions = [\n {\n type: \"view\",\n\n onClick(valueToSend: any): any {\n setSelectedLifecycleRule(valueToSend);\n setEditLifecycleOpen(true);\n },\n },\n {\n type: \"delete\",\n onClick(valueToDelete: string): any {\n setSelectedID(valueToDelete);\n setDeleteLifecycleOpen(true);\n },\n sendOnlyId: true,\n },\n ];\n\n return (\n \n {editLifecycleOpen && selectedLifecycleRule && (\n \n )}\n {addLifecycleOpen && (\n \n )}\n {deleteLifecycleOpen && selectedID && (\n \n )}\n \n \n Lifecycle Rules\n \n {\n setAddLifecycleOpen(true);\n }}\n text={\"Add Lifecycle Rule\"}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n \n \n \n \n \n \n {!loadingLifecycle && (\n \n
    \n }\n help={\n \n MinIO Object Lifecycle Management allows creating rules for\n time or date based automatic transition or expiry of objects.\n For object transition, MinIO automatically moves the object to\n a configured remote storage tier.\n
    \n
    \n You can learn more at our{\" \"}\n \n documentation\n \n .\n
    \n }\n />\n
    \n )}\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n session: state.console.session,\n loadingBucket: state.buckets.bucketDetails.loadingBucket,\n bucketInfo: state.buckets.bucketDetails.bucketInfo,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(BucketLifecyclePanel));\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, {\n ChangeEvent,\n createRef,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport get from \"lodash/get\";\nimport debounce from \"lodash/debounce\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport HelpIcon from \"@mui/icons-material/Help\";\nimport { InputLabel, Tooltip } from \"@mui/material\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport InputBoxWrapper from \"../InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"../../../../../icons/AddIcon\";\n\ninterface IQueryMultiSelector {\n elements: string;\n name: string;\n label: string;\n tooltip?: string;\n keyPlaceholder?: string;\n valuePlaceholder?: string;\n classes: any;\n withBorder?: boolean;\n onChange: (elements: string) => void;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n inputWithBorder: {\n border: \"1px solid #EAEAEA\",\n padding: 15,\n height: 150,\n overflowY: \"auto\",\n position: \"relative\",\n marginTop: 15,\n },\n lineInputBoxes: {\n display: \"flex\",\n marginBottom: 10,\n },\n queryDiv: {\n alignSelf: \"center\",\n margin: \"0 4px\",\n fontWeight: 600,\n },\n });\n\nconst QueryMultiSelector = ({\n elements,\n name,\n label,\n tooltip = \"\",\n keyPlaceholder = \"\",\n valuePlaceholder = \"\",\n onChange,\n withBorder = false,\n classes,\n}: IQueryMultiSelector) => {\n const [currentKeys, setCurrentKeys] = useState([\"\"]);\n const [currentValues, setCurrentValues] = useState([\"\"]);\n const bottomList = createRef();\n\n // Use effect to get the initial values from props\n useEffect(() => {\n if (\n currentKeys.length === 1 &&\n currentKeys[0] === \"\" &&\n currentValues.length === 1 &&\n currentValues[0] === \"\" &&\n elements &&\n elements !== \"\"\n ) {\n const elementsSplit = elements.split(\"&\");\n let keys = [];\n let values = [];\n\n elementsSplit.forEach((element: string) => {\n const splittedVals = element.split(\"=\");\n if (splittedVals.length === 2) {\n keys.push(splittedVals[0]);\n values.push(splittedVals[1]);\n }\n });\n\n keys.push(\"\");\n values.push(\"\");\n\n setCurrentKeys(keys);\n setCurrentValues(values);\n }\n }, [currentKeys, currentValues, elements]);\n\n // Use effect to send new values to onChange\n useEffect(() => {\n const refScroll = bottomList.current;\n if (refScroll && currentKeys.length > 1) {\n refScroll.scrollIntoView(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentKeys]);\n\n // We avoid multiple re-renders / hang issue typing too fast\n const firstUpdate = useRef(true);\n useLayoutEffect(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n debouncedOnChange();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentKeys, currentValues]);\n\n // If the last input is not empty, we add a new one\n const addEmptyLine = () => {\n if (\n currentKeys[currentKeys.length - 1].trim() !== \"\" &&\n currentValues[currentValues.length - 1].trim() !== \"\"\n ) {\n const keysList = [...currentKeys];\n const valuesList = [...currentValues];\n\n keysList.push(\"\");\n valuesList.push(\"\");\n\n setCurrentKeys(keysList);\n setCurrentValues(valuesList);\n }\n };\n\n // Onchange function for input box, we get the dataset-index & only update that value in the array\n const onChangeKey = (e: ChangeEvent) => {\n e.persist();\n\n let updatedElement = [...currentKeys];\n const index = get(e.target, \"dataset.index\", 0);\n updatedElement[index] = e.target.value;\n\n setCurrentKeys(updatedElement);\n };\n\n const onChangeValue = (e: ChangeEvent) => {\n e.persist();\n\n let updatedElement = [...currentValues];\n const index = get(e.target, \"dataset.index\", 0);\n updatedElement[index] = e.target.value;\n\n setCurrentValues(updatedElement);\n };\n\n // Debounce for On Change\n const debouncedOnChange = debounce(() => {\n let queryString = \"\";\n\n currentKeys.forEach((keyVal, index) => {\n if (currentKeys[index] && currentValues[index]) {\n let insertString = `${keyVal}=${currentValues[index]}`;\n if (index !== 0) {\n insertString = `&${insertString}`;\n }\n queryString = `${queryString}${insertString}`;\n }\n });\n\n onChange(queryString);\n }, 500);\n\n const inputs = currentValues.map((element, index) => {\n return (\n \n \n :\n : null}\n overlayAction={() => {\n addEmptyLine();\n }}\n />\n
    \n );\n });\n\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n \n \n
    \n )}\n
    \n \n {inputs}\n
    \n \n \n \n );\n};\nexport default withStyles(styles)(QueryMultiSelector);\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 clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Radio, { RadioProps } from \"@mui/material/Radio\";\nimport { InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { fieldBasic, radioIcons, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\n\nexport interface SelectorTypes {\n label: string;\n value: string;\n}\n\ninterface RadioGroupProps {\n selectorOptions: SelectorTypes[];\n currentSelection: string;\n label: string;\n id: string;\n name: string;\n tooltip?: string;\n disableOptions?: boolean;\n onChange: (e: React.ChangeEvent) => void;\n classes: any;\n displayInColumn?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n optionLabel: {\n \"&.Mui-disabled\": {\n \"& .MuiFormControlLabel-label\": {\n color: \"#9c9c9c\",\n },\n },\n \"&:last-child\": {\n marginRight: 0,\n },\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n },\n },\n checkedOption: {\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n fontWeight: 700,\n },\n },\n });\n\nconst radioStyles = makeStyles({\n root: {\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n ...radioIcons,\n});\n\nconst RadioButton = (props: RadioProps) => {\n const classes = radioStyles();\n\n return (\n }\n icon={}\n {...props}\n />\n );\n};\n\nexport const RadioGroupSelector = ({\n selectorOptions = [],\n currentSelection,\n label,\n id,\n name,\n onChange,\n tooltip = \"\",\n disableOptions = false,\n classes,\n displayInColumn = false,\n}: RadioGroupProps) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n
    \n \n \n {selectorOptions.map((selectorOption) => {\n return (\n }\n label={selectorOption.label}\n disabled={disableOptions}\n className={clsx(classes.optionLabel, {\n [classes.checkedOption]:\n selectorOption.value === currentSelection,\n })}\n />\n );\n })}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(RadioGroupSelector);\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n fontSize: \".9rem\",\n },\n });\n\ninterface IPanelTitle extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst PanelTitle = ({ classes, children }: IPanelTitle) => {\n return

    {children}

    ;\n};\n\nexport default withStyles(styles)(PanelTitle);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","mapDispatchToProps","setModalErrorSnackMessage","connector","connect","dateSelector","borderBottom","spacingUtils","modalStyleUtils","formFieldStyles","createTenantCommon","closeModalAndRefresh","selectedBucket","lifecycle","open","useState","loadingTiers","setLoadingTiers","addLoading","setAddLoading","tags","setTags","enabled","setEnabled","tiersList","setTiersList","prefix","setPrefix","storageClass","setStorageClass","NCTransitionSC","setNCTransitionSC","expiredObjectDM","setExpiredObjectDM","NCExpirationDays","setNCExpirationDays","NCTransitionDays","setNCTransitionDays","ilmType","setIlmType","expiryDays","setExpiryDays","transitionDays","setTransitionDays","isFormValid","setIsFormValid","useEffect","api","then","res","get","length","objList","map","tier","tierType","type","value","label","catch","err","valid","status","transitionMode","transition","days","toString","date","expiration","storage_class","noncurrent_transition_days","noncurrent_storage_class","noncurrent_expiration_days","delete_marker","tgs","reduce","stringLab","currItem","index","key","ModalWrapper","onClose","modalOpen","titleIcon","noValidate","autoComplete","onSubmit","e","event","preventDefault","rules","expiry","expiry_days","parseInt","noncurrentversion_expiration_days","transition_days","noncurrentversion_transition_days","noncurrentversion_transition_storage_class","lifecycleUpdate","disable","expired_object_delete_marker","id","saveRecord","Grid","formScrollable","formFieldRow","InputBoxWrapper","name","onChange","disabled","FormSwitchWrapper","indicatorLabels","checked","target","fieldGroup","descriptionText","RadioGroupSelector","currentSelection","selectorOptions","disableOptions","Fragment","min","placeholder","SelectWrapper","options","QueryMultiSelector","elements","vl","keyPlaceholder","valuePlaceholder","withBorder","modalButtonBar","Button","variant","color","onClick","LinearProgress","bucketName","loadingBox","markerOn","lifecycleInsert","addRecord","textAlign","validity","pattern","overlayObject","InputUnitMenu","unitSelected","unitsList","setErrorSnackMessage","modalBasic","onCloseAndRefresh","deleteOpen","bucket","deletingRule","setDeletingRule","ConfirmDialog","confirmText","isOpen","isLoading","onConfirm","confirmationContent","DialogContentText","state","session","console","loadingBucket","buckets","bucketDetails","bucketInfo","searchField","actionsTray","twHeight","minHeight","match","loadingLifecycle","setLoadingLifecycle","lifecycleRecords","setLifecycleRecords","addLifecycleOpen","setAddLifecycleOpen","editLifecycleOpen","setEditLifecycleOpen","selectedLifecycleRule","setSelectedLifecycleRule","deleteLifecycleOpen","setDeleteLifecycleOpen","selectedID","setSelectedID","params","displayLifeCycleRules","hasPermission","IAM_SCOPES","records","error","lifecycleColumns","elementKey","renderFunction","objectST","renderFullObject","lifecycleActions","valueToSend","valueToDelete","sendOnlyId","refresh","PanelTitle","SecureComponent","scopes","resource","matchAll","errorProps","RBIconButton","tooltip","text","icon","TableWrapper","itemActions","columns","entityName","customEmptyMessage","idField","customPaperHeight","HelpBox","href","rel","fieldBasic","tooltipHelper","inputWithBorder","padding","overflowY","position","marginTop","lineInputBoxes","queryDiv","alignSelf","margin","currentKeys","setCurrentKeys","currentValues","setCurrentValues","bottomList","createRef","elementsSplit","split","keys","values","forEach","element","splittedVals","push","refScroll","current","scrollIntoView","firstUpdate","useRef","useLayoutEffect","debouncedOnChange","onChangeKey","persist","updatedElement","onChangeValue","debounce","queryString","keyVal","insertString","inputs","overlayIcon","overlayAction","trim","keysList","valuesList","addEmptyLine","fieldContainer","inputLabel","tooltipContainer","placement","ref","radioStyles","makeStyles","radioIcons","RadioButton","props","disableRipple","checkedIcon","radioSelectedIcon","radioUnselectedIcon","optionLabel","checkedOption","displayInColumn","htmlFor","radioOptionsLayout","row","style","selectorOption","control","clsx","deleteDialogStyles","onCancel","cancelText","confirmButtonProps","cancelButtonProps","reason","sx","titleText","closeContainer","closeButton","size","content","actions","cancelButton","confirmButton","loading","loadingPosition","startIcon","autoFocus","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2114.fac0126b.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Buckets/BucketDetails/EditLifecycleConfiguration.tsx","screens/Console/Buckets/BucketDetails/AddLifecycleModal.tsx","screens/Console/Buckets/BucketDetails/DeleteBucketLifecycleRule.tsx","screens/Console/Buckets/BucketDetails/BucketLifecyclePanel.tsx","screens/Console/Common/FormComponents/QueryMultiSelector/QueryMultiSelector.tsx","screens/Console/Common/FormComponents/RadioGroupSelector/RadioGroupSelector.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PanelTitle/PanelTitle.tsx","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/lodash/isString.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, LinearProgress, SelectChangeEvent } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { LifeCycleItem } from \"../types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { LifecycleConfigIcon } from \"../../../../icons\";\nimport { ITiersDropDown } from \"./AddLifecycleModal\";\nimport {\n ITierElement,\n ITierResponse,\n} from \"../../Configurations/TiersConfiguration/types\";\nimport api from \"../../../../common/api\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport QueryMultiSelector from \"../../Common/FormComponents/QueryMultiSelector/QueryMultiSelector\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateSelector: {\n \"& div\": {\n borderBottom: 0,\n marginBottom: 0,\n\n \"& div:nth-child(2)\": {\n border: \"1px solid #EAEAEA\",\n paddingLeft: 5,\n\n \"& div\": {\n border: 0,\n },\n },\n },\n },\n ...spacingUtils,\n ...modalStyleUtils,\n ...formFieldStyles,\n ...createTenantCommon,\n });\n\ninterface IAddUserContentProps {\n classes: any;\n closeModalAndRefresh: (reload: boolean) => void;\n selectedBucket: string;\n lifecycle: LifeCycleItem;\n open: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst EditLifecycleConfiguration = ({\n classes,\n closeModalAndRefresh,\n selectedBucket,\n lifecycle,\n open,\n setModalErrorSnackMessage,\n}: IAddUserContentProps) => {\n const [loadingTiers, setLoadingTiers] = useState(true);\n const [addLoading, setAddLoading] = useState(false);\n const [tags, setTags] = useState(\"\");\n const [enabled, setEnabled] = useState(false);\n const [tiersList, setTiersList] = useState([]);\n const [prefix, setPrefix] = useState(\"\");\n const [storageClass, setStorageClass] = useState(\"\");\n const [NCTransitionSC, setNCTransitionSC] = useState(\"\");\n const [expiredObjectDM, setExpiredObjectDM] = useState(false);\n const [NCExpirationDays, setNCExpirationDays] = useState(\"0\");\n const [NCTransitionDays, setNCTransitionDays] = useState(\"0\");\n const [ilmType, setIlmType] = useState(\"expiry\");\n const [expiryDays, setExpiryDays] = useState(\"0\");\n const [transitionDays, setTransitionDays] = useState(\"0\");\n const [isFormValid, setIsFormValid] = useState(false);\n\n useEffect(() => {\n if (loadingTiers) {\n api\n .invoke(\"GET\", `/api/v1/admin/tiers`)\n .then((res: ITierResponse) => {\n const tiersList: ITierElement[] | null = get(res, \"items\", []);\n\n if (tiersList !== null && tiersList.length >= 1) {\n const objList = tiersList.map((tier: ITierElement) => {\n const tierType = tier.type;\n const value = get(tier, `${tierType}.name`, \"\");\n\n return { label: value, value: value };\n });\n\n setTiersList(objList);\n if (objList.length > 0) {\n setStorageClass(objList[0].value);\n }\n }\n setLoadingTiers(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingTiers(false);\n });\n }\n }, [loadingTiers]);\n\n useEffect(() => {\n let valid = true;\n\n if (ilmType !== \"expiry\") {\n if (storageClass === \"\") {\n valid = false;\n }\n }\n setIsFormValid(valid);\n }, [ilmType, expiryDays, transitionDays, storageClass]);\n\n useEffect(() => {\n if (lifecycle.status === \"Enabled\") {\n setEnabled(true);\n }\n\n let transitionMode = false;\n\n if (lifecycle.transition) {\n if (lifecycle.transition.days && lifecycle.transition.days !== 0) {\n setTransitionDays(lifecycle.transition.days.toString());\n setIlmType(\"transition\");\n transitionMode = true;\n }\n\n // Fallback to old rules by date\n if (\n lifecycle.transition.date &&\n lifecycle.transition.date !== \"0001-01-01T00:00:00Z\"\n ) {\n setIlmType(\"transition\");\n transitionMode = true;\n }\n }\n\n if (lifecycle.expiration) {\n if (lifecycle.expiration.days && lifecycle.expiration.days !== 0) {\n setExpiryDays(lifecycle.expiration.days.toString());\n setIlmType(\"expiry\");\n transitionMode = false;\n }\n\n // Fallback to old rules by date\n if (\n lifecycle.expiration.date &&\n lifecycle.expiration.date !== \"0001-01-01T00:00:00Z\"\n ) {\n setIlmType(\"expiry\");\n transitionMode = false;\n }\n }\n\n // Transition fields\n if (transitionMode) {\n setStorageClass(lifecycle.transition?.storage_class || \"\");\n setNCTransitionDays(\n lifecycle.transition?.noncurrent_transition_days?.toString() || \"0\"\n );\n setNCTransitionSC(lifecycle.transition?.noncurrent_storage_class || \"\");\n } else {\n // Expiry fields\n setNCExpirationDays(\n lifecycle.expiration?.noncurrent_expiration_days?.toString() || \"0\"\n );\n }\n\n setExpiredObjectDM(!!lifecycle.expiration?.delete_marker);\n setPrefix(lifecycle.prefix || \"\");\n\n if (lifecycle.tags) {\n const tgs = lifecycle.tags.reduce(\n (stringLab: string, currItem: any, index: number) => {\n return `${stringLab}${index !== 0 ? \"&\" : \"\"}${currItem.key}=${\n currItem.value\n }`;\n },\n \"\"\n );\n\n setTags(tgs);\n }\n }, [lifecycle]);\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (selectedBucket !== null && lifecycle !== null) {\n let rules = {};\n\n if (ilmType === \"expiry\") {\n let expiry = {\n expiry_days: parseInt(expiryDays),\n };\n\n rules = {\n ...expiry,\n noncurrentversion_expiration_days: parseInt(NCExpirationDays),\n };\n } else {\n let transition = {\n transition_days: parseInt(transitionDays),\n };\n\n rules = {\n ...transition,\n noncurrentversion_transition_days: parseInt(NCTransitionDays),\n noncurrentversion_transition_storage_class: NCTransitionSC,\n storage_class: storageClass,\n };\n }\n\n const lifecycleUpdate = {\n type: ilmType,\n disable: !enabled,\n prefix,\n tags,\n expired_object_delete_marker: expiredObjectDM,\n ...rules,\n };\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${selectedBucket}/lifecycle/${lifecycle.id}`,\n lifecycleUpdate\n )\n .then((res) => {\n setAddLoading(false);\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n }\n };\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n modalOpen={open}\n title={\"Edit Lifecycle Configuration\"}\n titleIcon={}\n >\n ) => {\n saveRecord(e);\n }}\n >\n \n \n \n {}}\n disabled\n />\n \n \n {\n setEnabled(e.target.checked);\n }}\n />\n \n \n
    \n \n Lifecycle Configuration\n \n\n \n {}}\n disableOptions\n />\n \n {ilmType === \"expiry\" ? (\n \n \n ) => {\n setExpiryDays(e.target.value);\n }}\n label=\"Expiry Days\"\n value={expiryDays}\n min=\"0\"\n />\n \n\n \n ) => {\n setNCExpirationDays(e.target.value);\n }}\n label=\"Non-current Expiration Days\"\n value={NCExpirationDays}\n min=\"0\"\n />\n \n \n ) : (\n \n \n ) => {\n setTransitionDays(e.target.value);\n }}\n label=\"Transition Days\"\n value={transitionDays}\n min=\"0\"\n />\n \n \n ) => {\n setNCTransitionDays(e.target.value);\n }}\n label=\"Non-current Transition Days\"\n value={NCTransitionDays}\n min=\"0\"\n />\n \n \n ) => {\n setNCTransitionSC(e.target.value);\n }}\n placeholder=\"Set Non-current Version Transition Storage Class\"\n label=\"Non-current Version Transition Storage Class\"\n value={NCTransitionSC}\n />\n \n \n ) => {\n setStorageClass(e.target.value as string);\n }}\n options={tiersList}\n />\n \n \n )}\n
    \n
    \n \n
    \n \n File Configuration\n \n\n \n ) => {\n setPrefix(e.target.value);\n }}\n label=\"Prefix\"\n value={prefix}\n />\n \n \n {\n setTags(vl);\n }}\n keyPlaceholder=\"Tag Key\"\n valuePlaceholder=\"Tag Value\"\n withBorder\n />\n \n \n ) => {\n setExpiredObjectDM(event.target.checked);\n }}\n label={\"Expired Object Delete Marker\"}\n />\n \n
    \n
    \n
    \n \n {\n closeModalAndRefresh(false);\n }}\n >\n Cancel\n \n \n Save\n \n \n {addLoading && (\n \n \n \n )}\n
    \n \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(EditLifecycleConfiguration));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, LinearProgress, SelectChangeEvent } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport {\n ITierElement,\n ITierResponse,\n} from \"../../Configurations/TiersConfiguration/types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../../common/api\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport QueryMultiSelector from \"../../Common/FormComponents/QueryMultiSelector/QueryMultiSelector\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { LifecycleConfigIcon } from \"../../../../icons\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IReplicationModal {\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => any;\n classes: any;\n bucketName: string;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nexport interface ITiersDropDown {\n label: string;\n value: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateSelector: {\n \"& div\": {\n borderBottom: 0,\n marginBottom: 0,\n\n \"& div:nth-child(2)\": {\n border: \"1px solid #EAEAEA\",\n paddingLeft: 5,\n\n \"& div\": {\n border: 0,\n },\n },\n },\n },\n ...spacingUtils,\n ...modalStyleUtils,\n ...formFieldStyles,\n ...createTenantCommon,\n });\n\nconst AddLifecycleModal = ({\n open,\n closeModalAndRefresh,\n classes,\n bucketName,\n setModalErrorSnackMessage,\n}: IReplicationModal) => {\n const [loadingTiers, setLoadingTiers] = useState(true);\n const [tiersList, setTiersList] = useState([]);\n const [addLoading, setAddLoading] = useState(false);\n const [prefix, setPrefix] = useState(\"\");\n const [tags, setTags] = useState(\"\");\n const [storageClass, setStorageClass] = useState(\"\");\n const [NCExpirationDays, setNCExpirationDays] = useState(\"\");\n const [NCTransitionDays, setNCTransitionDays] = useState(\"\");\n const [ilmType, setIlmType] = useState(\"expiry\");\n const [expiryDays, setExpiryDays] = useState(\"\");\n const [transitionDays, setTransitionDays] = useState(\"\");\n const [isFormValid, setIsFormValid] = useState(false);\n\n useEffect(() => {\n if (loadingTiers) {\n api\n .invoke(\"GET\", `/api/v1/admin/tiers`)\n .then((res: ITierResponse) => {\n const tiersList: ITierElement[] | null = get(res, \"items\", []);\n\n if (tiersList !== null && tiersList.length >= 1) {\n const objList = tiersList.map((tier: ITierElement) => {\n const tierType = tier.type;\n const value = get(tier, `${tierType}.name`, \"\");\n\n return { label: value, value: value };\n });\n\n setTiersList(objList);\n if (objList.length > 0) {\n setStorageClass(objList[0].value);\n }\n }\n setLoadingTiers(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingTiers(false);\n });\n }\n }, [loadingTiers]);\n\n useEffect(() => {\n let valid = true;\n\n if (ilmType !== \"expiry\") {\n if (storageClass === \"\") {\n valid = false;\n }\n }\n setIsFormValid(valid);\n }, [ilmType, expiryDays, transitionDays, storageClass]);\n\n const addRecord = () => {\n let rules = {};\n\n let markerOn = false;\n\n if (ilmType === \"expiry\") {\n let expiry = {\n expiry_days: parseInt(expiryDays),\n };\n\n if (parseInt(expiryDays) > 0 && parseInt(NCExpirationDays) > 0) {\n markerOn = true;\n }\n\n rules = {\n ...expiry,\n noncurrentversion_expiration_days: parseInt(NCExpirationDays),\n };\n } else {\n let transition = {\n transition_days: parseInt(transitionDays),\n };\n\n if (parseInt(transitionDays) > 0 && parseInt(NCTransitionDays) > 0) {\n markerOn = true;\n }\n\n rules = {\n ...transition,\n noncurrentversion_transition_days: parseInt(NCTransitionDays),\n storage_class: storageClass,\n };\n }\n\n const lifecycleInsert = {\n type: ilmType,\n prefix,\n tags,\n expired_object_delete_marker: markerOn,\n ...rules,\n };\n\n api\n .invoke(\n \"POST\",\n `/api/v1/buckets/${bucketName}/lifecycle`,\n lifecycleInsert\n )\n .then(() => {\n setAddLoading(false);\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n return (\n {\n closeModalAndRefresh(false);\n }}\n title=\"Add Lifecycle Rule\"\n titleIcon={}\n >\n {loadingTiers && (\n \n \n \n \n \n )}\n\n {!loadingTiers && (\n ) => {\n e.preventDefault();\n setAddLoading(true);\n addRecord();\n }}\n >\n \n \n \n \n \n ) => {\n setIlmType(e.target.value as string);\n }}\n selectorOptions={[\n { value: \"expiry\", label: \"Expiry\" },\n { value: \"transition\", label: \"Transition\" },\n ]}\n />\n \n \n {ilmType === \"expiry\" ? (\n \n \n \n ) => {\n if (e.target.validity.valid) {\n setExpiryDays(e.target.value);\n }\n }}\n pattern={\"[0-9]*\"}\n label=\"Delete Latest Version After\"\n value={expiryDays}\n overlayObject={\n \n }\n />\n \n\n \n \n ) => {\n if (e.target.validity.valid) {\n setNCExpirationDays(e.target.value);\n }\n }}\n pattern={\"[0-9]*\"}\n label=\"Delete Older Versions After\"\n value={NCExpirationDays}\n min=\"0\"\n overlayObject={\n \n }\n />\n \n \n ) : (\n \n \n ) => {\n setStorageClass(e.target.value as string);\n }}\n options={tiersList}\n />\n \n \n \n ) => {\n if (e.target.validity.valid) {\n setTransitionDays(e.target.value);\n }\n }}\n pattern={\"[0-9]*\"}\n label=\"Transition Latest Version\"\n value={transitionDays}\n min=\"0\"\n overlayObject={\n \n }\n />\n \n \n \n ) => {\n if (e.target.validity.valid) {\n setNCTransitionDays(e.target.value);\n }\n }}\n label=\"Transition Older Versions\"\n value={NCTransitionDays}\n pattern={\"[0-9]*\"}\n overlayObject={\n \n }\n />\n \n \n )}\n \n \n \n
    \n Filters\n\n \n ) => {\n setPrefix(e.target.value);\n }}\n label=\"Prefix\"\n value={prefix}\n />\n \n \n {\n setTags(vl);\n }}\n keyPlaceholder=\"Tag Key\"\n valuePlaceholder=\"Tag Value\"\n withBorder\n />\n \n
    \n
    \n
    \n \n {\n closeModalAndRefresh(false);\n }}\n >\n Cancel\n \n \n Save\n \n \n {addLoading && (\n \n \n \n )}\n
    \n \n )}\n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(AddLifecycleModal));\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, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { modalBasic } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport api from \"../../../../common/api\";\n\ninterface IDeleteLifecycleRule {\n deleteOpen: boolean;\n onCloseAndRefresh: (refresh: boolean) => any;\n bucket: string;\n id: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n });\n\nconst DeleteBucketLifecycleRule = ({\n onCloseAndRefresh,\n deleteOpen,\n bucket,\n id,\n setErrorSnackMessage,\n}: IDeleteLifecycleRule) => {\n const [deletingRule, setDeletingRule] = useState(false);\n\n useEffect(() => {\n if (deletingRule) {\n api\n .invoke(\"DELETE\", `/api/v1/buckets/${bucket}/lifecycle/${id}`)\n .then((res) => {\n setDeletingRule(false);\n onCloseAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setDeletingRule(false);\n setErrorSnackMessage(err);\n });\n }\n }, [deletingRule, bucket, id, onCloseAndRefresh, setErrorSnackMessage]);\n\n const onConfirmDelete = () => {\n setDeletingRule(true);\n };\n\n return (\n }\n onClose={() => onCloseAndRefresh(false)}\n confirmationContent={\n \n Are you sure you want to delete the {id} rule?\n \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(DeleteBucketLifecycleRule));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport get from \"lodash/get\";\nimport * as reactMoment from \"react-moment\";\nimport Grid from \"@mui/material/Grid\";\nimport { BucketInfo, LifeCycleItem } from \"../types\";\nimport { AddIcon, TiersIcon } from \"../../../../icons\";\nimport {\n actionsTray,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport EditLifecycleConfiguration from \"./EditLifecycleConfiguration\";\nimport AddLifecycleModal from \"./AddLifecycleModal\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport PanelTitle from \"../../Common/PanelTitle/PanelTitle\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport RBIconButton from \"./SummaryItems/RBIconButton\";\nimport DeleteBucketLifecycleRule from \"./DeleteBucketLifecycleRule\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...searchField,\n ...actionsTray,\n twHeight: {\n minHeight: 400,\n },\n });\n\ninterface IBucketLifecyclePanelProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n loadingBucket: boolean;\n bucketInfo: BucketInfo | null;\n}\n\nconst BucketLifecyclePanel = ({\n classes,\n match,\n setErrorSnackMessage,\n loadingBucket,\n bucketInfo,\n}: IBucketLifecyclePanelProps) => {\n const [loadingLifecycle, setLoadingLifecycle] = useState(true);\n const [lifecycleRecords, setLifecycleRecords] = useState([]);\n const [addLifecycleOpen, setAddLifecycleOpen] = useState(false);\n const [editLifecycleOpen, setEditLifecycleOpen] = useState(false);\n const [selectedLifecycleRule, setSelectedLifecycleRule] =\n useState(null);\n const [deleteLifecycleOpen, setDeleteLifecycleOpen] =\n useState(false);\n const [selectedID, setSelectedID] = useState(null);\n\n const bucketName = match.params[\"bucketName\"];\n\n const displayLifeCycleRules = hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_LIFECYCLE_CONFIGURATION,\n ]);\n\n useEffect(() => {\n if (loadingBucket) {\n setLoadingLifecycle(true);\n }\n }, [loadingBucket, setLoadingLifecycle]);\n\n useEffect(() => {\n if (loadingLifecycle) {\n if (displayLifeCycleRules) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/lifecycle`)\n .then((res: any) => {\n const records = get(res, \"lifecycle\", []);\n\n setLifecycleRecords(records || []);\n setLoadingLifecycle(false);\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n setLifecycleRecords([]);\n setLoadingLifecycle(false);\n });\n } else {\n setLoadingLifecycle(false);\n }\n }\n }, [\n loadingLifecycle,\n setLoadingLifecycle,\n bucketName,\n displayLifeCycleRules,\n ]);\n\n const closeEditLCAndRefresh = (refresh: boolean) => {\n setEditLifecycleOpen(false);\n setSelectedLifecycleRule(null);\n if (refresh) {\n setLoadingLifecycle(true);\n }\n };\n\n const closeAddLCAndRefresh = (refresh: boolean) => {\n setAddLifecycleOpen(false);\n if (refresh) {\n setLoadingLifecycle(true);\n }\n };\n\n const closeDelLCRefresh = (refresh: boolean) => {\n setDeleteLifecycleOpen(false);\n setSelectedID(null);\n\n if (refresh) {\n setLoadingLifecycle(true);\n }\n };\n\n const expirationRender = (expiration: any) => {\n if (expiration.days) {\n return `${expiration.days} day${expiration.days > 1 ? \"s\" : \"\"}`;\n }\n\n if (expiration.date === \"0001-01-01T00:00:00Z\") {\n return \"\";\n }\n\n return {expiration.date};\n };\n\n const transitionRender = (transition: any) => {\n if (transition.days) {\n return `${transition.days} day${transition.days > 1 ? \"s\" : \"\"}`;\n }\n\n if (transition.date === \"0001-01-01T00:00:00Z\") {\n return \"\";\n }\n\n return {transition.date};\n };\n\n const renderStorageClass = (objectST: any) => {\n const stClass = get(objectST, \"transition.storage_class\", \"\");\n\n return stClass;\n };\n\n const lifecycleColumns = [\n { label: \"ID\", elementKey: \"id\" },\n {\n label: \"Prefix\",\n elementKey: \"prefix\",\n },\n {\n label: \"Status\",\n elementKey: \"status\",\n },\n {\n label: \"Expiration\",\n elementKey: \"expiration\",\n renderFunction: expirationRender,\n },\n {\n label: \"Transition\",\n elementKey: \"transition\",\n renderFunction: transitionRender,\n },\n {\n label: \"Storage Class\",\n elementKey: \"storage_class\",\n renderFunction: renderStorageClass,\n renderFullObject: true,\n },\n ];\n\n const lifecycleActions = [\n {\n type: \"view\",\n\n onClick(valueToSend: any): any {\n setSelectedLifecycleRule(valueToSend);\n setEditLifecycleOpen(true);\n },\n },\n {\n type: \"delete\",\n onClick(valueToDelete: string): any {\n setSelectedID(valueToDelete);\n setDeleteLifecycleOpen(true);\n },\n sendOnlyId: true,\n },\n ];\n\n return (\n \n {editLifecycleOpen && selectedLifecycleRule && (\n \n )}\n {addLifecycleOpen && (\n \n )}\n {deleteLifecycleOpen && selectedID && (\n \n )}\n \n \n Lifecycle Rules\n \n {\n setAddLifecycleOpen(true);\n }}\n text={\"Add Lifecycle Rule\"}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n \n \n \n \n \n \n {!loadingLifecycle && (\n \n
    \n }\n help={\n \n MinIO Object Lifecycle Management allows creating rules for\n time or date based automatic transition or expiry of objects.\n For object transition, MinIO automatically moves the object to\n a configured remote storage tier.\n
    \n
    \n You can learn more at our{\" \"}\n \n documentation\n \n .\n
    \n }\n />\n
    \n )}\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n session: state.console.session,\n loadingBucket: state.buckets.bucketDetails.loadingBucket,\n bucketInfo: state.buckets.bucketDetails.bucketInfo,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(BucketLifecyclePanel));\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, {\n ChangeEvent,\n createRef,\n useEffect,\n useLayoutEffect,\n useRef,\n useState,\n} from \"react\";\nimport get from \"lodash/get\";\nimport debounce from \"lodash/debounce\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport HelpIcon from \"@mui/icons-material/Help\";\nimport { InputLabel, Tooltip } from \"@mui/material\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport InputBoxWrapper from \"../InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"../../../../../icons/AddIcon\";\n\ninterface IQueryMultiSelector {\n elements: string;\n name: string;\n label: string;\n tooltip?: string;\n keyPlaceholder?: string;\n valuePlaceholder?: string;\n classes: any;\n withBorder?: boolean;\n onChange: (elements: string) => void;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n inputWithBorder: {\n border: \"1px solid #EAEAEA\",\n padding: 15,\n height: 150,\n overflowY: \"auto\",\n position: \"relative\",\n marginTop: 15,\n },\n lineInputBoxes: {\n display: \"flex\",\n marginBottom: 10,\n },\n queryDiv: {\n alignSelf: \"center\",\n margin: \"0 4px\",\n fontWeight: 600,\n },\n });\n\nconst QueryMultiSelector = ({\n elements,\n name,\n label,\n tooltip = \"\",\n keyPlaceholder = \"\",\n valuePlaceholder = \"\",\n onChange,\n withBorder = false,\n classes,\n}: IQueryMultiSelector) => {\n const [currentKeys, setCurrentKeys] = useState([\"\"]);\n const [currentValues, setCurrentValues] = useState([\"\"]);\n const bottomList = createRef();\n\n // Use effect to get the initial values from props\n useEffect(() => {\n if (\n currentKeys.length === 1 &&\n currentKeys[0] === \"\" &&\n currentValues.length === 1 &&\n currentValues[0] === \"\" &&\n elements &&\n elements !== \"\"\n ) {\n const elementsSplit = elements.split(\"&\");\n let keys = [];\n let values = [];\n\n elementsSplit.forEach((element: string) => {\n const splittedVals = element.split(\"=\");\n if (splittedVals.length === 2) {\n keys.push(splittedVals[0]);\n values.push(splittedVals[1]);\n }\n });\n\n keys.push(\"\");\n values.push(\"\");\n\n setCurrentKeys(keys);\n setCurrentValues(values);\n }\n }, [currentKeys, currentValues, elements]);\n\n // Use effect to send new values to onChange\n useEffect(() => {\n const refScroll = bottomList.current;\n if (refScroll && currentKeys.length > 1) {\n refScroll.scrollIntoView(false);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentKeys]);\n\n // We avoid multiple re-renders / hang issue typing too fast\n const firstUpdate = useRef(true);\n useLayoutEffect(() => {\n if (firstUpdate.current) {\n firstUpdate.current = false;\n return;\n }\n debouncedOnChange();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [currentKeys, currentValues]);\n\n // If the last input is not empty, we add a new one\n const addEmptyLine = () => {\n if (\n currentKeys[currentKeys.length - 1].trim() !== \"\" &&\n currentValues[currentValues.length - 1].trim() !== \"\"\n ) {\n const keysList = [...currentKeys];\n const valuesList = [...currentValues];\n\n keysList.push(\"\");\n valuesList.push(\"\");\n\n setCurrentKeys(keysList);\n setCurrentValues(valuesList);\n }\n };\n\n // Onchange function for input box, we get the dataset-index & only update that value in the array\n const onChangeKey = (e: ChangeEvent) => {\n e.persist();\n\n let updatedElement = [...currentKeys];\n const index = get(e.target, \"dataset.index\", 0);\n updatedElement[index] = e.target.value;\n\n setCurrentKeys(updatedElement);\n };\n\n const onChangeValue = (e: ChangeEvent) => {\n e.persist();\n\n let updatedElement = [...currentValues];\n const index = get(e.target, \"dataset.index\", 0);\n updatedElement[index] = e.target.value;\n\n setCurrentValues(updatedElement);\n };\n\n // Debounce for On Change\n const debouncedOnChange = debounce(() => {\n let queryString = \"\";\n\n currentKeys.forEach((keyVal, index) => {\n if (currentKeys[index] && currentValues[index]) {\n let insertString = `${keyVal}=${currentValues[index]}`;\n if (index !== 0) {\n insertString = `&${insertString}`;\n }\n queryString = `${queryString}${insertString}`;\n }\n });\n\n onChange(queryString);\n }, 500);\n\n const inputs = currentValues.map((element, index) => {\n return (\n \n \n :\n : null}\n overlayAction={() => {\n addEmptyLine();\n }}\n />\n
    \n );\n });\n\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n \n \n
    \n )}\n
    \n \n {inputs}\n
    \n \n \n \n );\n};\nexport default withStyles(styles)(QueryMultiSelector);\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 clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Radio, { RadioProps } from \"@mui/material/Radio\";\nimport { InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { fieldBasic, radioIcons, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\n\nexport interface SelectorTypes {\n label: string;\n value: string;\n}\n\ninterface RadioGroupProps {\n selectorOptions: SelectorTypes[];\n currentSelection: string;\n label: string;\n id: string;\n name: string;\n tooltip?: string;\n disableOptions?: boolean;\n onChange: (e: React.ChangeEvent) => void;\n classes: any;\n displayInColumn?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n optionLabel: {\n \"&.Mui-disabled\": {\n \"& .MuiFormControlLabel-label\": {\n color: \"#9c9c9c\",\n },\n },\n \"&:last-child\": {\n marginRight: 0,\n },\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n },\n },\n checkedOption: {\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n fontWeight: 700,\n },\n },\n });\n\nconst radioStyles = makeStyles({\n root: {\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n ...radioIcons,\n});\n\nconst RadioButton = (props: RadioProps) => {\n const classes = radioStyles();\n\n return (\n }\n icon={}\n {...props}\n />\n );\n};\n\nexport const RadioGroupSelector = ({\n selectorOptions = [],\n currentSelection,\n label,\n id,\n name,\n onChange,\n tooltip = \"\",\n disableOptions = false,\n classes,\n displayInColumn = false,\n}: RadioGroupProps) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n
    \n \n \n {selectorOptions.map((selectorOption) => {\n return (\n }\n label={selectorOption.label}\n disabled={disableOptions}\n className={clsx(classes.optionLabel, {\n [classes.checkedOption]:\n selectorOption.value === currentSelection,\n })}\n />\n );\n })}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(RadioGroupSelector);\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n fontSize: \".9rem\",\n },\n });\n\ninterface IPanelTitle extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst PanelTitle = ({ classes, children }: IPanelTitle) => {\n return

    {children}

    ;\n};\n\nexport default withStyles(styles)(PanelTitle);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","mapDispatchToProps","setModalErrorSnackMessage","connector","connect","dateSelector","borderBottom","spacingUtils","modalStyleUtils","formFieldStyles","createTenantCommon","closeModalAndRefresh","selectedBucket","lifecycle","open","useState","loadingTiers","setLoadingTiers","addLoading","setAddLoading","tags","setTags","enabled","setEnabled","tiersList","setTiersList","prefix","setPrefix","storageClass","setStorageClass","NCTransitionSC","setNCTransitionSC","expiredObjectDM","setExpiredObjectDM","NCExpirationDays","setNCExpirationDays","NCTransitionDays","setNCTransitionDays","ilmType","setIlmType","expiryDays","setExpiryDays","transitionDays","setTransitionDays","isFormValid","setIsFormValid","useEffect","api","then","res","get","length","objList","map","tier","tierType","type","value","label","catch","err","valid","status","transitionMode","transition","days","toString","date","expiration","storage_class","noncurrent_transition_days","noncurrent_storage_class","noncurrent_expiration_days","delete_marker","tgs","reduce","stringLab","currItem","index","key","ModalWrapper","onClose","modalOpen","titleIcon","noValidate","autoComplete","onSubmit","e","event","preventDefault","rules","expiry","expiry_days","parseInt","noncurrentversion_expiration_days","transition_days","noncurrentversion_transition_days","noncurrentversion_transition_storage_class","lifecycleUpdate","disable","expired_object_delete_marker","id","saveRecord","Grid","formScrollable","formFieldRow","InputBoxWrapper","name","onChange","disabled","FormSwitchWrapper","indicatorLabels","checked","target","fieldGroup","descriptionText","RadioGroupSelector","currentSelection","selectorOptions","disableOptions","Fragment","min","placeholder","SelectWrapper","options","QueryMultiSelector","elements","vl","keyPlaceholder","valuePlaceholder","withBorder","modalButtonBar","Button","variant","color","onClick","LinearProgress","bucketName","loadingBox","markerOn","lifecycleInsert","addRecord","textAlign","validity","pattern","overlayObject","InputUnitMenu","unitSelected","unitsList","setErrorSnackMessage","modalBasic","onCloseAndRefresh","deleteOpen","bucket","deletingRule","setDeletingRule","ConfirmDialog","confirmText","isOpen","isLoading","onConfirm","confirmationContent","DialogContentText","state","session","console","loadingBucket","buckets","bucketDetails","bucketInfo","searchField","actionsTray","twHeight","minHeight","match","loadingLifecycle","setLoadingLifecycle","lifecycleRecords","setLifecycleRecords","addLifecycleOpen","setAddLifecycleOpen","editLifecycleOpen","setEditLifecycleOpen","selectedLifecycleRule","setSelectedLifecycleRule","deleteLifecycleOpen","setDeleteLifecycleOpen","selectedID","setSelectedID","params","displayLifeCycleRules","hasPermission","IAM_SCOPES","records","error","lifecycleColumns","elementKey","renderFunction","objectST","renderFullObject","lifecycleActions","valueToSend","valueToDelete","sendOnlyId","refresh","PanelTitle","SecureComponent","scopes","resource","matchAll","errorProps","RBIconButton","tooltip","text","icon","TableWrapper","itemActions","columns","entityName","customEmptyMessage","idField","customPaperHeight","HelpBox","href","rel","fieldBasic","tooltipHelper","inputWithBorder","padding","overflowY","position","marginTop","lineInputBoxes","queryDiv","alignSelf","margin","currentKeys","setCurrentKeys","currentValues","setCurrentValues","bottomList","createRef","elementsSplit","split","keys","values","forEach","element","splittedVals","push","refScroll","current","scrollIntoView","firstUpdate","useRef","useLayoutEffect","debouncedOnChange","onChangeKey","persist","updatedElement","onChangeValue","debounce","queryString","keyVal","insertString","inputs","overlayIcon","overlayAction","trim","keysList","valuesList","addEmptyLine","fieldContainer","inputLabel","tooltipContainer","placement","ref","radioStyles","makeStyles","radioIcons","RadioButton","props","disableRipple","checkedIcon","radioSelectedIcon","radioUnselectedIcon","optionLabel","checkedOption","displayInColumn","htmlFor","radioOptionsLayout","row","style","selectorOption","control","clsx","deleteDialogStyles","onCancel","cancelText","confirmButtonProps","cancelButtonProps","reason","sx","titleText","closeContainer","closeButton","size","content","actions","cancelButton","confirmButton","loading","loadingPosition","startIcon","autoFocus","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","scroll","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2249.4862887a.chunk.js b/portal-ui/build/static/js/2249.8bf84c2a.chunk.js similarity index 98% rename from portal-ui/build/static/js/2249.4862887a.chunk.js rename to portal-ui/build/static/js/2249.8bf84c2a.chunk.js index adffded1a..01a30ff21 100644 --- a/portal-ui/build/static/js/2249.4862887a.chunk.js +++ b/portal-ui/build/static/js/2249.8bf84c2a.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2249],{23804:function(e,n,t){t(72791);var o=t(11135),i=t(25787),r=t(61889),a=t(80184);n.Z=(0,i.Z)((function(e){return(0,o.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,o=e.title,i=e.help;return(0,a.jsx)("div",{className:n.root,children:(0,a.jsxs)(r.ZP,{container:!0,children:[(0,a.jsxs)(r.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,o]}),(0,a.jsx)(r.ZP,{item:!0,xs:12,className:n.helpText,children:i})]})})}))},60937:function(e,n,t){t.d(n,{Z:function(){return u}});var o=t(32291),i=t(72791),r=t(61889),a=t(64554),s=t(23804),l=t(80184),c=function(e){var n=e.iconComponent,t=void 0===n?null:n,o=e.title,i=void 0===o?"":o,c=e.message,d=void 0===c?"":c;return(0,l.jsx)(r.ZP,{container:!0,alignItems:"center",children:(0,l.jsx)(r.ZP,{item:!0,xs:12,children:(0,l.jsx)(s.Z,{title:i,iconComponent:t,help:(0,l.jsx)(a.Z,{sx:{fontSize:"14px",display:"flex",border:"none",flexFlow:{xs:"column",md:"row"},"& a":{color:function(e){return e.colors.link},textDecoration:"underline"}},children:d})})})})},d=t(74794),u=function(e){var n=e.pageHeaderText,t=void 0===n?"":n,r=e.icon,a=void 0===r?null:r,s=e.title,u=void 0===s?"":s,f=e.message,x=void 0===f?null:f;return(0,l.jsxs)(i.Fragment,{children:[(0,l.jsx)(o.Z,{label:t}),(0,l.jsx)(d.Z,{children:(0,l.jsx)(c,{iconComponent:a,title:u,message:x})})]})}},75578:function(e,n,t){var o=t(1413),i=t(72791),r=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,r.jsx)(i.Suspense,{fallback:n,children:(0,r.jsx)(e,(0,o.Z)({},t))})}return t}},74794:function(e,n,t){var o=t(1413),i=(t(72791),t(61889)),r=t(11135),a=t(25787),s=t(23814),l=t(80184);n.Z=(0,a.Z)((function(e){return(0,r.Z)((0,o.Z)({},s.Bw))}))((function(e){var n=e.classes,t=e.className,o=void 0===t?"":t,r=e.children;return(0,l.jsx)("div",{className:n.contentSpacer,children:(0,l.jsx)(i.ZP,{container:!0,children:(0,l.jsx)(i.ZP,{item:!0,xs:12,className:o,children:r})})})}))},32291:function(e,n,t){var o=t(72791),i=t(60364),r=t(61889),a=t(11135),s=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),f=t(3925),x=t(74833),g=t(80184),m={toggleList:f.kQ},p=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),m);n.Z=p((0,s.Z)((function(e){return(0,a.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,i=e.actions,a=e.sidebarOpen,s=e.operatorMode,f=e.managerObjects,m=e.toggleList,p=e.middleComponent;return e.features.includes("hide-menu")?(0,g.jsx)(o.Fragment,{}):(0,g.jsxs)(r.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,g.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:p?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,g.jsx)("div",{className:n.logo,children:s?(0,g.jsx)(d.Z,{}):(0,g.jsx)(u.Z,{})}),(0,g.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),p&&(0,g.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:p}),(0,g.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:p?3:6,className:n.rightMenu,children:[i&&i,f&&f.length>0&&(0,g.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){m()},id:"object-manager-toggle",size:"large",children:(0,g.jsx)(x.gx,{})})]})]})})))},2249:function(e,n,t){t.r(n),t.d(n,{default:function(){return L}});var o=t(72791),i=t(79271),r=t(62666),a=t(50099),s=t(1413),l=t(11135),c=t(25787),d=t(61889),u=t(23814),f=t(32291),x=t(91523),g=t(80184),m=(0,c.Z)((function(e){return(0,l.Z)({configurationLink:{border:"#E5E5E5 1px solid",borderRadius:2,padding:20,width:190,maxWidth:190,height:80,margin:14,display:"flex",alignItems:"center",color:"#072C4F",fontSize:14,fontWeight:700,textDecoration:"none",overflow:"hidden",textOverflow:"ellipsis",lineClamp:2,"& svg":{fontSize:35,marginRight:15},"&:hover":{backgroundColor:"#FBFAFA"},"&.disabled":{backgroundColor:"#F9F9F9",color:"#ababab",cursor:"not-allowed"}}})}))((function(e){var n=e.classes,t=e.configuration,o=e.prefix,i=void 0===o?"settings":o,r=e.disabled,a=void 0!==r&&r;return(0,g.jsxs)(x.rU,{to:a?"/".concat(i):"/".concat(i,"/").concat(t.configuration_id),className:"".concat(n.configurationLink," ").concat(a?"disabled":""),children:[t.icon,t.configuration_label]})})),p=t(74794),h=t(74833),b=t(56087),j=t(38442),Z=(0,t(60364).$j)((function(e){return{features:e.console.session.features}}),null)((0,c.Z)((function(e){return(0,l.Z)((0,s.Z)((0,s.Z)((0,s.Z)({settingsOptionsContainer:{display:"flex",flexDirection:"row",justifyContent:"flex-start",flexWrap:"wrap",border:"#E5E5E5 1px solid",borderRadius:2,padding:5,backgroundColor:"#fff"}},u.qg),u.OR),(0,u.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=(e.features,[{icon:(0,g.jsx)(h.I$,{}),configuration_id:"logs",configuration_label:"Logs",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_LOGS])},{icon:(0,g.jsx)(h.W1,{}),configuration_id:"audit-logs",configuration_label:"Audit Logs",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_AUDITLOGS])},{icon:(0,g.jsx)(h.fO,{}),configuration_id:"watch",configuration_label:"Watch",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_WATCH])},{icon:(0,g.jsx)(h.C_,{}),configuration_id:"trace",configuration_label:"Trace",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_TRACE])},{icon:(0,g.jsx)(h.ln,{}),configuration_id:"heal",configuration_label:"Heal",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_HEAL])},{icon:(0,g.jsx)(h.MX,{}),configuration_id:"diagnostics",configuration_label:"Diagnostics",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_DIAGNOSTICS])},{icon:(0,g.jsx)(h.QB,{}),configuration_id:"speedtest",configuration_label:"Speedtest",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_SPEEDTEST])}]);return(0,g.jsxs)(o.Fragment,{children:[(0,g.jsx)(f.Z,{label:"Tools"}),(0,g.jsx)(p.Z,{children:(0,g.jsx)(d.ZP,{item:!0,xs:12,children:(0,g.jsx)(d.ZP,{item:!0,xs:12,children:(0,g.jsx)("div",{className:n.settingsOptionsContainer,children:t.map((function(e){return(0,g.jsx)(m,{prefix:"tools",configuration:e,disabled:e.disabled||!1},"configItem-".concat(e.configuration_label))}))})})})})]})}))),v=t(60937),C=t(25183),y=t(75578),S=(0,y.Z)(o.lazy((function(){return Promise.all([t.e(3772),t.e(7757),t.e(8833)]).then(t.bind(t,58833))}))),A=(0,y.Z)(o.lazy((function(){return t.e(471).then(t.bind(t,80471))}))),T=(0,y.Z)(o.lazy((function(){return t.e(483).then(t.bind(t,70483))}))),L=function(){return(0,g.jsx)(i.F0,{history:r.Z,children:(0,g.jsxs)(i.rs,{children:[(0,g.jsx)(i.AW,{path:b.gA.TOOLS,exact:!0,component:Z}),(0,g.jsx)(i.AW,{path:b.gA.REGISTER_SUPPORT,exact:!0,component:A}),(0,g.jsx)(i.AW,{path:b.gA.PROFILE,exact:!0,component:T}),(0,g.jsx)(i.AW,{path:b.gA.CALL_HOME,exact:!0,render:function(){return(0,g.jsx)(v.Z,{icon:(0,g.jsx)(C.aw,{}),pageHeaderText:"Support",title:"Call Home",message:(0,g.jsx)("div",{children:"This feature is currently not available."})})}}),(0,g.jsx)(i.AW,{path:b.gA.TOOLS_WATCH,exact:!0,render:function(){return(0,g.jsx)(v.Z,{icon:(0,g.jsx)(C.aw,{}),pageHeaderText:"Support",title:"Inspect",message:(0,g.jsx)("div",{children:"This feature is currently not available."})})}}),(0,g.jsx)(i.AW,{path:b.gA.PROFILE,exact:!0,render:function(){return(0,g.jsx)(v.Z,{icon:(0,g.jsx)(C.aw,{}),pageHeaderText:"Support",title:"Profile",message:(0,g.jsx)("div",{children:"This feature is currently not available."})})}}),(0,g.jsx)(i.AW,{path:b.gA.SUPPORT_INSPECT,exact:!0,component:S}),(0,g.jsx)(i.AW,{component:a.Z})]})})}},50099:function(e,n,t){t.d(n,{Z:function(){return c}});t(72791);var o=t(64554),i=t(20890),r=t(23060),a=t(80184);function s(){return(0,a.jsxs)(i.Z,{variant:"body2",color:"textSecondary",align:"center",children:["Copyright \xa9 ",(0,a.jsx)(r.Z,{color:"inherit",href:"https://min.io/?ref=con",children:"MinIO"})," ",(new Date).getFullYear(),"."]})}var l=t(74794),c=function(){return(0,a.jsx)(l.Z,{children:(0,a.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center",margin:"auto",flexFlow:"column"},children:[(0,a.jsx)(o.Z,{sx:{fontSize:"110%",margin:"0 0 0.25rem",color:"#909090"},children:"404 Error"}),(0,a.jsx)(o.Z,{sx:{fontStyle:"normal",fontSize:"clamp(2rem,calc(2rem + 1.2vw),3rem)",fontWeight:700},children:"Sorry, the page could not be found."}),(0,a.jsx)(o.Z,{mt:5,children:(0,a.jsx)(s,{})})]})})}},23060:function(e,n,t){t.d(n,{Z:function(){return A}});var o=t(70885),i=t(4942),r=t(63366),a=t(87462),s=t(72791),l=t(28182),c=t(90767),d=t(18529),u=t(12065),f=t(14036),x=t(47630),g=t(93736),m=t(23031),p=t(42071),h=t(20890),b=t(95159);function j(e){return(0,b.Z)("MuiLink",e)}var Z=(0,t(30208).Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),v=t(80184),C=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"],y={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},S=(0,x.ZP)(h.Z,{name:"MuiLink",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["underline".concat((0,f.Z)(t.underline))],"button"===t.component&&n.button]}})((function(e){var n=e.theme,t=e.ownerState,o=(0,d.D)(n,"palette.".concat(function(e){return y[e]||e}(t.color)))||t.color;return(0,a.Z)({},"none"===t.underline&&{textDecoration:"none"},"hover"===t.underline&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},"always"===t.underline&&{textDecoration:"underline",textDecorationColor:"inherit"!==o?(0,u.Fq)(o,.4):void 0,"&:hover":{textDecorationColor:"inherit"}},"button"===t.component&&(0,i.Z)({position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"}},"&.".concat(Z.focusVisible),{outline:"auto"}))})),A=s.forwardRef((function(e,n){var t=(0,g.Z)({props:e,name:"MuiLink"}),i=t.className,d=t.color,u=void 0===d?"primary":d,x=t.component,h=void 0===x?"a":x,b=t.onBlur,Z=t.onFocus,y=t.TypographyClasses,A=t.underline,T=void 0===A?"always":A,L=t.variant,O=void 0===L?"inherit":L,F=(0,r.Z)(t,C),w=(0,m.Z)(),_=w.isFocusVisibleRef,P=w.onBlur,k=w.onFocus,E=w.ref,I=s.useState(!1),N=(0,o.Z)(I,2),R=N[0],W=N[1],z=(0,p.Z)(n,E),D=(0,a.Z)({},t,{color:u,component:h,focusVisible:R,underline:T,variant:O}),M=function(e){var n=e.classes,t=e.component,o=e.focusVisible,i=e.underline,r={root:["root","underline".concat((0,f.Z)(i)),"button"===t&&"button",o&&"focusVisible"]};return(0,c.Z)(r,j,n)}(D);return(0,v.jsx)(S,(0,a.Z)({className:(0,l.Z)(M.root,i),classes:y,color:u,component:h,onBlur:function(e){P(e),!1===_.current&&W(!1),b&&b(e)},onFocus:function(e){k(e),!0===_.current&&W(!0),Z&&Z(e)},ref:z,ownerState:D,variant:O},F))}))}}]); -//# sourceMappingURL=2249.4862887a.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2249],{23804:function(e,n,t){t(72791);var o=t(11135),i=t(25787),r=t(61889),a=t(80184);n.Z=(0,i.Z)((function(e){return(0,o.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,o=e.title,i=e.help;return(0,a.jsx)("div",{className:n.root,children:(0,a.jsxs)(r.ZP,{container:!0,children:[(0,a.jsxs)(r.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,o]}),(0,a.jsx)(r.ZP,{item:!0,xs:12,className:n.helpText,children:i})]})})}))},60937:function(e,n,t){t.d(n,{Z:function(){return u}});var o=t(32291),i=t(72791),r=t(61889),a=t(64554),s=t(23804),l=t(80184),c=function(e){var n=e.iconComponent,t=void 0===n?null:n,o=e.title,i=void 0===o?"":o,c=e.message,d=void 0===c?"":c;return(0,l.jsx)(r.ZP,{container:!0,alignItems:"center",children:(0,l.jsx)(r.ZP,{item:!0,xs:12,children:(0,l.jsx)(s.Z,{title:i,iconComponent:t,help:(0,l.jsx)(a.Z,{sx:{fontSize:"14px",display:"flex",border:"none",flexFlow:{xs:"column",md:"row"},"& a":{color:function(e){return e.colors.link},textDecoration:"underline"}},children:d})})})})},d=t(74794),u=function(e){var n=e.pageHeaderText,t=void 0===n?"":n,r=e.icon,a=void 0===r?null:r,s=e.title,u=void 0===s?"":s,f=e.message,x=void 0===f?null:f;return(0,l.jsxs)(i.Fragment,{children:[(0,l.jsx)(o.Z,{label:t}),(0,l.jsx)(d.Z,{children:(0,l.jsx)(c,{iconComponent:a,title:u,message:x})})]})}},75578:function(e,n,t){var o=t(1413),i=t(72791),r=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,r.jsx)(i.Suspense,{fallback:n,children:(0,r.jsx)(e,(0,o.Z)({},t))})}return t}},74794:function(e,n,t){var o=t(1413),i=(t(72791),t(61889)),r=t(11135),a=t(25787),s=t(23814),l=t(80184);n.Z=(0,a.Z)((function(e){return(0,r.Z)((0,o.Z)({},s.Bw))}))((function(e){var n=e.classes,t=e.className,o=void 0===t?"":t,r=e.children;return(0,l.jsx)("div",{className:n.contentSpacer,children:(0,l.jsx)(i.ZP,{container:!0,children:(0,l.jsx)(i.ZP,{item:!0,xs:12,className:o,children:r})})})}))},32291:function(e,n,t){var o=t(72791),i=t(60364),r=t(61889),a=t(11135),s=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),f=t(3925),x=t(13048),g=t(80184),m={toggleList:f.kQ},p=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),m);n.Z=p((0,s.Z)((function(e){return(0,a.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,i=e.actions,a=e.sidebarOpen,s=e.operatorMode,f=e.managerObjects,m=e.toggleList,p=e.middleComponent;return e.features.includes("hide-menu")?(0,g.jsx)(o.Fragment,{}):(0,g.jsxs)(r.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,g.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:p?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,g.jsx)("div",{className:n.logo,children:s?(0,g.jsx)(d.Z,{}):(0,g.jsx)(u.Z,{})}),(0,g.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),p&&(0,g.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:p}),(0,g.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:p?3:6,className:n.rightMenu,children:[i&&i,f&&f.length>0&&(0,g.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){m()},id:"object-manager-toggle",size:"large",children:(0,g.jsx)(x.gx,{})})]})]})})))},2249:function(e,n,t){t.r(n),t.d(n,{default:function(){return L}});var o=t(72791),i=t(79271),r=t(62666),a=t(50099),s=t(1413),l=t(11135),c=t(25787),d=t(61889),u=t(23814),f=t(32291),x=t(91523),g=t(80184),m=(0,c.Z)((function(e){return(0,l.Z)({configurationLink:{border:"#E5E5E5 1px solid",borderRadius:2,padding:20,width:190,maxWidth:190,height:80,margin:14,display:"flex",alignItems:"center",color:"#072C4F",fontSize:14,fontWeight:700,textDecoration:"none",overflow:"hidden",textOverflow:"ellipsis",lineClamp:2,"& svg":{fontSize:35,marginRight:15},"&:hover":{backgroundColor:"#FBFAFA"},"&.disabled":{backgroundColor:"#F9F9F9",color:"#ababab",cursor:"not-allowed"}}})}))((function(e){var n=e.classes,t=e.configuration,o=e.prefix,i=void 0===o?"settings":o,r=e.disabled,a=void 0!==r&&r;return(0,g.jsxs)(x.rU,{to:a?"/".concat(i):"/".concat(i,"/").concat(t.configuration_id),className:"".concat(n.configurationLink," ").concat(a?"disabled":""),children:[t.icon,t.configuration_label]})})),p=t(74794),h=t(13048),b=t(56087),j=t(38442),Z=(0,t(60364).$j)((function(e){return{features:e.console.session.features}}),null)((0,c.Z)((function(e){return(0,l.Z)((0,s.Z)((0,s.Z)((0,s.Z)({settingsOptionsContainer:{display:"flex",flexDirection:"row",justifyContent:"flex-start",flexWrap:"wrap",border:"#E5E5E5 1px solid",borderRadius:2,padding:5,backgroundColor:"#fff"}},u.qg),u.OR),(0,u.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=(e.features,[{icon:(0,g.jsx)(h.I$,{}),configuration_id:"logs",configuration_label:"Logs",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_LOGS])},{icon:(0,g.jsx)(h.W1,{}),configuration_id:"audit-logs",configuration_label:"Audit Logs",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_AUDITLOGS])},{icon:(0,g.jsx)(h.fO,{}),configuration_id:"watch",configuration_label:"Watch",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_WATCH])},{icon:(0,g.jsx)(h.C_,{}),configuration_id:"trace",configuration_label:"Trace",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_TRACE])},{icon:(0,g.jsx)(h.ln,{}),configuration_id:"heal",configuration_label:"Heal",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_HEAL])},{icon:(0,g.jsx)(h.MX,{}),configuration_id:"diagnostics",configuration_label:"Diagnostics",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_DIAGNOSTICS])},{icon:(0,g.jsx)(h.QB,{}),configuration_id:"speedtest",configuration_label:"Speedtest",disabled:!(0,j.F)(b.C3,b.LC[b.gA.TOOLS_SPEEDTEST])}]);return(0,g.jsxs)(o.Fragment,{children:[(0,g.jsx)(f.Z,{label:"Tools"}),(0,g.jsx)(p.Z,{children:(0,g.jsx)(d.ZP,{item:!0,xs:12,children:(0,g.jsx)(d.ZP,{item:!0,xs:12,children:(0,g.jsx)("div",{className:n.settingsOptionsContainer,children:t.map((function(e){return(0,g.jsx)(m,{prefix:"tools",configuration:e,disabled:e.disabled||!1},"configItem-".concat(e.configuration_label))}))})})})})]})}))),v=t(60937),C=t(25183),y=t(75578),S=(0,y.Z)(o.lazy((function(){return Promise.all([t.e(3772),t.e(7757),t.e(8833)]).then(t.bind(t,58833))}))),A=(0,y.Z)(o.lazy((function(){return t.e(471).then(t.bind(t,80471))}))),T=(0,y.Z)(o.lazy((function(){return t.e(483).then(t.bind(t,70483))}))),L=function(){return(0,g.jsx)(i.F0,{history:r.Z,children:(0,g.jsxs)(i.rs,{children:[(0,g.jsx)(i.AW,{path:b.gA.TOOLS,exact:!0,component:Z}),(0,g.jsx)(i.AW,{path:b.gA.REGISTER_SUPPORT,exact:!0,component:A}),(0,g.jsx)(i.AW,{path:b.gA.PROFILE,exact:!0,component:T}),(0,g.jsx)(i.AW,{path:b.gA.CALL_HOME,exact:!0,render:function(){return(0,g.jsx)(v.Z,{icon:(0,g.jsx)(C.aw,{}),pageHeaderText:"Support",title:"Call Home",message:(0,g.jsx)("div",{children:"This feature is currently not available."})})}}),(0,g.jsx)(i.AW,{path:b.gA.TOOLS_WATCH,exact:!0,render:function(){return(0,g.jsx)(v.Z,{icon:(0,g.jsx)(C.aw,{}),pageHeaderText:"Support",title:"Inspect",message:(0,g.jsx)("div",{children:"This feature is currently not available."})})}}),(0,g.jsx)(i.AW,{path:b.gA.PROFILE,exact:!0,render:function(){return(0,g.jsx)(v.Z,{icon:(0,g.jsx)(C.aw,{}),pageHeaderText:"Support",title:"Profile",message:(0,g.jsx)("div",{children:"This feature is currently not available."})})}}),(0,g.jsx)(i.AW,{path:b.gA.SUPPORT_INSPECT,exact:!0,component:S}),(0,g.jsx)(i.AW,{component:a.Z})]})})}},50099:function(e,n,t){t.d(n,{Z:function(){return c}});t(72791);var o=t(64554),i=t(20890),r=t(23060),a=t(80184);function s(){return(0,a.jsxs)(i.Z,{variant:"body2",color:"textSecondary",align:"center",children:["Copyright \xa9 ",(0,a.jsx)(r.Z,{color:"inherit",href:"https://min.io/?ref=con",children:"MinIO"})," ",(new Date).getFullYear(),"."]})}var l=t(74794),c=function(){return(0,a.jsx)(l.Z,{children:(0,a.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center",margin:"auto",flexFlow:"column"},children:[(0,a.jsx)(o.Z,{sx:{fontSize:"110%",margin:"0 0 0.25rem",color:"#909090"},children:"404 Error"}),(0,a.jsx)(o.Z,{sx:{fontStyle:"normal",fontSize:"clamp(2rem,calc(2rem + 1.2vw),3rem)",fontWeight:700},children:"Sorry, the page could not be found."}),(0,a.jsx)(o.Z,{mt:5,children:(0,a.jsx)(s,{})})]})})}},23060:function(e,n,t){t.d(n,{Z:function(){return A}});var o=t(70885),i=t(4942),r=t(63366),a=t(87462),s=t(72791),l=t(28182),c=t(90767),d=t(18529),u=t(12065),f=t(14036),x=t(47630),g=t(93736),m=t(23031),p=t(42071),h=t(20890),b=t(95159);function j(e){return(0,b.Z)("MuiLink",e)}var Z=(0,t(30208).Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),v=t(80184),C=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"],y={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},S=(0,x.ZP)(h.Z,{name:"MuiLink",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["underline".concat((0,f.Z)(t.underline))],"button"===t.component&&n.button]}})((function(e){var n=e.theme,t=e.ownerState,o=(0,d.D)(n,"palette.".concat(function(e){return y[e]||e}(t.color)))||t.color;return(0,a.Z)({},"none"===t.underline&&{textDecoration:"none"},"hover"===t.underline&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},"always"===t.underline&&{textDecoration:"underline",textDecorationColor:"inherit"!==o?(0,u.Fq)(o,.4):void 0,"&:hover":{textDecorationColor:"inherit"}},"button"===t.component&&(0,i.Z)({position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"}},"&.".concat(Z.focusVisible),{outline:"auto"}))})),A=s.forwardRef((function(e,n){var t=(0,g.Z)({props:e,name:"MuiLink"}),i=t.className,d=t.color,u=void 0===d?"primary":d,x=t.component,h=void 0===x?"a":x,b=t.onBlur,Z=t.onFocus,y=t.TypographyClasses,A=t.underline,T=void 0===A?"always":A,L=t.variant,O=void 0===L?"inherit":L,F=(0,r.Z)(t,C),w=(0,m.Z)(),_=w.isFocusVisibleRef,P=w.onBlur,k=w.onFocus,E=w.ref,I=s.useState(!1),N=(0,o.Z)(I,2),R=N[0],W=N[1],z=(0,p.Z)(n,E),D=(0,a.Z)({},t,{color:u,component:h,focusVisible:R,underline:T,variant:O}),M=function(e){var n=e.classes,t=e.component,o=e.focusVisible,i=e.underline,r={root:["root","underline".concat((0,f.Z)(i)),"button"===t&&"button",o&&"focusVisible"]};return(0,c.Z)(r,j,n)}(D);return(0,v.jsx)(S,(0,a.Z)({className:(0,l.Z)(M.root,i),classes:y,color:u,component:h,onBlur:function(e){P(e),!1===_.current&&W(!1),b&&b(e)},onFocus:function(e){k(e),!0===_.current&&W(!0),Z&&Z(e)},ref:z,ownerState:D,variant:O},F))}))}}]); +//# sourceMappingURL=2249.8bf84c2a.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2249.4862887a.chunk.js.map b/portal-ui/build/static/js/2249.8bf84c2a.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/2249.4862887a.chunk.js.map rename to portal-ui/build/static/js/2249.8bf84c2a.chunk.js.map index 6f87e0f71..c72d7703e 100644 --- a/portal-ui/build/static/js/2249.4862887a.chunk.js.map +++ b/portal-ui/build/static/js/2249.8bf84c2a.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2249.4862887a.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/Components/FeatureNotAvailable.tsx","screens/Console/Common/Components/FeatureNotAvailablePage.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/SettingsCard/SettingsCard.tsx","screens/Console/Tools/ToolsPanel/ToolsList.tsx","screens/Console/Tools/Tools.tsx","common/Copyright.tsx","screens/NotFoundPage.tsx","../node_modules/@mui/material/Link/linkClasses.js","../node_modules/@mui/material/Link/Link.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box, Grid } from \"@mui/material\";\nimport HelpBox from \"../../../../common/HelpBox\";\n\ninterface IFeatureNotAvailable {\n iconComponent?: any;\n title?: string;\n helpCls?: any;\n message?: any;\n}\n\nconst FeatureNotAvailable = ({\n iconComponent = null,\n title = \"\",\n message = \"\",\n}: IFeatureNotAvailable) => {\n return (\n \n \n theme.colors.link,\n textDecoration: \"underline\",\n },\n }}\n >\n {message}\n \n }\n />\n \n \n );\n};\n\nexport default FeatureNotAvailable;\n","import PageHeader from \"../PageHeader/PageHeader\";\nimport React from \"react\";\nimport FeatureNotAvailable from \"./FeatureNotAvailable\";\nimport PageLayout from \"../Layout/PageLayout\";\n\nconst FeatureNotAvailablePage = ({\n pageHeaderText = \"\",\n icon = null,\n title = \"\",\n message = null,\n}: {\n pageHeaderText?: string;\n icon?: any;\n title?: string;\n message?: any;\n}) => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport default FeatureNotAvailablePage;\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","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n

    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IElement } from \"../../Configurations/types\";\n\ninterface ISettingsCard {\n classes: any;\n configuration: IElement;\n prefix?: string;\n disabled?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configurationLink: {\n border: \"#E5E5E5 1px solid\",\n borderRadius: 2,\n padding: 20,\n width: 190,\n maxWidth: 190,\n height: 80,\n margin: 14,\n display: \"flex\",\n alignItems: \"center\",\n color: \"#072C4F\",\n fontSize: 14,\n fontWeight: 700,\n textDecoration: \"none\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n lineClamp: 2,\n \"& svg\": {\n fontSize: 35,\n marginRight: 15,\n },\n \"&:hover\": {\n backgroundColor: \"#FBFAFA\",\n },\n \"&.disabled\": {\n backgroundColor: \"#F9F9F9\",\n color: \"#ababab\",\n cursor: \"not-allowed\",\n },\n },\n });\n\nconst SettingsCard = ({\n classes,\n configuration,\n prefix = \"settings\",\n disabled = false,\n}: ISettingsCard) => {\n return (\n \n {configuration.icon}\n {configuration.configuration_label}\n \n );\n};\n\nexport default withStyles(styles)(SettingsCard);\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport SettingsCard from \"../../Common/SettingsCard/SettingsCard\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport { IElement } from \"../types\";\nimport {\n DiagnosticsIcon,\n HealIcon,\n LogsIcon,\n SearchIcon,\n TraceIcon,\n WatchIcon,\n SpeedtestIcon,\n} from \"../../../../icons\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_PAGES_PERMISSIONS,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { hasPermission } from \"../../../../common/SecureComponent\";\nimport { AppState } from \"../../../../store\";\nimport { connect } from \"react-redux\";\n\ninterface IConfigurationOptions {\n classes: any;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n settingsOptionsContainer: {\n display: \"flex\" as const,\n flexDirection: \"row\" as const,\n justifyContent: \"flex-start\" as const,\n flexWrap: \"wrap\" as const,\n border: \"#E5E5E5 1px solid\",\n borderRadius: 2,\n padding: 5,\n backgroundColor: \"#fff\",\n },\n ...searchField,\n ...actionsTray,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst ToolsList = ({ classes, features }: IConfigurationOptions) => {\n const configurationElements: IElement[] = [\n {\n icon: ,\n configuration_id: \"logs\",\n configuration_label: \"Logs\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_LOGS]\n ),\n },\n {\n icon: ,\n configuration_id: \"audit-logs\",\n configuration_label: \"Audit Logs\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_AUDITLOGS]\n ),\n },\n {\n icon: ,\n configuration_id: \"watch\",\n configuration_label: \"Watch\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_WATCH]\n ),\n },\n {\n icon: ,\n configuration_id: \"trace\",\n configuration_label: \"Trace\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_TRACE]\n ),\n },\n {\n icon: ,\n configuration_id: \"heal\",\n configuration_label: \"Heal\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_HEAL]\n ),\n },\n {\n icon: ,\n configuration_id: \"diagnostics\",\n configuration_label: \"Diagnostics\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_DIAGNOSTICS]\n ),\n },\n {\n icon: ,\n configuration_id: \"speedtest\",\n configuration_label: \"Speedtest\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_SPEEDTEST]\n ),\n },\n ];\n\n return (\n \n \n \n \n \n
    \n {configurationElements.map((element) => (\n \n ))}\n
    \n
    \n
    \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n features: state.console.session.features,\n});\n\nconst connector = connect(mapState, null);\n\nexport default connector(withStyles(styles)(ToolsList));\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 { Route, Router, Switch } from \"react-router-dom\";\nimport history from \"../../../history\";\nimport NotFoundPage from \"../../NotFoundPage\";\nimport ToolsList from \"./ToolsPanel/ToolsList\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport FeatureNotAvailablePage from \"../Common/Components/FeatureNotAvailablePage\";\nimport { SupportMenuIcon } from \"../../../icons/SidebarMenus\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\n\nconst Inspect = withSuspense(React.lazy(() => import(\"./Inspect\")));\nconst Register = withSuspense(React.lazy(() => import(\"../Support/Register\")));\nconst Profile = withSuspense(React.lazy(() => import(\"../Support/Profile\")));\n\nconst Tools = () => {\n return (\n \n \n \n \n \n {\n return (\n }\n pageHeaderText={\"Support\"}\n title={\"Call Home\"}\n message={
    This feature is currently not available.
    }\n />\n );\n }}\n />\n {\n return (\n }\n pageHeaderText={\"Support\"}\n title={\"Inspect\"}\n message={
    This feature is currently not available.
    }\n />\n );\n }}\n />\n {\n return (\n }\n pageHeaderText={\"Support\"}\n title={\"Profile\"}\n message={
    This feature is currently not available.
    }\n />\n );\n }}\n />\n \n \n
    \n
    \n );\n};\n\nexport default Tools;\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 Typography from \"@mui/material/Typography\";\nimport Link from \"@mui/material/Link\";\n\nexport default function Copyright() {\n return (\n \n {\"Copyright © \"}\n \n MinIO\n {\" \"}\n {new Date().getFullYear()}\n {\".\"}\n \n );\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Copyright from \"../common/Copyright\";\nimport PageLayout from \"./Console/Common/Layout/PageLayout\";\n\nconst NotFound: React.FC = () => {\n return (\n \n \n \n 404 Error\n \n \n Sorry, the page could not be found.\n \n \n \n \n \n \n );\n};\n\nexport default NotFound;\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getLinkUtilityClass(slot) {\n return generateUtilityClass('MuiLink', slot);\n}\nconst linkClasses = generateUtilityClasses('MuiLink', ['root', 'underlineNone', 'underlineHover', 'underlineAlways', 'button', 'focusVisible']);\nexport default linkClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"component\", \"onBlur\", \"onFocus\", \"TypographyClasses\", \"underline\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha, getPath } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport useForkRef from '../utils/useForkRef';\nimport Typography from '../Typography';\nimport linkClasses, { getLinkUtilityClass } from './linkClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst colorTransformations = {\n primary: 'primary.main',\n textPrimary: 'text.primary',\n secondary: 'secondary.main',\n textSecondary: 'text.secondary',\n error: 'error.main'\n};\n\nconst transformDeprecatedColors = color => {\n return colorTransformations[color] || color;\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n component,\n focusVisible,\n underline\n } = ownerState;\n const slots = {\n root: ['root', `underline${capitalize(underline)}`, component === 'button' && 'button', focusVisible && 'focusVisible']\n };\n return composeClasses(slots, getLinkUtilityClass, classes);\n};\n\nconst LinkRoot = styled(Typography, {\n name: 'MuiLink',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`underline${capitalize(ownerState.underline)}`], ownerState.component === 'button' && styles.button];\n }\n})(({\n theme,\n ownerState\n}) => {\n const color = getPath(theme, `palette.${transformDeprecatedColors(ownerState.color)}`) || ownerState.color;\n return _extends({}, ownerState.underline === 'none' && {\n textDecoration: 'none'\n }, ownerState.underline === 'hover' && {\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline'\n }\n }, ownerState.underline === 'always' && {\n textDecoration: 'underline',\n textDecorationColor: color !== 'inherit' ? alpha(color, 0.4) : undefined,\n '&:hover': {\n textDecorationColor: 'inherit'\n }\n }, ownerState.component === 'button' && {\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n [`&.${linkClasses.focusVisible}`]: {\n outline: 'auto'\n }\n });\n});\nconst Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiLink'\n });\n\n const {\n className,\n color = 'primary',\n component = 'a',\n onBlur,\n onFocus,\n TypographyClasses,\n underline = 'always',\n variant = 'inherit'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n const handlerRef = useForkRef(ref, focusVisibleRef);\n\n const handleBlur = event => {\n handleBlurVisible(event);\n\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleFocus = event => {\n handleFocusVisible(event);\n\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const ownerState = _extends({}, props, {\n color,\n component,\n focusVisible,\n underline,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(LinkRoot, _extends({\n className: clsx(classes.root, className),\n classes: TypographyClasses,\n color: color,\n component: component,\n onBlur: handleBlur,\n onFocus: handleFocus,\n ref: handlerRef,\n ownerState: ownerState,\n variant: variant\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the link.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .any,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * `classes` prop applied to the [`Typography`](/api/typography/) element.\n */\n TypographyClasses: PropTypes.object,\n\n /**\n * Controls when the link should have an underline.\n * @default 'always'\n */\n underline: PropTypes.oneOf(['always', 'hover', 'none']),\n\n /**\n * Applies the theme typography styles.\n * @default 'inherit'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['body1', 'body2', 'button', 'caption', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'inherit', 'overline', 'subtitle1', 'subtitle2']), PropTypes.string])\n} : void 0;\nexport default Link;"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","message","Grid","HelpBox","Box","sx","flexFlow","md","color","colors","link","textDecoration","pageHeaderText","icon","PageHeader","label","PageLayout","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","pageContentStyles","children","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","justifyContent","labelStyle","marginLeft","marginTop","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","actions","includes","Fragment","direction","sm","variant","length","component","onClick","id","size","configurationLink","padding","maxWidth","margin","overflow","textOverflow","lineClamp","cursor","configuration","prefix","disabled","to","configuration_id","configuration_label","settingsOptionsContainer","flexDirection","flexWrap","searchField","actionsTray","containerForHeader","spacing","configurationElements","hasPermission","CONSOLE_UI_RESOURCE","IAM_PAGES_PERMISSIONS","IAM_PAGES","map","element","Inspect","withSuspense","React","Register","Profile","history","path","exact","ToolsList","render","FeatureNotAvailablePage","NotFoundPage","Copyright","Typography","align","Link","href","Date","getFullYear","fontStyle","mt","getLinkUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","colorTransformations","textPrimary","secondary","textSecondary","error","LinkRoot","styled","name","overridesResolver","styles","ownerState","capitalize","underline","button","getPath","transformDeprecatedColors","_extends","textDecorationColor","alpha","undefined","position","WebkitTapHighlightColor","outline","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","linkClasses","inProps","ref","useThemeProps","onBlur","onFocus","TypographyClasses","other","_objectWithoutPropertiesLoose","useIsFocusVisible","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","focusVisibleRef","focusVisible","setFocusVisible","handlerRef","useForkRef","slots","composeClasses","useUtilityClasses","_jsx","clsx","event","current"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2249.8bf84c2a.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/Components/FeatureNotAvailable.tsx","screens/Console/Common/Components/FeatureNotAvailablePage.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/SettingsCard/SettingsCard.tsx","screens/Console/Tools/ToolsPanel/ToolsList.tsx","screens/Console/Tools/Tools.tsx","common/Copyright.tsx","screens/NotFoundPage.tsx","../node_modules/@mui/material/Link/linkClasses.js","../node_modules/@mui/material/Link/Link.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box, Grid } from \"@mui/material\";\nimport HelpBox from \"../../../../common/HelpBox\";\n\ninterface IFeatureNotAvailable {\n iconComponent?: any;\n title?: string;\n helpCls?: any;\n message?: any;\n}\n\nconst FeatureNotAvailable = ({\n iconComponent = null,\n title = \"\",\n message = \"\",\n}: IFeatureNotAvailable) => {\n return (\n \n \n theme.colors.link,\n textDecoration: \"underline\",\n },\n }}\n >\n {message}\n \n }\n />\n \n \n );\n};\n\nexport default FeatureNotAvailable;\n","import PageHeader from \"../PageHeader/PageHeader\";\nimport React from \"react\";\nimport FeatureNotAvailable from \"./FeatureNotAvailable\";\nimport PageLayout from \"../Layout/PageLayout\";\n\nconst FeatureNotAvailablePage = ({\n pageHeaderText = \"\",\n icon = null,\n title = \"\",\n message = null,\n}: {\n pageHeaderText?: string;\n icon?: any;\n title?: string;\n message?: any;\n}) => {\n return (\n \n \n \n \n \n \n );\n};\n\nexport default FeatureNotAvailablePage;\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","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n

    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IElement } from \"../../Configurations/types\";\n\ninterface ISettingsCard {\n classes: any;\n configuration: IElement;\n prefix?: string;\n disabled?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configurationLink: {\n border: \"#E5E5E5 1px solid\",\n borderRadius: 2,\n padding: 20,\n width: 190,\n maxWidth: 190,\n height: 80,\n margin: 14,\n display: \"flex\",\n alignItems: \"center\",\n color: \"#072C4F\",\n fontSize: 14,\n fontWeight: 700,\n textDecoration: \"none\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n lineClamp: 2,\n \"& svg\": {\n fontSize: 35,\n marginRight: 15,\n },\n \"&:hover\": {\n backgroundColor: \"#FBFAFA\",\n },\n \"&.disabled\": {\n backgroundColor: \"#F9F9F9\",\n color: \"#ababab\",\n cursor: \"not-allowed\",\n },\n },\n });\n\nconst SettingsCard = ({\n classes,\n configuration,\n prefix = \"settings\",\n disabled = false,\n}: ISettingsCard) => {\n return (\n \n {configuration.icon}\n {configuration.configuration_label}\n \n );\n};\n\nexport default withStyles(styles)(SettingsCard);\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport SettingsCard from \"../../Common/SettingsCard/SettingsCard\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport { IElement } from \"../types\";\nimport {\n DiagnosticsIcon,\n HealIcon,\n LogsIcon,\n SearchIcon,\n TraceIcon,\n WatchIcon,\n SpeedtestIcon,\n} from \"../../../../icons\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_PAGES_PERMISSIONS,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { hasPermission } from \"../../../../common/SecureComponent\";\nimport { AppState } from \"../../../../store\";\nimport { connect } from \"react-redux\";\n\ninterface IConfigurationOptions {\n classes: any;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n settingsOptionsContainer: {\n display: \"flex\" as const,\n flexDirection: \"row\" as const,\n justifyContent: \"flex-start\" as const,\n flexWrap: \"wrap\" as const,\n border: \"#E5E5E5 1px solid\",\n borderRadius: 2,\n padding: 5,\n backgroundColor: \"#fff\",\n },\n ...searchField,\n ...actionsTray,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst ToolsList = ({ classes, features }: IConfigurationOptions) => {\n const configurationElements: IElement[] = [\n {\n icon: ,\n configuration_id: \"logs\",\n configuration_label: \"Logs\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_LOGS]\n ),\n },\n {\n icon: ,\n configuration_id: \"audit-logs\",\n configuration_label: \"Audit Logs\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_AUDITLOGS]\n ),\n },\n {\n icon: ,\n configuration_id: \"watch\",\n configuration_label: \"Watch\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_WATCH]\n ),\n },\n {\n icon: ,\n configuration_id: \"trace\",\n configuration_label: \"Trace\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_TRACE]\n ),\n },\n {\n icon: ,\n configuration_id: \"heal\",\n configuration_label: \"Heal\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_HEAL]\n ),\n },\n {\n icon: ,\n configuration_id: \"diagnostics\",\n configuration_label: \"Diagnostics\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_DIAGNOSTICS]\n ),\n },\n {\n icon: ,\n configuration_id: \"speedtest\",\n configuration_label: \"Speedtest\",\n disabled: !hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.TOOLS_SPEEDTEST]\n ),\n },\n ];\n\n return (\n \n \n \n \n \n
    \n {configurationElements.map((element) => (\n \n ))}\n
    \n
    \n
    \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n features: state.console.session.features,\n});\n\nconst connector = connect(mapState, null);\n\nexport default connector(withStyles(styles)(ToolsList));\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 { Route, Router, Switch } from \"react-router-dom\";\nimport history from \"../../../history\";\nimport NotFoundPage from \"../../NotFoundPage\";\nimport ToolsList from \"./ToolsPanel/ToolsList\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport FeatureNotAvailablePage from \"../Common/Components/FeatureNotAvailablePage\";\nimport { SupportMenuIcon } from \"../../../icons/SidebarMenus\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\n\nconst Inspect = withSuspense(React.lazy(() => import(\"./Inspect\")));\nconst Register = withSuspense(React.lazy(() => import(\"../Support/Register\")));\nconst Profile = withSuspense(React.lazy(() => import(\"../Support/Profile\")));\n\nconst Tools = () => {\n return (\n \n \n \n \n \n {\n return (\n }\n pageHeaderText={\"Support\"}\n title={\"Call Home\"}\n message={
    This feature is currently not available.
    }\n />\n );\n }}\n />\n {\n return (\n }\n pageHeaderText={\"Support\"}\n title={\"Inspect\"}\n message={
    This feature is currently not available.
    }\n />\n );\n }}\n />\n {\n return (\n }\n pageHeaderText={\"Support\"}\n title={\"Profile\"}\n message={
    This feature is currently not available.
    }\n />\n );\n }}\n />\n \n \n
    \n
    \n );\n};\n\nexport default Tools;\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 Typography from \"@mui/material/Typography\";\nimport Link from \"@mui/material/Link\";\n\nexport default function Copyright() {\n return (\n \n {\"Copyright © \"}\n \n MinIO\n {\" \"}\n {new Date().getFullYear()}\n {\".\"}\n \n );\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Copyright from \"../common/Copyright\";\nimport PageLayout from \"./Console/Common/Layout/PageLayout\";\n\nconst NotFound: React.FC = () => {\n return (\n \n \n \n 404 Error\n \n \n Sorry, the page could not be found.\n \n \n \n \n \n \n );\n};\n\nexport default NotFound;\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getLinkUtilityClass(slot) {\n return generateUtilityClass('MuiLink', slot);\n}\nconst linkClasses = generateUtilityClasses('MuiLink', ['root', 'underlineNone', 'underlineHover', 'underlineAlways', 'button', 'focusVisible']);\nexport default linkClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"component\", \"onBlur\", \"onFocus\", \"TypographyClasses\", \"underline\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha, getPath } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport useForkRef from '../utils/useForkRef';\nimport Typography from '../Typography';\nimport linkClasses, { getLinkUtilityClass } from './linkClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst colorTransformations = {\n primary: 'primary.main',\n textPrimary: 'text.primary',\n secondary: 'secondary.main',\n textSecondary: 'text.secondary',\n error: 'error.main'\n};\n\nconst transformDeprecatedColors = color => {\n return colorTransformations[color] || color;\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n component,\n focusVisible,\n underline\n } = ownerState;\n const slots = {\n root: ['root', `underline${capitalize(underline)}`, component === 'button' && 'button', focusVisible && 'focusVisible']\n };\n return composeClasses(slots, getLinkUtilityClass, classes);\n};\n\nconst LinkRoot = styled(Typography, {\n name: 'MuiLink',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`underline${capitalize(ownerState.underline)}`], ownerState.component === 'button' && styles.button];\n }\n})(({\n theme,\n ownerState\n}) => {\n const color = getPath(theme, `palette.${transformDeprecatedColors(ownerState.color)}`) || ownerState.color;\n return _extends({}, ownerState.underline === 'none' && {\n textDecoration: 'none'\n }, ownerState.underline === 'hover' && {\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline'\n }\n }, ownerState.underline === 'always' && {\n textDecoration: 'underline',\n textDecorationColor: color !== 'inherit' ? alpha(color, 0.4) : undefined,\n '&:hover': {\n textDecorationColor: 'inherit'\n }\n }, ownerState.component === 'button' && {\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n [`&.${linkClasses.focusVisible}`]: {\n outline: 'auto'\n }\n });\n});\nconst Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiLink'\n });\n\n const {\n className,\n color = 'primary',\n component = 'a',\n onBlur,\n onFocus,\n TypographyClasses,\n underline = 'always',\n variant = 'inherit'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n const handlerRef = useForkRef(ref, focusVisibleRef);\n\n const handleBlur = event => {\n handleBlurVisible(event);\n\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleFocus = event => {\n handleFocusVisible(event);\n\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const ownerState = _extends({}, props, {\n color,\n component,\n focusVisible,\n underline,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(LinkRoot, _extends({\n className: clsx(classes.root, className),\n classes: TypographyClasses,\n color: color,\n component: component,\n onBlur: handleBlur,\n onFocus: handleFocus,\n ref: handlerRef,\n ownerState: ownerState,\n variant: variant\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the link.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .any,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * `classes` prop applied to the [`Typography`](/api/typography/) element.\n */\n TypographyClasses: PropTypes.object,\n\n /**\n * Controls when the link should have an underline.\n * @default 'always'\n */\n underline: PropTypes.oneOf(['always', 'hover', 'none']),\n\n /**\n * Applies the theme typography styles.\n * @default 'inherit'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['body1', 'body2', 'button', 'caption', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'inherit', 'overline', 'subtitle1', 'subtitle2']), PropTypes.string])\n} : void 0;\nexport default Link;"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","message","Grid","HelpBox","Box","sx","flexFlow","md","color","colors","link","textDecoration","pageHeaderText","icon","PageHeader","label","PageLayout","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","pageContentStyles","children","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","justifyContent","labelStyle","marginLeft","marginTop","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","actions","includes","Fragment","direction","sm","variant","length","component","onClick","id","size","configurationLink","padding","maxWidth","margin","overflow","textOverflow","lineClamp","cursor","configuration","prefix","disabled","to","configuration_id","configuration_label","settingsOptionsContainer","flexDirection","flexWrap","searchField","actionsTray","containerForHeader","spacing","configurationElements","hasPermission","CONSOLE_UI_RESOURCE","IAM_PAGES_PERMISSIONS","IAM_PAGES","map","element","Inspect","withSuspense","React","Register","Profile","history","path","exact","ToolsList","render","FeatureNotAvailablePage","NotFoundPage","Copyright","Typography","align","Link","href","Date","getFullYear","fontStyle","mt","getLinkUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","colorTransformations","textPrimary","secondary","textSecondary","error","LinkRoot","styled","name","overridesResolver","styles","ownerState","capitalize","underline","button","getPath","transformDeprecatedColors","_extends","textDecorationColor","alpha","undefined","position","WebkitTapHighlightColor","outline","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","linkClasses","inProps","ref","useThemeProps","onBlur","onFocus","TypographyClasses","other","_objectWithoutPropertiesLoose","useIsFocusVisible","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","focusVisibleRef","focusVisible","setFocusVisible","handlerRef","useForkRef","slots","composeClasses","useUtilityClasses","_jsx","clsx","event","current"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2338.3c79a135.chunk.js b/portal-ui/build/static/js/2338.a23aa141.chunk.js similarity index 95% rename from portal-ui/build/static/js/2338.3c79a135.chunk.js rename to portal-ui/build/static/js/2338.a23aa141.chunk.js index 531302dad..f16109bfb 100644 --- a/portal-ui/build/static/js/2338.3c79a135.chunk.js +++ b/portal-ui/build/static/js/2338.a23aa141.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2338],{84669:function(e,n,t){t(72791);var i=t(91523),r=t(11135),a=t(25787),s=t(74833),o=t(64554),l=t(80184);n.Z=(0,a.Z)((function(e){return(0,r.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var n=e.to,t=e.label,r=e.classes,a=e.className,c=e.executeOnClick;return(0,l.jsx)(o.Z,{sx:{display:"flex",alignItems:"center"},children:(0,l.jsx)(i.rU,{to:n,className:"".concat(r.link," ").concat(a||""),onClick:function(){c&&c()},children:(0,l.jsxs)("div",{className:r.iconBox,children:[(0,l.jsx)("div",{className:r.icon,children:(0,l.jsx)(s.xN,{})}),(0,l.jsx)("div",{className:r.label,children:t})]})})})}))},74794:function(e,n,t){var i=t(1413),r=(t(72791),t(61889)),a=t(11135),s=t(25787),o=t(23814),l=t(80184);n.Z=(0,s.Z)((function(e){return(0,a.Z)((0,i.Z)({},o.Bw))}))((function(e){var n=e.classes,t=e.className,i=void 0===t?"":t,a=e.children;return(0,l.jsx)("div",{className:n.contentSpacer,children:(0,l.jsx)(r.ZP,{container:!0,children:(0,l.jsx)(r.ZP,{item:!0,xs:12,className:i,children:a})})})}))},32291:function(e,n,t){var i=t(72791),r=t(60364),a=t(61889),s=t(11135),o=t(25787),l=t(20890),c=t(13400),d=t(95466),g=t(84683),x=t(3925),p=t(74833),m=t(80184),u={toggleList:x.kQ},h=(0,r.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),u);n.Z=h((0,o.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,r=e.actions,s=e.sidebarOpen,o=e.operatorMode,x=e.managerObjects,u=e.toggleList,h=e.middleComponent;return e.features.includes("hide-menu")?(0,m.jsx)(i.Fragment,{}):(0,m.jsxs)(a.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,m.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:h?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,m.jsx)("div",{className:n.logo,children:o?(0,m.jsx)(d.Z,{}):(0,m.jsx)(g.Z,{})}),(0,m.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),h&&(0,m.jsx)(a.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:h}),(0,m.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:h?3:6,className:n.rightMenu,children:[r&&r,x&&x.length>0&&(0,m.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){u()},id:"object-manager-toggle",size:"large",children:(0,m.jsx)(p.gx,{})})]})]})})))},72338:function(e,n,t){t.r(n),t.d(n,{default:function(){return x}});var i=t(72791),r=t(32291),a=t(34345),s=t(84669),o=t(74794),l=t(64554),c=t(80184),d=function(e){var n=e.onClick,t=e.icon,i=e.name;return(0,c.jsxs)("button",{style:{display:"flex",alignItems:"center",justifyContent:"flex-start",padding:10,background:"transparent",border:"1px solid #E5E5E5",borderRadius:2,cursor:"pointer"},onClick:function(){n(i)},children:[t?(0,c.jsx)(l.Z,{sx:{"& .min-icon":{height:"60px",width:"60px"}},children:t}):null,(0,c.jsx)("div",{style:{fontWeight:600,marginLeft:20},children:i})]})},g=t(56087),x=function(e){var n=e.history;return(0,c.jsxs)(i.Fragment,{children:[(0,c.jsx)(r.Z,{label:(0,c.jsx)(i.Fragment,{children:(0,c.jsx)(s.Z,{to:g.gA.TIERS,label:"Tier Types"})}),actions:(0,c.jsx)(i.Fragment,{})}),(0,c.jsx)(o.Z,{children:(0,c.jsxs)(l.Z,{sx:{border:"1px solid #eaeaea",padding:"40px"},children:[(0,c.jsx)("div",{style:{fontSize:16,fontWeight:600,paddingBottom:15},children:"Select Tier Type"}),(0,c.jsx)(l.Z,{sx:{margin:"0 auto",display:"grid",gridGap:"47px",gridTemplateColumns:{xs:"repeat(1, 1fr)",sm:"repeat(2, 1fr)",md:"repeat(3, 1fr)",lg:"repeat(4, 1fr)"}},children:a.Bh.map((function(e,t){return(0,c.jsx)(d,{name:e.targetTitle,onClick:function(){var t;t=e.serviceName,n.push("".concat(g.gA.TIERS_ADD,"/").concat(t))},icon:e.logo},"tierOpt-".concat(t.toString,"-").concat(e.targetTitle))}))})]})})]})}},34345:function(e,n,t){t.d(n,{Bh:function(){return c},Pp:function(){return a},b2:function(){return o},f0:function(){return s},vB:function(){return l}});var i=t(74833),r=t(80184),a="minio",s="gcs",o="s3",l="azure",c=[{serviceName:a,targetTitle:"MinIO",logo:(0,r.jsx)(i.$E,{}),logoXs:(0,r.jsx)(i.YE,{})},{serviceName:s,targetTitle:"Google Cloud Storage",logo:(0,r.jsx)(i.UQ,{}),logoXs:(0,r.jsx)(i.Vw,{})},{serviceName:o,targetTitle:"AWS S3",logo:(0,r.jsx)(i.fe,{}),logoXs:(0,r.jsx)(i.Xj,{})},{serviceName:l,targetTitle:"Azure",logo:(0,r.jsx)(i.jz,{}),logoXs:(0,r.jsx)(i.nA,{})}]}}]); -//# sourceMappingURL=2338.3c79a135.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2338],{84669:function(e,n,t){t(72791);var i=t(91523),r=t(11135),a=t(25787),s=t(13048),o=t(64554),l=t(80184);n.Z=(0,a.Z)((function(e){return(0,r.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var n=e.to,t=e.label,r=e.classes,a=e.className,c=e.executeOnClick;return(0,l.jsx)(o.Z,{sx:{display:"flex",alignItems:"center"},children:(0,l.jsx)(i.rU,{to:n,className:"".concat(r.link," ").concat(a||""),onClick:function(){c&&c()},children:(0,l.jsxs)("div",{className:r.iconBox,children:[(0,l.jsx)("div",{className:r.icon,children:(0,l.jsx)(s.xN,{})}),(0,l.jsx)("div",{className:r.label,children:t})]})})})}))},74794:function(e,n,t){var i=t(1413),r=(t(72791),t(61889)),a=t(11135),s=t(25787),o=t(23814),l=t(80184);n.Z=(0,s.Z)((function(e){return(0,a.Z)((0,i.Z)({},o.Bw))}))((function(e){var n=e.classes,t=e.className,i=void 0===t?"":t,a=e.children;return(0,l.jsx)("div",{className:n.contentSpacer,children:(0,l.jsx)(r.ZP,{container:!0,children:(0,l.jsx)(r.ZP,{item:!0,xs:12,className:i,children:a})})})}))},32291:function(e,n,t){var i=t(72791),r=t(60364),a=t(61889),s=t(11135),o=t(25787),l=t(20890),c=t(13400),d=t(95466),g=t(84683),x=t(3925),p=t(13048),m=t(80184),u={toggleList:x.kQ},h=(0,r.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),u);n.Z=h((0,o.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,r=e.actions,s=e.sidebarOpen,o=e.operatorMode,x=e.managerObjects,u=e.toggleList,h=e.middleComponent;return e.features.includes("hide-menu")?(0,m.jsx)(i.Fragment,{}):(0,m.jsxs)(a.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,m.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:h?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,m.jsx)("div",{className:n.logo,children:o?(0,m.jsx)(d.Z,{}):(0,m.jsx)(g.Z,{})}),(0,m.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),h&&(0,m.jsx)(a.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:h}),(0,m.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:h?3:6,className:n.rightMenu,children:[r&&r,x&&x.length>0&&(0,m.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){u()},id:"object-manager-toggle",size:"large",children:(0,m.jsx)(p.gx,{})})]})]})})))},72338:function(e,n,t){t.r(n),t.d(n,{default:function(){return x}});var i=t(72791),r=t(32291),a=t(34345),s=t(84669),o=t(74794),l=t(64554),c=t(80184),d=function(e){var n=e.onClick,t=e.icon,i=e.name;return(0,c.jsxs)("button",{style:{display:"flex",alignItems:"center",justifyContent:"flex-start",padding:10,background:"transparent",border:"1px solid #E5E5E5",borderRadius:2,cursor:"pointer"},onClick:function(){n(i)},children:[t?(0,c.jsx)(l.Z,{sx:{"& .min-icon":{height:"60px",width:"60px"}},children:t}):null,(0,c.jsx)("div",{style:{fontWeight:600,marginLeft:20},children:i})]})},g=t(56087),x=function(e){var n=e.history;return(0,c.jsxs)(i.Fragment,{children:[(0,c.jsx)(r.Z,{label:(0,c.jsx)(i.Fragment,{children:(0,c.jsx)(s.Z,{to:g.gA.TIERS,label:"Tier Types"})}),actions:(0,c.jsx)(i.Fragment,{})}),(0,c.jsx)(o.Z,{children:(0,c.jsxs)(l.Z,{sx:{border:"1px solid #eaeaea",padding:"40px"},children:[(0,c.jsx)("div",{style:{fontSize:16,fontWeight:600,paddingBottom:15},children:"Select Tier Type"}),(0,c.jsx)(l.Z,{sx:{margin:"0 auto",display:"grid",gridGap:"47px",gridTemplateColumns:{xs:"repeat(1, 1fr)",sm:"repeat(2, 1fr)",md:"repeat(3, 1fr)",lg:"repeat(4, 1fr)"}},children:a.Bh.map((function(e,t){return(0,c.jsx)(d,{name:e.targetTitle,onClick:function(){var t;t=e.serviceName,n.push("".concat(g.gA.TIERS_ADD,"/").concat(t))},icon:e.logo},"tierOpt-".concat(t.toString,"-").concat(e.targetTitle))}))})]})})]})}},34345:function(e,n,t){t.d(n,{Bh:function(){return c},Pp:function(){return a},b2:function(){return o},f0:function(){return s},vB:function(){return l}});var i=t(13048),r=t(80184),a="minio",s="gcs",o="s3",l="azure",c=[{serviceName:a,targetTitle:"MinIO",logo:(0,r.jsx)(i.$E,{}),logoXs:(0,r.jsx)(i.YE,{})},{serviceName:s,targetTitle:"Google Cloud Storage",logo:(0,r.jsx)(i.UQ,{}),logoXs:(0,r.jsx)(i.Vw,{})},{serviceName:o,targetTitle:"AWS S3",logo:(0,r.jsx)(i.fe,{}),logoXs:(0,r.jsx)(i.Xj,{})},{serviceName:l,targetTitle:"Azure",logo:(0,r.jsx)(i.jz,{}),logoXs:(0,r.jsx)(i.nA,{})}]}}]); +//# sourceMappingURL=2338.a23aa141.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2338.3c79a135.chunk.js.map b/portal-ui/build/static/js/2338.a23aa141.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/2338.3c79a135.chunk.js.map rename to portal-ui/build/static/js/2338.a23aa141.chunk.js.map index 227a962c2..abb0f20a2 100644 --- a/portal-ui/build/static/js/2338.3c79a135.chunk.js.map +++ b/portal-ui/build/static/js/2338.a23aa141.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2338.3c79a135.chunk.js","mappings":"4LA6GA,KAAeA,EAAAA,EAAAA,IArFA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,KAAM,CACJC,QAAS,QACTC,eAAgB,OAChB,WAAY,CACVC,MAAOL,EAAMM,QAAQC,QAAQC,QAGjCC,QAAS,CACPN,QAAS,OACTO,cAAe,MACf,UAAW,CACTC,WAAY,qBAEdC,OAAQ,OACRC,cAAe,EACfC,WAAY,EACZC,aAAc,GACdC,YAAa,EACbC,aAAc,GAEhBC,KAAM,CACJC,WAAY,EACZC,YAAa,OACbC,WAAY,SACZC,MAAO,OACP,cAAe,CACbjB,MAAOL,EAAMM,QAAQC,QAAQC,MAC7Bc,MAAO,OACPV,OAAQ,SAGZW,MAAO,CACLJ,WAAY,EACZE,WAAY,SACZP,WAAY,EACZU,SAAU,OACVC,WAAY,IACZpB,MAAOL,EAAMM,QAAQC,QAAQC,WA8CnC,EAlCiB,SAAC,GAMA,IALhBkB,EAKe,EALfA,GACAH,EAIe,EAJfA,MACAI,EAGe,EAHfA,QACAC,EAEe,EAFfA,UACAC,EACe,EADfA,eAEA,OACE,SAAC,IAAD,CACEC,GAAI,CACF3B,QAAS,OACTkB,WAAY,UAHhB,UAME,SAAC,KAAD,CACEK,GAAIA,EACJE,UAAS,UAAKD,EAAQzB,KAAb,YAAqB0B,GAAwB,IACtDG,QAAS,WACHF,GACFA,KALN,UASE,iBAAKD,UAAWD,EAAQlB,QAAxB,WACE,gBAAKmB,UAAWD,EAAQT,KAAxB,UACE,SAAC,KAAD,OAEF,gBAAKU,UAAWD,EAAQJ,MAAxB,SAAgCA,e,sGCxE1C,KAAexB,EAAAA,EAAAA,IAvBA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,UACR+B,EAAAA,OAqBP,EAZmB,SAAC,GAA4D,IAA1DL,EAAyD,EAAzDA,QAAyD,IAAhDC,UAAAA,OAAgD,MAApC,GAAoC,EAAhCK,EAAgC,EAAhCA,SAC7C,OACE,gBAAKL,UAAWD,EAAQO,cAAxB,UACE,SAAC,KAAD,CAAMC,WAAS,EAAf,UACE,SAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIT,UAAWA,EAA9B,SACGK,Y,6JCiJLK,EAAqB,CACzBC,WAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,KAXD,SAACC,GAAD,MAAsB,CACrCC,YAAaD,EAAME,OAAOD,YAC1BE,aAAcH,EAAME,OAAOC,aAC3BC,eAAgBJ,EAAMK,cAAcC,cAAcC,gBAClDC,SAAUR,EAAMS,QAAQC,QAAQF,YAOEZ,GAEpC,IAAeE,GAAUzC,EAAAA,EAAAA,IAnIV,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXoD,gBAAiB,CACf/B,MAAO,OACPgC,UAAW,GACXnD,QAAS,OACToD,gBAAiB,OACjBC,KAAM,EACNC,UAAW,8BAEblC,MAAO,CACLpB,QAAS,OACTuD,eAAgB,aAChBrC,WAAY,UAEdsC,WAAY,CACVtD,MAAO,OACPmB,SAAU,GACVC,WAAY,IACZmC,WAAY,GACZC,UAAW,GAEbC,UAAW,CACTC,UAAW,SAEbC,KAAM,CACJJ,WAAY,GACZK,KAAMjE,EAAMM,QAAQC,QAAQ2D,KAC5B,cAAe,CACb5C,MAAO,MAGX6C,gBAAiB,CACfhE,QAAS,OACTuD,eAAgB,SAChBrC,WAAY,cAgGOtB,EA5FN,SAAC,GAUA,IATlB4B,EASiB,EATjBA,QACAJ,EAQiB,EARjBA,MACA6C,EAOiB,EAPjBA,QACAzB,EAMiB,EANjBA,YACAE,EAKiB,EALjBA,aACAC,EAIiB,EAJjBA,eACAP,EAGiB,EAHjBA,WACA4B,EAEiB,EAFjBA,gBAGA,OADiB,EADjBjB,SAEamB,SAAS,cACb,SAAC,EAAAC,SAAD,KAGP,UAAC,KAAD,CACEnC,WAAS,EACTP,UAAS,UAAKD,EAAQ0B,gBAAb,gBACTkB,UAAU,MACVlD,WAAW,SAJb,WAME,UAAC,KAAD,CACEe,MAAI,EACJC,GAAI,GACJmC,GAAI,GACJC,GAAIN,EAAkB,EAAI,EAC1BvC,UAAWD,EAAQJ,MACnBO,GAAI,CACFhB,WAAY,CAAC,OAAQ,OAAQ,IAAK,MAPtC,WAUI6B,IACA,gBAAKf,UAAWD,EAAQqC,KAAxB,SACGnB,GAAe,SAAC,IAAD,KAAmB,SAAC,IAAD,OAGvC,SAAC,IAAD,CAAY6B,QAAQ,KAAK9C,UAAWD,EAAQgC,WAA5C,SACGpC,OAGJ4C,IACC,SAAC,KAAD,CACE/B,MAAI,EACJC,GAAI,GACJmC,GAAI,GACJC,GAAI,EACJ7C,UAAWD,EAAQwC,gBACnBrC,GAAI,CAAE+B,UAAW,CAAC,OAAQ,OAAQ,IAAK,MANzC,SAQGM,KAGL,UAAC,KAAD,CACE/B,MAAI,EACJC,GAAI,GACJmC,GAAI,GACJC,GAAIN,EAAkB,EAAI,EAC1BvC,UAAWD,EAAQmC,UALrB,UAOGM,GAAWA,EACXtB,GAAkBA,EAAe6B,OAAS,IACzC,SAAC,IAAD,CACEtE,MAAM,UACN,aAAW,eACXuE,UAAU,OACV7C,QAAS,WACPQ,KAEFsC,GAAG,wBACHC,KAAK,QARP,UAUE,SAAC,KAAD,iB,oJCvFZ,EA1CqB,SAAC,GAAgD,IAA9C/C,EAA6C,EAA7CA,QAASb,EAAoC,EAApCA,KAAM6D,EAA8B,EAA9BA,KACrC,OACE,oBACEC,MAAO,CACL7E,QAAS,OACTkB,WAAY,SACZqC,eAAgB,aAChBuB,QAAS,GACTtE,WAAY,cACZuE,OAAQ,oBACRjE,aAAc,EACdkE,OAAQ,WAEVpD,QAAS,WACPA,EAAQgD,IAZZ,UAeG7D,GACC,SAACkE,EAAA,EAAD,CACEtD,GAAI,CACF,cAAe,CACblB,OAAQ,OACRU,MAAO,SAJb,SAQGJ,IAED,MAEJ,gBACE8D,MAAO,CACLvD,WAAY,IACZmC,WAAY,IAHhB,SAMGmB,Q,WC0BT,EAxDyB,SAAC,GAAmC,IAAjCM,EAAgC,EAAhCA,QAK1B,OACE,UAAC,EAAAf,SAAD,YACE,SAACgB,EAAA,EAAD,CACE/D,OACE,SAAC,EAAA+C,SAAD,WACE,SAACiB,EAAA,EAAD,CAAU7D,GAAI8D,EAAAA,GAAAA,MAAiBjE,MAAM,iBAGzC6C,SAAS,SAAC,WAAD,OAGX,SAACqB,EAAA,EAAD,WACE,UAACL,EAAA,EAAD,CACEtD,GAAI,CACFoD,OAAQ,oBACRD,QAAS,QAHb,WAME,gBAAKD,MAAO,CAAExD,SAAU,GAAIC,WAAY,IAAKZ,cAAe,IAA5D,+BAGA,SAACuE,EAAA,EAAD,CACEtD,GAAI,CACF4D,OAAQ,SACRvF,QAAS,OACTwF,QAAS,OACTC,oBAAqB,CACnBvD,GAAI,iBACJmC,GAAI,iBACJC,GAAI,iBACJoB,GAAI,mBATV,SAaGC,EAAAA,GAAAA,KAAc,SAACC,EAAUC,GAAX,OACb,SAAC,EAAD,CAEEjB,KAAMgB,EAASE,YACflE,QAAS,WA1CJ,IAACmE,EAAAA,EA2COH,EAASI,YA1ClCd,EAAQe,KAAR,UAAgBZ,EAAAA,GAAAA,UAAhB,YAAuCU,KA4C3BhF,KAAM6E,EAAS/B,MANjB,kBACkBgC,EAAMK,SADxB,YACoCN,EAASE,6B,iLC5C9CK,EAAmB,QACnBC,EAAiB,MACjBC,EAAgB,KAChBC,EAAmB,QAEnBX,EAAY,CACvB,CACEK,YAAaG,EACbL,YAAa,QACbjC,MAAM,SAAC,KAAD,IACN0C,QAAQ,SAAC,KAAD,KAEV,CACEP,YAAaI,EACbN,YAAa,uBACbjC,MAAM,SAAC,KAAD,IACN0C,QAAQ,SAAC,KAAD,KAEV,CACEP,YAAaK,EACbP,YAAa,SACbjC,MAAM,SAAC,KAAD,IACN0C,QAAQ,SAAC,KAAD,KAEV,CACEP,YAAaM,EACbR,YAAa,QACbjC,MAAM,SAAC,KAAD,IACN0C,QAAQ,SAAC,KAAD","sources":["common/BackLink.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\n\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 \n {icon}\n \n ) : null}\n\n \n {name}\n
    \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 } from \"react\";\n\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport { tierTypes } from \"./utils\";\nimport BackLink from \"../../../../common/BackLink\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport { Box } from \"@mui/material\";\nimport TierTypeCard from \"./TierTypeCard\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\n\ninterface ITypeTiersConfig {\n history: any;\n}\n\nconst TierTypeSelector = ({ history }: ITypeTiersConfig) => {\n const typeSelect = (selectName: string) => {\n history.push(`${IAM_PAGES.TIERS_ADD}/${selectName}`);\n };\n\n return (\n \n \n \n \n }\n actions={}\n />\n\n \n \n
    \n Select Tier Type\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 GoogleTierIcon,\n MinIOTierIcon,\n MinIOTierIconXs,\n S3TierIcon,\n GoogleTierIconXs,\n S3TierIconXs,\n AzureTierIconXs,\n} from \"../../../../icons\";\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":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","pageContentStyles","children","contentSpacer","container","item","xs","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","backgroundColor","left","boxShadow","justifyContent","labelStyle","marginLeft","marginTop","rightMenu","textAlign","logo","fill","main","middleComponent","actions","includes","Fragment","direction","sm","md","variant","length","component","id","size","name","style","padding","border","cursor","Box","history","PageHeader","BackLink","IAM_PAGES","PageLayout","margin","gridGap","gridTemplateColumns","lg","tierTypes","tierType","index","targetTitle","selectName","serviceName","push","toString","minioServiceName","gcsServiceName","s3ServiceName","azureServiceName","logoXs"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2338.a23aa141.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","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) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n
    \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\n\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 \n {icon}\n \n ) : null}\n\n \n {name}\n
    \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 } from \"react\";\n\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport { tierTypes } from \"./utils\";\nimport BackLink from \"../../../../common/BackLink\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport { Box } from \"@mui/material\";\nimport TierTypeCard from \"./TierTypeCard\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\n\ninterface ITypeTiersConfig {\n history: any;\n}\n\nconst TierTypeSelector = ({ history }: ITypeTiersConfig) => {\n const typeSelect = (selectName: string) => {\n history.push(`${IAM_PAGES.TIERS_ADD}/${selectName}`);\n };\n\n return (\n \n \n \n \n }\n actions={}\n />\n\n \n \n
    \n Select Tier Type\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 GoogleTierIcon,\n MinIOTierIcon,\n MinIOTierIconXs,\n S3TierIcon,\n GoogleTierIconXs,\n S3TierIconXs,\n AzureTierIconXs,\n} from \"../../../../icons\";\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":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","pageContentStyles","children","contentSpacer","container","item","xs","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","backgroundColor","left","boxShadow","justifyContent","labelStyle","marginLeft","marginTop","rightMenu","textAlign","logo","fill","main","middleComponent","actions","includes","Fragment","direction","sm","md","variant","length","component","id","size","name","style","padding","border","cursor","Box","history","PageHeader","BackLink","IAM_PAGES","PageLayout","margin","gridGap","gridTemplateColumns","lg","tierTypes","tierType","index","targetTitle","selectName","serviceName","push","toString","minioServiceName","gcsServiceName","s3ServiceName","azureServiceName","logoXs"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2434.d3149513.chunk.js b/portal-ui/build/static/js/2434.d3149513.chunk.js deleted file mode 100644 index 4c6c03e13..000000000 --- a/portal-ui/build/static/js/2434.d3149513.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2434,7015],{84669:function(e,t,n){n(72791);var a=n(91523),r=n(11135),s=n(25787),i=n(74833),o=n(64554),l=n(80184);t.Z=(0,s.Z)((function(e){return(0,r.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var t=e.to,n=e.label,r=e.classes,s=e.className,c=e.executeOnClick;return(0,l.jsx)(o.Z,{sx:{display:"flex",alignItems:"center"},children:(0,l.jsx)(a.rU,{to:t,className:"".concat(r.link," ").concat(s||""),onClick:function(){c&&c()},children:(0,l.jsxs)("div",{className:r.iconBox,children:[(0,l.jsx)("div",{className:r.icon,children:(0,l.jsx)(i.xN,{})}),(0,l.jsx)("div",{className:r.label,children:n})]})})})}))},37798:function(e,t,n){n.r(t),n.d(t,{default:function(){return Z}});var a=n(1413),r=n(72791),s=n(26181),i=n.n(s),o=n(11135),l=n(25787),c=n(56028),d=n(61889),u=n(77196),m=n(63466),g=n(85531),p=n(78029),f=n.n(p),h=n(74833),x=n(23814),y=n(80184),v=(0,l.Z)((function(e){return(0,o.Z)({container:{display:"flex",flexFlow:"column",padding:"20px 0 8px 0"},inputWithCopy:{"& .MuiInputBase-root ":{width:"100%",background:"#FBFAFA","& .MuiInputBase-input":{height:".8rem"},"& .MuiInputAdornment-positionEnd":{marginRight:".5rem","& .MuiButtonBase-root":{height:"2rem"}}},"& .MuiButtonBase-root .min-icon":{width:".8rem",height:".8rem"}},inputLabel:(0,a.Z)((0,a.Z)({},x.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var t=e.label,n=void 0===t?"":t,a=e.value,r=void 0===a?"":a,s=e.classes,i=void 0===s?{}:s;return(0,y.jsxs)("div",{className:i.container,children:[(0,y.jsxs)("div",{className:i.inputLabel,children:[n,":"]}),(0,y.jsx)("div",{className:i.inputWithCopy,children:(0,y.jsx)(u.Z,{value:r,readOnly:!0,endAdornment:(0,y.jsx)(m.Z,{position:"end",children:(0,y.jsx)(f(),{text:r,children:(0,y.jsx)(g.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,y.jsx)(h.TI,{})})})})})})]})})),C=n(89357),S=n(40603),j=function(e,t){var n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(t)),n.setAttribute("download",e),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)},Z=(0,l.Z)((function(e){return(0,o.Z)({warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}},credentialTitle:{padding:".8rem 0 0 0",fontWeight:600,fontSize:".9rem"},buttonContainer:{textAlign:"right",marginTop:"1rem"},credentialsPanel:{overflowY:"auto",maxHeight:350},promptTitle:{display:"flex",alignItems:"center"},buttonSpacer:{marginRight:".9rem"},promptIcon:{marginRight:".1rem",display:"flex",alignItems:"center",height:"2rem",width:"2rem"}})}))((function(e){var t=e.classes,n=e.newServiceAccount,s=e.open,o=e.closeModal,l=e.entity;if(!n)return null;var u=i()(n,"console",null),m=i()(n,"idp",!1);return(0,y.jsx)(c.Z,{modalOpen:s,onClose:function(){o()},title:(0,y.jsx)("div",{className:t.promptTitle,children:(0,y.jsxs)("div",{children:["New ",l," Created"]})}),titleIcon:(0,y.jsx)(h.tV,{}),children:(0,y.jsxs)(d.ZP,{container:!0,children:[(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:t.formScrollable,children:["A new ",l," has been created with the following details:",!m&&u&&(0,y.jsx)(r.Fragment,{children:(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:t.credentialsPanel,children:[(0,y.jsx)("div",{className:t.credentialTitle,children:"Console Credentials"}),Array.isArray(u)&&u.map((function(e,t){return(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(v,{label:"Access Key",value:e.accessKey}),(0,y.jsx)(v,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(u)&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(v,{label:"Access Key",value:u.accessKey}),(0,y.jsx)(v,{label:"Secret Key",value:u.secretKey})]})]})}),m?(0,y.jsx)("div",{className:t.warningBlock,children:"Please Login via the configured external identity provider."}):(0,y.jsxs)("div",{className:t.warningBlock,children:[(0,y.jsx)(C.Z,{}),(0,y.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,y.jsx)(d.ZP,{item:!0,xs:12,className:t.buttonContainer,children:!m&&(0,y.jsxs)(y.Fragment,{children:[(0,y.jsx)(S.Z,{id:"download-button",tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",text:"Download for import",className:t.buttonSpacer,onClick:function(){var e={};u&&(e=Array.isArray(u)?u.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:u.url,accessKey:u.accessKey,secretKey:u.secretKey,api:"s3v4",path:"auto"});j("credentials.json",JSON.stringify((0,a.Z)({},e)))},icon:(0,y.jsx)(h._8,{}),variant:"contained",color:"primary"}),Array.isArray(u)&&u.length>1&&(0,y.jsx)(S.Z,{id:"download-all-button",tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",text:"Download all access credentials",className:t.buttonSpacer,onClick:function(){var e={};u&&(e=u.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));j("all_credentials.json",JSON.stringify((0,a.Z)({},e)))},icon:(0,y.jsx)(h._8,{}),variant:"contained",color:"primary"})]})})]})})}))},54639:function(e,t,n){n.d(t,{Z:function(){return C}});var a=n(70885),r=n(1413),s=n(72791),i=n(26181),o=n.n(i),l=n(61889),c=n(30829),d=n(20068),u=n(13400),m=n(99663),g=n(86711),p=n(11135),f=n(25787),h=n(23814),x=n(84570),y=n(22512),v=n(80184),C=(0,f.Z)((function(e){return(0,p.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},h.YI),h.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},h.bV),{},{inputLabel:(0,r.Z)((0,r.Z)({},h.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,r.Z)((0,r.Z)({},h.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var t=e.label,n=e.classes,r=e.onChange,i=e.id,p=e.name,f=e.disabled,h=void 0!==f&&f,C=e.tooltip,S=void 0===C?"":C,j=e.required,Z=e.error,b=void 0===Z?"":Z,_=e.accept,N=void 0===_?"":_,I=e.value,A=void 0===I?"":I,P=(0,s.useState)(!1),k=(0,a.Z)(P,2),T=k[0],w=k[1];return(0,v.jsx)(s.Fragment,{children:(0,v.jsxs)(l.ZP,{item:!0,xs:12,className:"".concat(n.fileInputField," ").concat(n.fieldBottom," ").concat(n.fieldContainer," ").concat(""!==b?n.errorInField:""),children:[""!==t&&(0,v.jsxs)(c.Z,{htmlFor:i,className:"".concat(""!==b?n.fieldLabelError:""," ").concat(n.inputLabel),children:[(0,v.jsxs)("span",{children:[t,j?"*":""]}),""!==S&&(0,v.jsx)("div",{className:n.tooltipContainer,children:(0,v.jsx)(d.Z,{title:S,placement:"top-start",children:(0,v.jsx)("div",{className:n.tooltip,children:(0,v.jsx)(x.Z,{})})})})]}),T||""===A?(0,v.jsxs)("div",{className:n.textBoxContainer,children:[(0,v.jsx)("input",{type:"file",name:p,onChange:function(e){var t=o()(e,"target.files[0].name","");!function(e,t){var n=e.target.files[0],a=new FileReader;a.readAsDataURL(n),a.onload=function(){var e=a.result;if(e){var n=e.toString().split("base64,");2===n.length&&t(n[1])}}}(e,(function(e){r(e,t)}))},accept:N,required:j,disabled:h,className:n.fileInputField}),""!==A&&(0,v.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){w(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,v.jsx)(g.Z,{})}),""!==b&&(0,v.jsx)(y.Z,{errorMessage:b})]}):(0,v.jsxs)("div",{className:n.fileReselect,children:[(0,v.jsx)("div",{className:n.valueString,children:A}),(0,v.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){w(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,v.jsx)(m.Z,{})})]})]})})}))},74794:function(e,t,n){var a=n(1413),r=(n(72791),n(61889)),s=n(11135),i=n(25787),o=n(23814),l=n(80184);t.Z=(0,i.Z)((function(e){return(0,s.Z)((0,a.Z)({},o.Bw))}))((function(e){var t=e.classes,n=e.className,a=void 0===n?"":n,s=e.children;return(0,l.jsx)("div",{className:t.contentSpacer,children:(0,l.jsx)(r.ZP,{container:!0,children:(0,l.jsx)(r.ZP,{item:!0,xs:12,className:a,children:s})})})}))},23508:function(e,t,n){var a=n(1413),r=n(72791),s=n(5574),i=n(65661),o=n(39157),l=n(97123),c=n(36151),d=n(59860),u=n(13400),m=n(29823),g=n(11135),p=n(25787),f=n(23814),h=n(80184);t.Z=(0,p.Z)((function(e){return(0,g.Z)((0,a.Z)({},f.Qw))}))((function(e){var t=e.isOpen,n=void 0!==t&&t,g=e.onClose,p=e.onCancel,f=e.onConfirm,x=e.classes,y=void 0===x?{}:x,v=e.title,C=void 0===v?"":v,S=e.isLoading,j=e.confirmationContent,Z=e.cancelText,b=void 0===Z?"Cancel":Z,_=e.confirmText,N=void 0===_?"Confirm":_,I=e.confirmButtonProps,A=void 0===I?{}:I,P=e.cancelButtonProps,k=void 0===P?{}:P,T=e.titleIcon,w=void 0===T?null:T;return(0,h.jsxs)(s.Z,{open:n,onClose:function(e,t){"backdropClick"!==t&&g()},className:y.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(i.Z,{className:y.title,children:[(0,h.jsxs)("div",{className:y.titleText,children:[w," ",C]}),(0,h.jsx)("div",{className:y.closeContainer,children:(0,h.jsx)(u.Z,{"aria-label":"close",className:y.closeButton,onClick:g,disableRipple:!0,size:"small",children:(0,h.jsx)(m.Z,{})})})]}),(0,h.jsx)(o.Z,{className:y.content,children:j}),(0,h.jsxs)(l.Z,{className:y.actions,children:[(0,h.jsx)(c.Z,(0,a.Z)((0,a.Z)({className:y.cancelButton,onClick:p||g,disabled:S,type:"button"},k),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:b})),(0,h.jsx)(d.Z,(0,a.Z)((0,a.Z)({className:y.confirmButton,type:"button",onClick:f,loading:S,disabled:S,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(r.Fragment,{}),autoFocus:!0,id:"confirm-ok"},A),{},{children:N}))]})]})}))},92434:function(e,t,n){n.r(t),n.d(t,{default:function(){return we}});var a=n(70885),r=n(1413),s=n(72791),i=n(26181),o=n.n(i),l=n(60364),c=n(61889),d=n(40986),u=n(11135),m=n(25787),g=n(23814),p=n(81207),f=n(45248),h=n(28371),x=n(42649),y=n(76256),v=n(37798),C=n(75460),S=n(42982),j=n(10703),Z=n(84741),b=n(40968),_=n(37516),N=n(21435),I=n(80184),A=(0,l.$j)((function(e){return{exposeMinIO:e.tenants.createTenant.fields.configure.exposeMinIO,exposeConsole:e.tenants.createTenant.fields.configure.exposeConsole,tenantCustom:e.tenants.createTenant.fields.configure.tenantCustom,tenantSecurityContext:e.tenants.createTenant.fields.configure.tenantSecurityContext}}),{updateAddField:C.HM,isPageValid:C.NO}),P=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},tenantCustomizationFields:{marginLeft:30,width:"88%",margin:"auto"},containerItem:{marginRight:15},fieldGroup:(0,r.Z)((0,r.Z)({},g.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},fieldSpaceTop:{marginTop:15}},g.oO),g.AK))}))(A((function(e){var t=e.classes,n=e.exposeMinIO,i=e.exposeConsole,o=e.tenantCustom,l=e.updateAddField,d=e.isPageValid,u=e.tenantSecurityContext,m=(0,s.useState)({}),g=(0,a.Z)(m,2),p=g[0],f=g[1],h=(0,s.useCallback)((function(e,t){l("configure",e,t)}),[l]);(0,s.useEffect)((function(){var e=[];o&&(e=[].concat((0,S.Z)(e),[{fieldKey:"tenant_securityContext_runAsUser",required:!0,value:u.runAsUser,customValidation:""===u.runAsUser||parseInt(u.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"tenant_securityContext_runAsGroup",required:!0,value:u.runAsGroup,customValidation:""===u.runAsGroup||parseInt(u.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"tenant_securityContext_fsGroup",required:!0,value:u.fsGroup,customValidation:""===u.fsGroup||parseInt(u.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]));var t=(0,b.R)(e);d("configure",0===Object.keys(t).length),f(t)}),[d,o,u]);var x=function(e){f((0,Z.h)(p,e))};return(0,I.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,I.jsxs)("div",{className:t.headerElement,children:[(0,I.jsx)("h3",{className:t.h3Section,children:"Configure"}),(0,I.jsx)("span",{className:t.descriptionText,children:"Basic configurations for tenant management"})]}),(0,I.jsxs)("div",{className:t.headerElement,children:[(0,I.jsx)("h3",{className:t.h3Section,children:"Services"}),(0,I.jsx)("span",{className:t.descriptionText,children:"Whether the tenant's services should request an external IP via LoadBalancer service type."})]}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,I.jsx)(_.Z,{value:"expose_minio",id:"expose_minio",name:"expose_minio",checked:n,onChange:function(e){var t=e.target.checked;h("exposeMinIO",t)},label:"Expose MiniO Service"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,I.jsx)(_.Z,{value:"expose_console",id:"expose_console",name:"expose_console",checked:i,onChange:function(e){var t=e.target.checked;h("exposeConsole",t)},label:"Expose Console Service"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,I.jsx)(_.Z,{value:"tenantConfig",id:"tenant_configuration",name:"tenant_configuration",checked:o,onChange:function(e){var t=e.target.checked;h("tenantCustom",t)},label:"Security Context"})}),o&&(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.tenantCustomizationFields,children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"SecurityContext for MinIO"}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:"".concat(t.configSectionItem),children:(0,I.jsxs)("div",{className:"".concat(t.multiContainer," ").concat(t.responsiveSectionItem),children:[(0,I.jsx)("div",{className:t.containerItem,children:(0,I.jsx)(N.Z,{type:"number",id:"tenant_securityContext_runAsUser",name:"tenant_securityContext_runAsUser",onChange:function(e){h("tenantSecurityContext",(0,r.Z)((0,r.Z)({},u),{},{runAsUser:e.target.value})),x("tenant_securityContext_runAsUser")},label:"Run As User",value:u.runAsUser,required:!0,error:p.tenant_securityContext_runAsUser||"",min:"0"})}),(0,I.jsx)("div",{className:t.containerItem,children:(0,I.jsx)(N.Z,{type:"number",id:"tenant_securityContext_runAsGroup",name:"tenant_securityContext_runAsGroup",onChange:function(e){h("tenantSecurityContext",(0,r.Z)((0,r.Z)({},u),{},{runAsGroup:e.target.value})),x("tenant_securityContext_runAsGroup")},label:"Run As Group",value:u.runAsGroup,required:!0,error:p.tenant_securityContext_runAsGroup||"",min:"0"})}),(0,I.jsx)("div",{className:t.containerItem,children:(0,I.jsx)(N.Z,{type:"number",id:"tenant_securityContext_fsGroup",name:"tenant_securityContext_fsGroup",onChange:function(e){h("tenantSecurityContext",(0,r.Z)((0,r.Z)({},u),{},{fsGroup:e.target.value})),x("tenant_securityContext_fsGroup")},label:"FsGroup",value:u.fsGroup,required:!0,error:p.tenant_securityContext_fsGroup||"",min:"0"})})]})}),(0,I.jsx)("br",{}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,I.jsx)("div",{className:t.multiContainer,children:(0,I.jsx)(_.Z,{value:"tenantSecurityContextRunAsNonRoot",id:"tenant_securityContext_runAsNonRoot",name:"tenant_securityContext_runAsNonRoot",checked:u.runAsNonRoot,onChange:function(e){var t=e.target.checked;h("tenantSecurityContext",(0,r.Z)((0,r.Z)({},u),{},{runAsNonRoot:t}))},label:"Do not run as Root"})})})]})})]})}))),k=n(20068),T=n(13400),w=n(20890),R=n(22918),D=n(27247),F=n(83679),E=n(42419),K=n(51979),z=(0,l.$j)((function(e){return{idpSelection:e.tenants.createTenant.fields.identityProvider.idpSelection,accessKeys:e.tenants.createTenant.fields.identityProvider.accessKeys,secretKeys:e.tenants.createTenant.fields.identityProvider.secretKeys,openIDConfigurationURL:e.tenants.createTenant.fields.identityProvider.openIDConfigurationURL,openIDClientID:e.tenants.createTenant.fields.identityProvider.openIDClientID,openIDSecretID:e.tenants.createTenant.fields.identityProvider.openIDSecretID,openIDCallbackURL:e.tenants.createTenant.fields.identityProvider.openIDCallbackURL,openIDClaimName:e.tenants.createTenant.fields.identityProvider.openIDClaimName,openIDScopes:e.tenants.createTenant.fields.identityProvider.openIDScopes,ADURL:e.tenants.createTenant.fields.identityProvider.ADURL,ADSkipTLS:e.tenants.createTenant.fields.identityProvider.ADSkipTLS,ADServerInsecure:e.tenants.createTenant.fields.identityProvider.ADServerInsecure,ADGroupSearchBaseDN:e.tenants.createTenant.fields.identityProvider.ADGroupSearchBaseDN,ADGroupSearchFilter:e.tenants.createTenant.fields.identityProvider.ADGroupSearchFilter,ADUserDNs:e.tenants.createTenant.fields.identityProvider.ADUserDNs,ADLookupBindDN:e.tenants.createTenant.fields.identityProvider.ADLookupBindDN,ADLookupBindPassword:e.tenants.createTenant.fields.identityProvider.ADLookupBindPassword,ADUserDNSearchBaseDN:e.tenants.createTenant.fields.identityProvider.ADUserDNSearchBaseDN,ADUserDNSearchFilter:e.tenants.createTenant.fields.identityProvider.ADUserDNSearchFilter,ADServerStartTLS:e.tenants.createTenant.fields.identityProvider.ADServerStartTLS}}),{updateAddField:C.HM,isPageValid:C.NO}),G=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({shortened:{gridTemplateColumns:"auto auto 50px 50px",display:"grid",gridGap:15,marginBottom:10,"& input":{fontWeight:400}},buttonTray:{marginLeft:10,display:"flex",height:38,"& button":{background:"#EAEAEA"}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},protocolRadioOptions:{display:"flex",flexFlow:"column",marginBottom:10,"& label":{fontSize:14},"& div":{display:"flex",flexFlow:"column",alignItems:"baseline"}},adUserDnRows:{display:"flex"}},g.QV),g.DF),g.oO),g.AK))}))(z((function(e){var t=e.classes,n=e.idpSelection,r=e.accessKeys,i=e.secretKeys,o=e.openIDConfigurationURL,l=e.openIDClientID,d=e.openIDSecretID,u=e.openIDCallbackURL,m=e.openIDClaimName,g=e.openIDScopes,p=e.ADURL,f=e.ADSkipTLS,h=e.ADServerInsecure,x=e.ADGroupSearchBaseDN,y=e.ADGroupSearchFilter,v=e.ADUserDNs,C=e.ADLookupBindDN,A=e.ADLookupBindPassword,P=e.ADUserDNSearchBaseDN,z=e.ADUserDNSearchFilter,G=e.ADServerStartTLS,U=e.updateAddField,L=e.isPageValid,q=(0,s.useState)({}),V=(0,a.Z)(q,2),M=V[0],O=V[1],B=(0,s.useCallback)((function(e,t){U("identityProvider",e,t)}),[U]),W=function(e,t){var n=(0,S.Z)(r);n[e]=t,B("accessKeys",n)},H=function(e,t){var n=(0,S.Z)(i);n[e]=t,B("secretKeys",n)},$=function(e,t){var n=(0,S.Z)(v);n[e]=t,B("ADUserDNs",n)},Q=function(e){O((0,Z.h)(M,e))};(0,s.useEffect)((function(){var e=[];if("Built-in"===n){e=(0,S.Z)(e);for(var t=0;t1&&(r.splice(n,1),i.splice(n,1),W(r.length-1,r[r.length-1]))},children:(0,I.jsx)(K.Z,{})})})}),(0,I.jsx)(k.Z,{title:"Randomize Credentials","aria-label":"add",children:(0,I.jsx)("div",{className:t.overlayAction,children:(0,I.jsx)(T.Z,{onClick:function(){W(n,(0,Z.z)(16)),H(n,(0,Z.z)(32))},size:"small",children:(0,I.jsx)(R.Z,{})})})})]})]})},"identityField-".concat(n.toString()))}))),"AD"===n&&(Y=v.map((function(e,n){return(0,I.jsx)(s.Fragment,{children:(0,I.jsxs)("div",{className:t.adUserDnRows,children:[(0,I.jsx)(N.Z,{id:"ad-userdn-".concat(n.toString()),label:"",placeholder:"",name:"ad-userdn-".concat(n.toString()),value:v[n],onChange:function(e){$(n,e.target.value),Q("ad-userdn-".concat(n.toString()))},index:n,error:M["ad-userdn-".concat(n.toString())]||""},"csv-ad-userdn-".concat(n.toString())),(0,I.jsxs)("div",{className:t.buttonTray,children:[(0,I.jsx)(k.Z,{title:"Add User","aria-label":"add",children:(0,I.jsx)(T.Z,{size:"small",onClick:function(){v.push(""),$(v.length-1,"")},children:(0,I.jsx)(E.Z,{})})}),(0,I.jsx)(k.Z,{title:"Remove","aria-label":"add",children:(0,I.jsx)(T.Z,{size:"small",style:{marginLeft:16},onClick:function(){v.length>1&&(v.splice(n,1),W(v.length-1,v[v.length-1]))},children:(0,I.jsx)(D.Z,{})})})]})]})},"identityField-".concat(n.toString()))}))),(0,I.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,I.jsxs)("div",{className:t.headerElement,children:[(0,I.jsx)("h3",{className:t.h3Section,children:"Identity Provider"}),(0,I.jsx)("span",{className:t.descriptionText,children:"Access to the tenant can be controlled via an external Identity Manager."})]}),(0,I.jsxs)(c.ZP,{item:!0,xs:12,className:t.protocolRadioOptions,children:[(0,I.jsx)("label",{children:"Protocol"}),(0,I.jsx)(F.Z,{currentSelection:n,id:"idp-options",name:"idp-options",label:" ",onChange:function(e){B("idpSelection",e.target.value)},selectorOptions:[{label:"Built-in",value:"Built-in"},{label:"OpenID",value:"OpenID"},{label:"Active Directory",value:"AD"}]})]}),"Built-in"===n&&(0,I.jsxs)(s.Fragment,{children:["Add additional users",Y]}),"OpenID"===n&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"openID_CONFIGURATION_URL",name:"openID_CONFIGURATION_URL",onChange:function(e){B("openIDConfigurationURL",e.target.value),Q("openID_CONFIGURATION_URL")},label:"Configuration URL",value:o,placeholder:"https://your-identity-provider.com/.well-known/openid-configuration",error:M.openID_CONFIGURATION_URL||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"openID_clientID",name:"openID_clientID",onChange:function(e){B("openIDClientID",e.target.value),Q("openID_clientID")},label:"Client ID",value:l,error:M.openID_clientID||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"openID_secretID",name:"openID_secretID",onChange:function(e){B("openIDSecretID",e.target.value),Q("openID_secretID")},label:"Secret ID",value:d,error:M.openID_secretID||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"openID_callbackURL",name:"openID_callbackURL",onChange:function(e){B("openIDCallbackURL",e.target.value),Q("openID_callbackURL")},label:"Callback URL",value:u,placeholder:"https://your-console-endpoint:9443/oauth_callback",error:M.openID_callbackURL||""})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"openID_claimName",name:"openID_claimName",onChange:function(e){B("openIDClaimName",e.target.value),Q("openID_claimName")},label:"Claim Name",value:m,error:M.openID_claimName||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"openID_scopes",name:"openID_scopes",onChange:function(e){B("openIDScopes",e.target.value),Q("openID_scopes")},label:"Scopes",value:g})})]}),"AD"===n&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"AD_URL",name:"AD_URL",onChange:function(e){B("ADURL",e.target.value),Q("AD_URL")},label:"LDAP Server Address",value:p,placeholder:"ldap-server:636",error:M.AD_URL||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(_.Z,{value:"ad_skipTLS",id:"ad_skipTLS",name:"ad_skipTLS",checked:f,onChange:function(e){var t=e.target.checked;B("ADSkipTLS",t)},label:"Skip TLS Verification"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(_.Z,{value:"ad_serverInsecure",id:"ad_serverInsecure",name:"ad_serverInsecure",checked:h,onChange:function(e){var t=e.target.checked;B("ADServerInsecure",t)},label:"Server Insecure"})}),h?(0,I.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,I.jsx)(w.Z,{className:t.error,variant:"caption",display:"block",gutterBottom:!0,children:"Warning: All traffic with Active Directory will be unencrypted"}),(0,I.jsx)("br",{})]}):null,(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(_.Z,{value:"ad_serverStartTLS",id:"ad_serverStartTLS",name:"ad_serverStartTLS",checked:G,onChange:function(e){var t=e.target.checked;B("ADServerStartTLS",t)},label:"Start TLS connection to AD/LDAP server"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"ad_lookupBindDN",name:"ad_lookupBindDN",onChange:function(e){B("ADLookupBindDN",e.target.value),Q("ad_lookupBindDN")},label:"Lookup Bind DN",value:C,placeholder:"cn=admin,dc=min,dc=io",error:M.ad_lookupBindDN||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"ad_lookupBindPassword",name:"ad_lookupBindPassword",onChange:function(e){B("ADLookupBindPassword",e.target.value)},label:"Lookup Bind Password",value:A,placeholder:"admin"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"ad_userDNSearchBaseDN",name:"ad_userDNSearchBaseDN",onChange:function(e){B("ADUserDNSearchBaseDN",e.target.value)},label:"User DN Search Base DN",value:P,placeholder:"dc=min,dc=io"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"ad_userDNSearchFilter",name:"ad_userDNSearchFilter",onChange:function(e){B("ADUserDNSearchFilter",e.target.value)},label:"User DN Search Filter",value:z,placeholder:"(sAMAcountName=%s)"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"ad_groupSearchBaseDN",name:"ad_groupSearchBaseDN",onChange:function(e){B("ADGroupSearchBaseDN",e.target.value)},label:"Group Search Base DN",value:x,placeholder:"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"ad_groupSearchFilter",name:"ad_groupSearchFilter",onChange:function(e){B("ADGroupSearchFilter",e.target.value)},label:"Group Search Filter",value:y,placeholder:"(&(objectclass=groupOfNames)(member=%s))"})}),(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"List of user DNs (Distinguished Names) to be Tenant Administrators"}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:Y})]})]})]})}))),U=n(54639),L=n(47919),q=(0,l.$j)((function(e){return{enableTLS:e.tenants.createTenant.fields.security.enableTLS,enableAutoCert:e.tenants.createTenant.fields.security.enableAutoCert,enableCustomCerts:e.tenants.createTenant.fields.security.enableCustomCerts,minioCertificates:e.tenants.createTenant.certificates.minioCertificates,caCertificates:e.tenants.createTenant.certificates.caCertificates}}),{updateAddField:C.HM,isPageValid:C.NO,addFileToCaCertificates:C.Eq,deleteCaCertificate:C.IG,addCaCertificate:C.fK,addKeyPair:C.Mg,addFileToKeyPair:C.aN,deleteKeyPair:C.XX}),V=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)({minioCertificateRows:{display:"flex",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","&:last-child":{borderBottom:0},"@media (max-width: 900px)":{flex:1}},fileItem:{marginRight:10,display:"flex","& div label":{minWidth:50},"@media (max-width: 900px)":{flexFlow:"column"}},minioCertsContainer:{marginBottom:15},minioCACertsRow:{display:"flex",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","&:last-child":{borderBottom:0},"@media (max-width: 900px)":{flex:1,"& div label":{minWidth:50}}},rowActions:{display:"flex",justifyContent:"flex-end","@media (max-width: 900px)":{flex:1}},overlayAction:{marginLeft:10,"& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}}},g.QV),g.oO),g.AK))}))(q((function(e){var t=e.classes,n=e.enableTLS,a=e.enableAutoCert,r=e.enableCustomCerts,i=e.minioCertificates,o=e.caCertificates,l=e.updateAddField,d=e.isPageValid,u=e.addFileToCaCertificates,m=e.deleteCaCertificate,g=e.addCaCertificate,p=e.addKeyPair,f=e.addFileToKeyPair,h=e.deleteKeyPair,x=(0,s.useCallback)((function(e,t){l("security",e,t)}),[l]);return(0,s.useEffect)((function(){d("security",!n||(!!a||!!r))}),[n,a,r,d]),(0,I.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,I.jsx)("div",{className:t.headerElement,children:(0,I.jsx)("h3",{className:t.h3Section,children:"Security"})}),(0,I.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,I.jsx)(_.Z,{value:"enableTLS",id:"enableTLS",name:"enableTLS",checked:n,onChange:function(e){var t=e.target.checked;x("enableTLS",t)},label:"Enable TLS"}),"Enable TLS for the tenant, this is required for Encryption Configuration",n&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)("br",{}),(0,I.jsx)("br",{}),(0,I.jsx)(w.Z,{variant:"caption",display:"block",gutterBottom:!0,children:"AutoCert: MinIO Operator will generate all TLS certificates automatically"}),(0,I.jsx)(w.Z,{variant:"caption",display:"block",gutterBottom:!0,children:"Custom certificates: Allow user to provide your own certificates"}),(0,I.jsx)("br",{})]})]}),n&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,I.jsx)(_.Z,{value:"enableAutoCert",id:"enableAutoCert",name:"enableAutoCert",checked:a,onChange:function(e){var t=e.target.checked;x("enableAutoCert",t)},label:"Enable AutoCert"}),(0,I.jsx)(_.Z,{value:"enableCustomCerts",id:"enableCustomCerts",name:"enableCustomCerts",checked:r,onChange:function(e){var t=e.target.checked;x("enableCustomCerts",t)},label:"Custom Certificates"})]}),r&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{container:!0,children:(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.minioCertsContainer,children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"MinIO Certificates"}),i.map((function(e){return(0,I.jsxs)(c.ZP,{item:!0,xs:12,className:t.minioCertificateRows,children:[(0,I.jsxs)(c.ZP,{item:!0,xs:10,className:t.fileItem,children:[(0,I.jsx)(U.Z,{onChange:function(t,n){f(e.id,"cert",n,t)},accept:".cer,.crt,.cert,.pem",id:"tlsCert",name:"tlsCert",label:"Cert",value:e.cert}),(0,I.jsx)(U.Z,{onChange:function(t,n){f(e.id,"key",n,t)},accept:".key,.pem",id:"tlsKey",name:"tlsKey",label:"Key",value:e.key})]}),(0,I.jsxs)(c.ZP,{item:!0,xs:2,className:t.rowActions,children:[(0,I.jsx)("div",{className:t.overlayAction,children:(0,I.jsx)(T.Z,{size:"small",onClick:p,children:(0,I.jsx)(L.Z,{})})}),(0,I.jsx)("div",{className:t.overlayAction,children:(0,I.jsx)(T.Z,{size:"small",onClick:function(){h(e.id)},children:(0,I.jsx)(K.Z,{})})})]})]},"minio-certs-".concat(e.id))}))]})})}),(0,I.jsx)(c.ZP,{container:!0,children:(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.minioCertsContainer,children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"MinIO CA Certificates"}),o.map((function(e){return(0,I.jsxs)(c.ZP,{item:!0,xs:12,className:t.minioCACertsRow,children:[(0,I.jsx)(c.ZP,{item:!0,xs:6,children:(0,I.jsx)(U.Z,{onChange:function(t,n){u(e.id,"cert",n,t)},accept:".cer,.crt,.cert,.pem",id:"tlsCert",name:"tlsCert",label:"Cert",value:e.cert})}),(0,I.jsx)(c.ZP,{item:!0,xs:6,children:(0,I.jsxs)("div",{className:t.rowActions,children:[(0,I.jsx)("div",{className:t.overlayAction,children:(0,I.jsx)(T.Z,{size:"small",onClick:g,children:(0,I.jsx)(L.Z,{})})}),(0,I.jsx)("div",{className:t.overlayAction,children:(0,I.jsx)(T.Z,{size:"small",onClick:function(){m(e.id)},children:(0,I.jsx)(K.Z,{})})})]})})]},"minio-CA-certs-".concat(e.id))}))]})})})]})]})]})}))),M=(0,l.$j)((function(e){return{replicas:e.tenants.createTenant.fields.encryption.replicas,enableEncryption:e.tenants.createTenant.fields.encryption.enableEncryption,encryptionType:e.tenants.createTenant.fields.encryption.encryptionType,gemaltoEndpoint:e.tenants.createTenant.fields.encryption.gemaltoEndpoint,gemaltoToken:e.tenants.createTenant.fields.encryption.gemaltoToken,gemaltoDomain:e.tenants.createTenant.fields.encryption.gemaltoDomain,gemaltoRetry:e.tenants.createTenant.fields.encryption.gemaltoRetry,awsEndpoint:e.tenants.createTenant.fields.encryption.awsEndpoint,awsRegion:e.tenants.createTenant.fields.encryption.awsRegion,awsKMSKey:e.tenants.createTenant.fields.encryption.awsKMSKey,awsAccessKey:e.tenants.createTenant.fields.encryption.awsAccessKey,awsSecretKey:e.tenants.createTenant.fields.encryption.awsSecretKey,awsToken:e.tenants.createTenant.fields.encryption.awsToken,vaultEndpoint:e.tenants.createTenant.fields.encryption.vaultEndpoint,vaultEngine:e.tenants.createTenant.fields.encryption.vaultEngine,vaultNamespace:e.tenants.createTenant.fields.encryption.vaultNamespace,vaultPrefix:e.tenants.createTenant.fields.encryption.vaultPrefix,vaultAppRoleEngine:e.tenants.createTenant.fields.encryption.vaultAppRoleEngine,vaultId:e.tenants.createTenant.fields.encryption.vaultId,vaultSecret:e.tenants.createTenant.fields.encryption.vaultSecret,vaultRetry:e.tenants.createTenant.fields.encryption.vaultRetry,vaultPing:e.tenants.createTenant.fields.encryption.vaultPing,azureEndpoint:e.tenants.createTenant.fields.encryption.azureEndpoint,azureTenantID:e.tenants.createTenant.fields.encryption.azureTenantID,azureClientID:e.tenants.createTenant.fields.encryption.azureClientID,azureClientSecret:e.tenants.createTenant.fields.encryption.azureClientSecret,gcpProjectID:e.tenants.createTenant.fields.encryption.gcpProjectID,gcpEndpoint:e.tenants.createTenant.fields.encryption.gcpEndpoint,gcpClientEmail:e.tenants.createTenant.fields.encryption.gcpClientEmail,gcpClientID:e.tenants.createTenant.fields.encryption.gcpClientID,gcpPrivateKeyID:e.tenants.createTenant.fields.encryption.gcpPrivateKeyID,gcpPrivateKey:e.tenants.createTenant.fields.encryption.gcpPrivateKey,enableCustomCertsForKES:e.tenants.createTenant.fields.encryption.enableCustomCertsForKES,enableAutoCert:e.tenants.createTenant.fields.security.enableAutoCert,enableTLS:e.tenants.createTenant.fields.security.enableTLS,minioCertificates:e.tenants.createTenant.certificates.minioCertificates,serverCertificate:e.tenants.createTenant.certificates.serverCertificate,clientCertificate:e.tenants.createTenant.certificates.clientCertificate,vaultCertificate:e.tenants.createTenant.certificates.vaultCertificate,vaultCA:e.tenants.createTenant.certificates.vaultCA,gemaltoCA:e.tenants.createTenant.certificates.gemaltoCA,enableCustomCerts:e.tenants.createTenant.fields.security.enableCustomCerts,kesSecurityContext:e.tenants.createTenant.fields.encryption.kesSecurityContext}}),{updateAddField:C.HM,isPageValid:C.NO,addFileServerCert:C.$1,addFileClientCert:C.BI,addFileVaultCert:C.cl,addFileVaultCa:C.fk,addFileGemaltoCa:C.MX}),O=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({encryptionTypeOptions:{marginBottom:15},mutualTlsConfig:{marginTop:15,"& fieldset":{flex:1}},rightSpacer:{marginRight:15},responsiveContainer:{"@media (max-width: 900px)":{display:"flex",flexFlow:"column"}}},g.QV),g.DF),g.oO),g.AK))}))(M((function(e){var t=e.classes,n=e.updateAddField,i=e.isPageValid,o=e.addFileServerCert,l=e.addFileClientCert,d=e.addFileVaultCert,u=e.addFileVaultCa,m=e.addFileGemaltoCa,g=e.enableEncryption,p=e.enableCustomCerts,f=e.encryptionType,h=e.gemaltoEndpoint,x=e.gemaltoToken,y=e.gemaltoDomain,v=e.gemaltoRetry,C=e.awsEndpoint,A=e.awsRegion,P=e.awsKMSKey,k=e.awsAccessKey,T=e.awsSecretKey,w=e.awsToken,R=e.vaultEndpoint,D=e.vaultEngine,E=e.vaultNamespace,K=e.vaultPrefix,z=e.vaultAppRoleEngine,G=e.vaultId,L=e.vaultSecret,q=e.vaultRetry,V=e.vaultPing,M=e.azureEndpoint,O=e.azureTenantID,B=e.azureClientID,W=e.azureClientSecret,H=e.gcpProjectID,$=e.gcpEndpoint,Q=e.gcpClientEmail,Y=e.gcpClientID,J=e.gcpPrivateKeyID,X=e.gcpPrivateKey,ee=e.enableCustomCertsForKES,te=e.enableAutoCert,ne=e.enableTLS,ae=e.minioCertificates,re=e.serverCertificate,se=e.clientCertificate,ie=e.vaultCertificate,oe=e.vaultCA,le=e.gemaltoCA,ce=e.kesSecurityContext,de=e.replicas,ue=(0,s.useState)({}),me=(0,a.Z)(ue,2),ge=me[0],pe=me[1],fe=!1;ne&&(te||ae&&ae.filter((function(e){return e.encoded_key&&e.encoded_cert})).length>0)&&(fe=!0);var he=(0,s.useCallback)((function(e,t){n("encryption",e,t)}),[n]),xe=function(e){pe((0,Z.h)(ge,e))};return(0,s.useEffect)((function(){var e=[];g&&(e=[].concat((0,S.Z)(e),[{fieldKey:"replicas",required:!0,value:de,customValidation:parseInt(de)<1,customValidationMessage:"Replicas needs to be 1 or greater"},{fieldKey:"kes_securityContext_runAsUser",required:!0,value:ce.runAsUser,customValidation:""===ce.runAsUser||parseInt(ce.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"kes_securityContext_runAsGroup",required:!0,value:ce.runAsGroup,customValidation:""===ce.runAsGroup||parseInt(ce.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"kes_securityContext_fsGroup",required:!0,value:ce.fsGroup,customValidation:""===ce.fsGroup||parseInt(ce.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]),p&&(e=[].concat((0,S.Z)(e),[{fieldKey:"serverKey",required:!te,value:re.encoded_key},{fieldKey:"serverCert",required:!te,value:re.encoded_cert},{fieldKey:"clientKey",required:!te,value:se.encoded_key},{fieldKey:"clientCert",required:!te,value:se.encoded_cert}])),"vault"===f&&(e=[].concat((0,S.Z)(e),[{fieldKey:"vault_endpoint",required:!0,value:R},{fieldKey:"vault_id",required:!0,value:G},{fieldKey:"vault_secret",required:!0,value:L},{fieldKey:"vault_ping",required:!1,value:V,customValidation:parseInt(V)<0,customValidationMessage:"Value needs to be 0 or greater"},{fieldKey:"vault_retry",required:!1,value:q,customValidation:parseInt(q)<0,customValidationMessage:"Value needs to be 0 or greater"}])),"aws"===f&&(e=[].concat((0,S.Z)(e),[{fieldKey:"aws_endpoint",required:!0,value:C},{fieldKey:"aws_region",required:!0,value:A},{fieldKey:"aws_accessKey",required:!0,value:k},{fieldKey:"aws_secretKey",required:!0,value:T}])),"gemalto"===f&&(e=[].concat((0,S.Z)(e),[{fieldKey:"gemalto_endpoint",required:!0,value:h},{fieldKey:"gemalto_token",required:!0,value:x},{fieldKey:"gemalto_domain",required:!0,value:y},{fieldKey:"gemalto_retry",required:!1,value:v,customValidation:parseInt(v)<0,customValidationMessage:"Value needs to be 0 or greater"}])),"azure"===f&&(e=[].concat((0,S.Z)(e),[{fieldKey:"azure_endpoint",required:!0,value:M},{fieldKey:"azure_tenant_id",required:!0,value:O},{fieldKey:"azure_client_id",required:!0,value:B},{fieldKey:"azure_client_secret",required:!0,value:W}])));var t=(0,b.R)(e);i("encryption",0===Object.keys(t).length),pe(t)}),[g,f,R,D,G,L,V,q,C,A,T,k,h,x,y,v,H,$,Q,Y,J,X,M,O,B,W,i,te,p,re.encoded_key,re.encoded_cert,se.encoded_key,se.encoded_cert,ce,de]),(0,I.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,I.jsxs)("div",{className:t.headerElement,children:[(0,I.jsx)("h3",{className:t.h3Section,children:"Encryption"}),(0,I.jsx)("span",{className:t.descriptionText,children:"How would you like to encrypt the information at rest."})]}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsx)(_.Z,{value:"enableEncryption",id:"enableEncryption",name:"enableEncryption",checked:g,onChange:function(e){var t=e.target.checked;he("enableEncryption",t)},label:"Enable Server Side Encryption",disabled:!fe})}),g&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.encryptionTypeOptions,children:(0,I.jsx)(F.Z,{currentSelection:f,id:"encryptionType",name:"encryptionType",label:"Encryption Options",onChange:function(e){he("encryptionType",e.target.value)},selectorOptions:[{label:"Vault",value:"vault"},{label:"AWS",value:"aws"},{label:"Gemalto",value:"gemalto"},{label:"GCP",value:"gcp"},{label:"Azure",value:"azure"}]})}),"vault"===f&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"vault_endpoint",name:"vault_endpoint",onChange:function(e){he("vaultEndpoint",e.target.value),xe("vault_endpoint")},label:"Endpoint",value:R,error:ge.vault_endpoint||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"vault_engine",name:"vault_engine",onChange:function(e){he("vaultEngine",e.target.value),xe("vault_engine")},label:"Engine",value:D})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"vault_namespace",name:"vault_namespace",onChange:function(e){he("vaultNamespace",e.target.value)},label:"Namespace",value:E})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"vault_prefix",name:"vault_prefix",onChange:function(e){he("vaultPrefix",e.target.value)},label:"Prefix",value:K})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"App Role"}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"vault_approle_engine",name:"vault_approle_engine",onChange:function(e){he("vaultAppRoleEngine",e.target.value)},label:"Engine",value:z})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"vault_id",name:"vault_id",onChange:function(e){he("vaultId",e.target.value),xe("vault_id")},label:"AppRole ID",value:G,error:ge.vault_id||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"vault_secret",name:"vault_secret",onChange:function(e){he("vaultSecret",e.target.value),xe("vault_secret")},label:"AppRole Secret",value:L,error:ge.vault_secret||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{type:"number",min:"0",id:"vault_retry",name:"vault_retry",onChange:function(e){he("vaultRetry",e.target.value),xe("vault_retry")},label:"Retry (Seconds)",value:q,error:ge.vault_retry||""})})]})}),(0,I.jsx)(c.ZP,{container:!0,className:t.mutualTlsConfig,children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"Mutual TLS authentication (optional)"}),(0,I.jsx)(U.Z,{onChange:function(e,t){d("key",t,e),xe("vault_key")},accept:".key,.pem",id:"vault_key",name:"vault_key",label:"Key",value:ie.key}),(0,I.jsx)(U.Z,{onChange:function(e,t){d("cert",t,e),xe("vault_cert")},accept:".cer,.crt,.cert,.pem",id:"vault_cert",name:"vault_cert",label:"Cert",value:ie.cert}),(0,I.jsx)(U.Z,{onChange:function(e,t){u(t,e),xe("vault_ca")},accept:".cer,.crt,.cert,.pem",id:"vault_ca",name:"vault_ca",label:"CA",value:oe.cert})]})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,style:{marginTop:15},children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"Status"}),(0,I.jsx)(N.Z,{type:"number",min:"0",id:"vault_ping",name:"vault_ping",onChange:function(e){he("vaultPing",e.target.value),xe("vault_ping")},label:"Ping (Seconds)",value:V,error:ge.vault_ping||""})]})})]}),"azure"===f&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"azure_endpoint",name:"azure_endpoint",onChange:function(e){he("azureEndpoint",e.target.value),xe("azure_endpoint")},label:"Endpoint",value:M,error:ge.azure_endpoint||""})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"Credentials"}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"azure_tenant_id",name:"azure_tenant_id",onChange:function(e){he("azureTenantID",e.target.value),xe("azure_tenant_id")},label:"Tenant ID",value:O,error:ge.azure_tenant_id||""})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"azure_client_id",name:"azure_client_id",onChange:function(e){he("azureClientID",e.target.value),xe("azure_client_id")},label:"Client ID",value:B,error:ge.azure_client_id||""})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"azure_client_secret",name:"azure_client_secret",onChange:function(e){he("azureClientSecret",e.target.value),xe("azure_client_secret")},label:"Client Secret",value:W,error:ge.azure_client_secret||""})})]})})]}),"gcp"===f&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"gcp_project_id",name:"gcp_project_id",onChange:function(e){he("gcpProjectID",e.target.value)},label:"Project ID",value:H})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"gcp_endpoint",name:"gcp_endpoint",onChange:function(e){he("gcpEndpoint",e.target.value)},label:"Endpoint",value:$})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"Credentials"}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"gcp_client_email",name:"gcp_client_email",onChange:function(e){he("gcpClientEmail",e.target.value)},label:"Client Email",value:Q})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"gcp_client_id",name:"gcp_client_id",onChange:function(e){he("gcpClientID",e.target.value)},label:"Client ID",value:Y})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"gcp_private_key_id",name:"gcp_private_key_id",onChange:function(e){he("gcpPrivateKeyID",e.target.value)},label:"Private Key ID",value:J})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"gcp_private_key",name:"gcp_private_key",onChange:function(e){he("gcpPrivateKey",e.target.value)},label:"Private Key",value:X})})]})})]}),"aws"===f&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"aws_endpoint",name:"aws_endpoint",onChange:function(e){he("awsEndpoint",e.target.value),xe("aws_endpoint")},label:"Endpoint",value:C,error:ge.aws_endpoint||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"aws_region",name:"aws_region",onChange:function(e){he("awsRegion",e.target.value),xe("aws_region")},label:"Region",value:A,error:ge.aws_region||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"aws_kmsKey",name:"aws_kmsKey",onChange:function(e){he("awsKMSKey",e.target.value)},label:"KMS Key",value:P})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"Credentials"}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"aws_accessKey",name:"aws_accessKey",onChange:function(e){he("awsAccessKey",e.target.value),xe("aws_accessKey")},label:"Access Key",value:k,error:ge.aws_accessKey||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"aws_secretKey",name:"aws_secretKey",onChange:function(e){he("awsSecretKey",e.target.value),xe("aws_secretKey")},label:"Secret Key",value:T,error:ge.aws_secretKey||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"aws_token",name:"aws_token",onChange:function(e){he("awsToken",e.target.value)},label:"Token",value:w})})]})})]}),"gemalto"===f&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"gemalto_endpoint",name:"gemalto_endpoint",onChange:function(e){he("gemaltoEndpoint",e.target.value),xe("gemalto_endpoint")},label:"Endpoint",value:h,error:ge.gemalto_endpoint||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"Credentials"}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"gemalto_token",name:"gemalto_token",onChange:function(e){he("gemaltoToken",e.target.value),xe("gemalto_token")},label:"Token",value:x,error:ge.gemalto_token||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"gemalto_domain",name:"gemalto_domain",onChange:function(e){he("gemaltoDomain",e.target.value),xe("gemalto_domain")},label:"Domain",value:y,error:ge.gemalto_domain||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{type:"number",min:"0",id:"gemalto_retry",name:"gemalto_retry",onChange:function(e){he("gemaltoRetry",e.target.value),xe("gemalto_retry")},label:"Retry (seconds)",value:v,error:ge.gemalto_retry||""})})]})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"Custom CA Root certificate verification"}),(0,I.jsx)(U.Z,{onChange:function(e,t){m(t,e),xe("gemalto_ca")},accept:".cer,.crt,.cert,.pem",id:"gemalto_ca",name:"gemalto_ca",label:"CA",value:le.cert})]})})]}),(0,I.jsx)("div",{className:t.headerElement,children:(0,I.jsx)("h4",{className:t.h3Section,children:"Additional Configurations"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsx)(_.Z,{value:"enableCustomCertsForKES",id:"enableCustomCertsForKES",name:"enableCustomCertsForKES",checked:ee||!te,onChange:function(e){var t=e.target.checked;he("enableCustomCertsForKES",t)},label:"Custom Certificates",disabled:!te})}),(ee||!te)&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{container:!0,children:(0,I.jsx)(c.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"Encryption Service Certificates"}),(0,I.jsx)(U.Z,{onChange:function(e,t){o("key",t,e),xe("serverKey")},accept:".key,.pem",id:"serverKey",name:"serverKey",label:"Key",error:ge.serverKey||"",value:re.key,required:!te}),(0,I.jsx)(U.Z,{onChange:function(e,t){o("cert",t,e),xe("serverCert")},accept:".cer,.crt,.cert,.pem",id:"serverCert",name:"serverCert",label:"Cert",error:ge.serverCert||"",value:re.cert,required:!te})]})})}),(0,I.jsx)(c.ZP,{container:!0,style:{marginBottom:15},children:(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"Mutual TLS authentication with MinIO"}),(0,I.jsx)(U.Z,{onChange:function(e,t){l("key",t,e),xe("clientKey")},accept:".key,.pem",id:"clientKey",name:"clientKey",label:"Key",error:ge.clientKey||"",value:se.key,required:!te}),(0,I.jsx)(U.Z,{onChange:function(e,t){l("cert",t,e),xe("clientCert")},accept:".cer,.crt,.cert,.pem",id:"clientCert",name:"clientCert",label:"Cert",error:ge.clientCert||"",value:se.cert,required:!te})]})})})]}),(0,I.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,classes:t.formFieldRow,children:(0,I.jsx)(N.Z,{type:"number",min:"1",id:"replicas",name:"replicas",onChange:function(e){he("replicas",e.target.value),xe("replicas")},label:"Replicas",value:de,required:!0,error:ge.replicas||""})}),(0,I.jsxs)("fieldset",{className:t.fieldGroup,style:{marginTop:15},children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"SecurityContext for KES pods"}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.kesSecurityContext,children:(0,I.jsxs)("div",{className:"".concat(t.multiContainer," ").concat(t.responsiveContainer),children:[(0,I.jsx)("div",{className:"".concat(t.formFieldRow," ").concat(t.rightSpacer),children:(0,I.jsx)(N.Z,{type:"number",id:"kes_securityContext_runAsUser",name:"kes_securityContext_runAsUser",onChange:function(e){he("kesSecurityContext",(0,r.Z)((0,r.Z)({},ce),{},{runAsUser:e.target.value})),xe("kes_securityContext_runAsUser")},label:"Run As User",value:ce.runAsUser,required:!0,error:ge.kes_securityContext_runAsUser||"",min:"0"})}),(0,I.jsx)("div",{className:"".concat(t.formFieldRow," ").concat(t.rightSpacer),children:(0,I.jsx)(N.Z,{type:"number",id:"kes_securityContext_runAsGroup",name:"kes_securityContext_runAsGroup",onChange:function(e){he("kesSecurityContext",(0,r.Z)((0,r.Z)({},ce),{},{runAsGroup:e.target.value})),xe("kes_securityContext_runAsGroup")},label:"Run As Group",value:ce.runAsGroup,required:!0,error:ge.kes_securityContext_runAsGroup||"",min:"0"})}),(0,I.jsx)("div",{className:"".concat(t.formFieldRow," ").concat(t.rightSpacer),children:(0,I.jsx)(N.Z,{type:"number",id:"kes_securityContext_fsGroup",name:"kes_securityContext_fsGroup",onChange:function(e){he("kesSecurityContext",(0,r.Z)((0,r.Z)({},ce),{},{fsGroup:e.target.value})),xe("kes_securityContext_fsGroup")},label:"FsGroup",value:ce.fsGroup,required:!0,error:ge.kes_securityContext_fsGroup||"",min:"0"})})]})}),(0,I.jsx)("br",{}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsx)("div",{className:t.multiContainer,children:(0,I.jsx)(_.Z,{value:"kesSecurityContextRunAsNonRoot",id:"kes_securityContext_runAsNonRoot",name:"kes_securityContext_runAsNonRoot",checked:ce.runAsNonRoot,onChange:function(e){var t=e.target.checked;he("kesSecurityContext",(0,r.Z)((0,r.Z)({},ce),{},{runAsNonRoot:t}))},label:"Do not run as Root"})})})]})]})]})]})}))),B=n(4942),W=n(90673),H=n(64974),$=n(56578),Q=(0,m.Z)((function(e){return(0,u.Z)({labelsStyle:{fontSize:18,fontWeight:"bold",color:"#AEAEAE",display:"flex",alignItems:"center",justifyContent:"center",maxWidth:45,marginRight:10},fieldsetStyle:{border:"1px solid #EAEAEA",borderRadius:2,padding:10,marginBottom:15},firstLevel:{marginBottom:10},fieldContainer:{marginRight:10},legendStyle:{fontSize:12,color:"#696969",fontWeight:"bold"}})}))((function(e){var t=e.effect,n=e.onEffectChange,a=e.tolerationKey,r=e.onTolerationKeyChange,s=e.operator,i=e.onOperatorChange,o=e.value,l=e.onValueChange,d=e.tolerationSeconds,u=e.onSecondsChange,m=e.index,g=e.classes,p=[],f=[];for(var h in H.I)p.push({value:h,label:h});for(var x in H.y)f.push({value:x,label:x});return(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsxs)("fieldset",{className:g.fieldsetStyle,children:[(0,I.jsxs)("legend",{className:g.legendStyle,children:["Toleration ",m+1]}),(0,I.jsxs)(c.ZP,{container:!0,children:[(0,I.jsxs)(c.ZP,{container:!0,className:g.firstLevel,children:[(0,I.jsx)(c.ZP,{item:!0,xs:!0,className:g.labelsStyle,children:"If"}),(0,I.jsx)(c.ZP,{item:!0,xs:!0,className:g.fieldContainer,children:(0,I.jsx)(N.Z,{id:"keyField-".concat(m),label:"",name:"keyField-".concat(m),value:a,onChange:function(e){r(e.target.value)},index:m,placeholder:"Toleration Key"})}),H.I[s]===H.I.Equal&&(0,I.jsx)(c.ZP,{item:!0,xs:!0,className:g.labelsStyle,children:"is"}),(0,I.jsx)(c.ZP,{item:!0,xs:1,className:g.fieldContainer,children:(0,I.jsx)(W.Z,{onChange:function(e){i(H.I[e.target.value])},id:"operator-".concat(m),name:"operator",label:"",value:H.I[s],options:p})}),H.I[s]===H.I.Equal&&(0,I.jsx)(c.ZP,{item:!0,xs:!0,className:g.labelsStyle,children:"to"}),H.I[s]===H.I.Equal&&(0,I.jsx)(c.ZP,{item:!0,xs:!0,className:g.fieldContainer,children:(0,I.jsx)(N.Z,{id:"valueField-".concat(m),label:"",name:"valueField-".concat(m),value:o||"",onChange:function(e){l(e.target.value)},index:m,placeholder:"Toleration Value"})})]}),(0,I.jsxs)(c.ZP,{container:!0,children:[(0,I.jsx)(c.ZP,{item:!0,xs:!0,className:g.labelsStyle,children:"then"}),(0,I.jsx)(c.ZP,{item:!0,xs:!0,className:g.fieldContainer,children:(0,I.jsx)(W.Z,{onChange:function(e){n(H.y[e.target.value])},id:"effects-".concat(m),name:"effects",label:"",value:H.y[t],options:f})}),(0,I.jsx)(c.ZP,{item:!0,xs:!0,className:g.labelsStyle,children:"after"}),(0,I.jsx)(c.ZP,{item:!0,xs:!0,className:g.fieldContainer,children:(0,I.jsx)(N.Z,{id:"seconds-".concat(m),label:"",name:"seconds-".concat(m),value:(null===d||void 0===d?void 0:d.toString())||"0",onChange:function(e){e.target.validity.valid&&u(parseInt(e.target.value))},index:m,pattern:"[0-9]*",overlayObject:(0,I.jsx)($.Z,{id:"seconds-".concat(m),unitSelected:"seconds",unitsList:[{label:"Seconds",value:"seconds"}],disabled:!0})})})]})]})]})})})),Y=(0,l.$j)((function(e){var t=e.tenants.createTenant;return{podAffinity:t.fields.affinity.podAffinity,nodeSelectorLabels:t.fields.affinity.nodeSelectorLabels,withPodAntiAffinity:t.fields.affinity.withPodAntiAffinity,keyValuePairs:t.nodeSelectorPairs,tolerations:t.tolerations}}),{setModalErrorSnackMessage:x.zb,updateAddField:C.HM,isPageValid:C.NO,setKeyValuePairs:C.i$,setTolerationInfo:C.iU,addNewToleration:C.ly,removeToleration:C.JX}),J=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},affinityConfigField:{display:"flex"},affinityFieldLabel:{display:"flex",flexFlow:"column",flex:1},radioField:{display:"flex",alignItems:"flex-start",marginTop:10,"& div:first-child":{display:"flex",flexFlow:"column",alignItems:"baseline",textAlign:"left !important"}},affinityLabelKey:{"& div:first-child":{marginBottom:0}},affinityLabelValue:{marginLeft:10,"& div:first-child":{marginBottom:0}},rowActions:{display:"flex",alignItems:"center"},fieldContainer:{marginBottom:0},affinityRow:{marginBottom:10,display:"flex"}},g.oO),g.AK))}))(Y((function(e){var t=e.classes,n=e.podAffinity,i=e.nodeSelectorLabels,o=e.withPodAntiAffinity,l=e.setModalErrorSnackMessage,d=e.updateAddField,u=e.keyValuePairs,m=e.setKeyValuePairs,g=e.isPageValid,f=e.tolerations,h=e.setTolerationInfo,x=e.addNewToleration,y=e.removeToleration,v=(0,s.useState)({}),C=(0,a.Z)(v,2),Z=C[0],A=C[1],P=(0,s.useState)(!0),k=(0,a.Z)(P,2),w=k[0],R=k[1],D=(0,s.useState)({}),E=(0,a.Z)(D,2),z=E[0],G=E[1],U=(0,s.useState)([]),q=(0,a.Z)(U,2),V=q[0],M=q[1],O=(0,s.useCallback)((function(e,t){d("affinity",e,t)}),[d]);(0,s.useEffect)((function(){w&&p.Z.invoke("GET","/api/v1/nodes/labels").then((function(e){R(!1),G(e);var t=[];for(var n in e)t.push({label:n,value:n});M(t)})).catch((function(e){R(!1),l(e),G({})}))}),[l,w]),(0,s.useEffect)((function(){if(u){var e=u.filter((function(e){return""!==e.key})).map((function(e){return"".concat(e.key,"=").concat(e.value)})).filter((function(e,t,n){return n.indexOf(e)===t})).join("&");O("nodeSelectorLabels",e)}}),[u,O]),(0,s.useEffect)((function(){var e=[];if("nodeSelector"===n){var t=!0,a=i.split("&");1===a.length&&""===a[0]&&(t=!1),a.forEach((function(e,n){var r=e.split("=");2!==r.length&&(t=!1),n+1!==a.length&&(""!==r[0]&&""!==r[1]||(t=!1))})),e=[].concat((0,S.Z)(e),[{fieldKey:"labels",required:!0,value:i,customValidation:!t,customValidationMessage:"You need to add at least one label key-pair"}])}var r=(0,b.R)(e);g("affinity",0===Object.keys(r).length),A(r)}),[g,n,i]);var H=function(e,t,n){var a=(0,r.Z)((0,r.Z)({},f[e]),{},(0,B.Z)({},t,n));h(e,a)};return(0,I.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,I.jsxs)("div",{className:t.headerElement,children:[(0,I.jsx)("h3",{className:t.h3Section,children:"Pod Placement"}),(0,I.jsx)("span",{className:t.descriptionText,children:"Configure how pods will be assigned to nodes"})]}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.affinityConfigField,children:(0,I.jsxs)(c.ZP,{item:!0,className:t.affinityFieldLabel,children:[(0,I.jsx)("div",{className:t.label,children:"Type"}),(0,I.jsx)("div",{className:"".concat(t.descriptionText," ").concat(t.affinityHelpText),children:"MinIO supports multiple configurations for Pod Affinity"}),(0,I.jsx)(c.ZP,{item:!0,className:t.radioField,children:(0,I.jsx)(F.Z,{currentSelection:n,id:"affinity-options",name:"affinity-options",label:" ",onChange:function(e){O("podAffinity",e.target.value)},selectorOptions:[{label:"None",value:"none"},{label:"Default (Pod Anti-Affinnity)",value:"default"},{label:"Node Selector",value:"nodeSelector"}]})})]})}),"nodeSelector"===n&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)("br",{}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsx)(_.Z,{value:"with_pod_anti_affinity",id:"with_pod_anti_affinity",name:"with_pod_anti_affinity",checked:o,onChange:function(e){var t=e.target.checked;O("withPodAntiAffinity",t)},label:"With Pod Anti-Affinity"})}),(0,I.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,I.jsx)("h3",{children:"Labels"}),(0,I.jsx)("span",{className:t.error,children:Z.labels}),(0,I.jsx)(c.ZP,{container:!0,children:u&&u.map((function(e,n){return(0,I.jsxs)(c.ZP,{item:!0,xs:12,className:t.affinityRow,children:[(0,I.jsxs)(c.ZP,{item:!0,xs:5,className:t.affinityLabelKey,children:[V.length>0&&(0,I.jsx)(W.Z,{onChange:function(e){var t=e.target.value,a=Object.assign([],u);a[n].key=e.target.value,a[n].value=z[t][0],m(a)},id:"select-access-policy",name:"select-access-policy",label:"",value:e.key,options:V}),0===V.length&&(0,I.jsx)(N.Z,{id:"nodeselector-key-".concat(n.toString()),label:"",name:"nodeselector-".concat(n.toString()),value:e.key,onChange:function(e){var t=Object.assign([],u);t[n].key=e.target.value,m(t)},index:n,placeholder:"Key"})]}),(0,I.jsxs)(c.ZP,{item:!0,xs:5,className:t.affinityLabelValue,children:[V.length>0&&(0,I.jsx)(W.Z,{onChange:function(e){var t=Object.assign([],u);t[n].value=e.target.value,m(t)},id:"select-access-policy",name:"select-access-policy",label:"",value:e.value,options:z[e.key]?z[e.key].map((function(e){return{label:e,value:e}})):[]}),0===V.length&&(0,I.jsx)(N.Z,{id:"nodeselector-value-".concat(n.toString()),label:"",name:"nodeselector-".concat(n.toString()),value:e.value,onChange:function(e){var t=Object.assign([],u);t[n].value=e.target.value,m(t)},index:n,placeholder:"value"})]}),(0,I.jsxs)(c.ZP,{item:!0,xs:2,className:t.rowActions,children:[(0,I.jsx)("div",{className:t.overlayAction,children:(0,I.jsx)(T.Z,{size:"small",onClick:function(){var e=Object.assign([],u);V.length>0?e.push({key:V[0].value,value:z[V[0].value][0]}):e.push({key:"",value:""}),m(e)},children:(0,I.jsx)(L.Z,{})})}),u.length>1&&(0,I.jsx)("div",{className:t.overlayAction,children:(0,I.jsx)(T.Z,{size:"small",onClick:function(){var e=u.filter((function(e,t){return t!==n}));m(e)},children:(0,I.jsx)(K.Z,{})})})]})]},"affinity-keyVal-".concat(n.toString()))}))})]})]}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.affinityConfigField,children:(0,I.jsxs)(c.ZP,{item:!0,className:t.affinityFieldLabel,children:[(0,I.jsx)("h3",{children:"Tolerations"}),(0,I.jsx)("span",{className:t.error,children:Z.tolerations}),(0,I.jsx)(c.ZP,{container:!0,children:f&&f.map((function(e,n){var a;return(0,I.jsxs)(c.ZP,{item:!0,xs:12,className:t.affinityRow,children:[(0,I.jsx)(Q,{effect:e.effect,onEffectChange:function(e){H(n,"effect",e)},tolerationKey:e.key,onTolerationKeyChange:function(e){H(n,"key",e)},operator:e.operator,onOperatorChange:function(e){H(n,"operator",e)},value:e.value,onValueChange:function(e){H(n,"value",e)},tolerationSeconds:(null===(a=e.tolerationSeconds)||void 0===a?void 0:a.seconds)||0,onSecondsChange:function(e){H(n,"tolerationSeconds",{seconds:e})},index:n}),(0,I.jsx)("div",{className:t.overlayAction,children:(0,I.jsx)(T.Z,{size:"small",onClick:x,disabled:n!==f.length-1,children:(0,I.jsx)(L.Z,{})})}),(0,I.jsx)("div",{className:t.overlayAction,children:(0,I.jsx)(T.Z,{size:"small",onClick:function(){return y(n)},disabled:f.length<=1,children:(0,I.jsx)(K.Z,{})})})]},"affinity-keyVal-".concat(n.toString()))}))})]})})]})}))),X=n(32291),ee=n(62666),te=(0,l.$j)((function(e){return{storageClasses:e.tenants.createTenant.storageClasses,customImage:e.tenants.createTenant.fields.configure.customImage,imageName:e.tenants.createTenant.fields.configure.imageName,customDockerhub:e.tenants.createTenant.fields.configure.customDockerhub,imageRegistry:e.tenants.createTenant.fields.configure.imageRegistry,imageRegistryUsername:e.tenants.createTenant.fields.configure.imageRegistryUsername,imageRegistryPassword:e.tenants.createTenant.fields.configure.imageRegistryPassword,exposeMinIO:e.tenants.createTenant.fields.configure.exposeMinIO,exposeConsole:e.tenants.createTenant.fields.configure.exposeConsole,prometheusCustom:e.tenants.createTenant.fields.configure.prometheusEnabled,tenantCustom:e.tenants.createTenant.fields.configure.tenantCustom,logSearchCustom:e.tenants.createTenant.fields.configure.logSearchEnabled,logSearchVolumeSize:e.tenants.createTenant.fields.configure.logSearchVolumeSize,logSearchSizeFactor:e.tenants.createTenant.fields.configure.logSearchSizeFactor,prometheusVolumeSize:e.tenants.createTenant.fields.configure.prometheusVolumeSize,prometheusSizeFactor:e.tenants.createTenant.fields.configure.prometheusSizeFactor,logSearchSelectedStorageClass:e.tenants.createTenant.fields.configure.logSearchSelectedStorageClass,logSearchImage:e.tenants.createTenant.fields.configure.logSearchImage,kesImage:e.tenants.createTenant.fields.configure.kesImage,logSearchPostgresImage:e.tenants.createTenant.fields.configure.logSearchPostgresImage,logSearchPostgresInitImage:e.tenants.createTenant.fields.configure.logSearchPostgresInitImage,prometheusSelectedStorageClass:e.tenants.createTenant.fields.configure.prometheusSelectedStorageClass,prometheusImage:e.tenants.createTenant.fields.configure.prometheusImage,prometheusSidecarImage:e.tenants.createTenant.fields.configure.prometheusSidecarImage,prometheusInitImage:e.tenants.createTenant.fields.configure.prometheusInitImage,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass}}),{updateAddField:C.HM,isPageValid:C.NO}),ne=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},g.DF),g.oO),g.AK))}))(te((function(e){var t=e.classes,n=(e.storageClasses,e.customImage),r=e.imageName,i=e.customDockerhub,o=e.imageRegistry,l=e.imageRegistryUsername,d=e.imageRegistryPassword,u=(e.exposeMinIO,e.exposeConsole,e.prometheusCustom),m=e.tenantCustom,g=e.logSearchCustom,p=e.logSearchVolumeSize,f=(e.logSearchSizeFactor,e.logSearchImage),h=e.kesImage,x=e.logSearchPostgresImage,y=e.logSearchPostgresInitImage,v=e.prometheusVolumeSize,C=(e.prometheusSizeFactor,e.logSearchSelectedStorageClass),A=e.prometheusSelectedStorageClass,P=e.prometheusImage,k=e.prometheusSidecarImage,T=e.prometheusInitImage,w=e.updateAddField,R=e.isPageValid,D=(e.selectedStorageClass,(0,s.useState)({})),F=(0,a.Z)(D,2),E=F[0],K=F[1],z=(0,s.useCallback)((function(e,t){w("configure",e,t)}),[w]);(0,s.useEffect)((function(){var e=[];u&&(e=[].concat((0,S.Z)(e),[{fieldKey:"prometheus_storage_class",required:!0,value:A,customValidation:""===A,customValidationMessage:"Field cannot be empty"},{fieldKey:"prometheus_volume_size",required:!0,value:v,customValidation:""===v||parseInt(v)<=0,customValidationMessage:"Volume size must be present and be greatter than 0"}])),g&&(e=[].concat((0,S.Z)(e),[{fieldKey:"log_search_storage_class",required:!0,value:C,customValidation:""===C,customValidationMessage:"Field cannot be empty"},{fieldKey:"log_search_volume_size",required:!0,value:p,customValidation:""===p||parseInt(p)<=0,customValidationMessage:"Volume size must be present and be greatter than 0"}])),n&&(e=[].concat((0,S.Z)(e),[{fieldKey:"image",required:!1,value:r,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/minio:VERSION'"},{fieldKey:"logSearchImage",required:!1,value:f,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/operator:VERSION'"},{fieldKey:"kesImage",required:!1,value:h,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/kes:VERSION'"},{fieldKey:"logSearchPostgresImage",required:!1,value:x,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'library/postgres:VERSION'"},{fieldKey:"logSearchPostgresInitImage",required:!1,value:y,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'library/busybox:VERSION'"},{fieldKey:"prometheusImage",required:!1,value:P,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'minio/prometheus:VERSION'"},{fieldKey:"prometheusSidecarImage",required:!1,value:k,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'project/container:VERSION'"},{fieldKey:"prometheusInitImage",required:!1,value:T,pattern:/^((.*?)\/(.*?):(.+))$/,customPatternMessage:"Format must be of form: 'library/busybox:VERSION'"}]),i&&(e=[].concat((0,S.Z)(e),[{fieldKey:"registry",required:!0,value:o},{fieldKey:"registryUsername",required:!0,value:l},{fieldKey:"registryPassword",required:!0,value:d}])));var t=(0,b.R)(e);R("configure",0===Object.keys(t).length),K(t)}),[n,r,f,h,x,y,P,k,T,i,o,l,d,R,u,m,g,A,v,C,p]);var G=function(e){K((0,Z.h)(E,e))};return(0,I.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,I.jsxs)("div",{className:t.headerElement,children:[(0,I.jsx)("h3",{className:t.h3Section,children:"Container Images"}),(0,I.jsx)("span",{className:t.descriptionText,children:"Specify the container images used by the Tenant and it's features."})]}),(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"image",name:"image",onChange:function(e){z("imageName",e.target.value),G("image")},label:"MinIO",value:r,error:E.image||"",placeholder:"E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"kesImage",name:"kesImage",onChange:function(e){z("kesImage",e.target.value),G("kesImage")},label:"KES",value:h,error:E.kesImage||"",placeholder:"E.g. minio/kes:v0.17.6"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)("h4",{children:"Log Search"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"logSearchImage",name:"logSearchImage",onChange:function(e){z("logSearchImage",e.target.value),G("logSearchImage")},label:"API",value:f,error:E.logSearchImage||"",placeholder:"E.g. minio/operator:v4.4.10"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"logSearchPostgresImage",name:"logSearchPostgresImage",onChange:function(e){z("logSearchPostgresImage",e.target.value),G("logSearchPostgresImage")},label:"PostgreSQL",value:x,error:E.logSearchPostgresImage||"",placeholder:"E.g. library/postgres:13"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"logSearchPostgresInitImage",name:"logSearchPostgresInitImage",onChange:function(e){z("logSearchPostgresInitImage",e.target.value),G("logSearchPostgresInitImage")},label:"PostgreSQL Init",value:y,error:E.logSearchPostgresInitImage||"",placeholder:"E.g. library/busybox:1.33.1"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)("h4",{children:"Monitoring"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"prometheusImage",name:"prometheusImage",onChange:function(e){z("prometheusImage",e.target.value),G("prometheusImage")},label:"Prometheus",value:P,error:E.prometheusImage||"",placeholder:"E.g. quay.io/prometheus/prometheus:latest"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"prometheusSidecarImage",name:"prometheusSidecarImage",onChange:function(e){z("prometheusSidecarImage",e.target.value),G("prometheusSidecarImage")},label:"Prometheus Sidecar",value:k,error:E.prometheusSidecarImage||"",placeholder:"E.g. quay.io/prometheus/prometheus:latest"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"prometheusInitImage",name:"prometheusInitImage",onChange:function(e){z("prometheusInitImage",e.target.value),G("prometheusInitImage")},label:"Prometheus Init",value:T,error:E.prometheusInitImage||"",placeholder:"E.g. quay.io/prometheus/prometheus:latest"})})]}),n&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)("h4",{children:"Custom Container Registry"})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(_.Z,{value:"custom_docker_hub",id:"custom_docker_hub",name:"custom_docker_hub",checked:i,onChange:function(e){var t=e.target.checked;z("customDockerhub",t)},label:"Use a private container registry"})})]}),i&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"registry",name:"registry",onChange:function(e){z("imageRegistry",e.target.value)},label:"Endpoint",value:o,error:E.registry||"",placeholder:"E.g. https://index.docker.io/v1/",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"registryUsername",name:"registryUsername",onChange:function(e){z("imageRegistryUsername",e.target.value)},label:"Username",value:l,error:E.registryUsername||"",required:!0})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"registryPassword",name:"registryPassword",onChange:function(e){z("imageRegistryPassword",e.target.value)},label:"Password",value:d,error:E.registryPassword||"",required:!0})})]})]})}))),ae=n(74794),re=n(84669),se=n(48573),ie=n.n(se),oe=n(49724),le=n(51691),ce=n(23508),de=n(74833),ue={setErrorSnackMessage:x.Ih},me=(0,l.$j)(null,ue),ge=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}},g.oO),g.Qw))}))(me((function(e){var t=e.classes,n=e.namespace,r=e.addNamespaceOpen,i=e.closeAddNamespaceModalAndRefresh,o=e.setErrorSnackMessage,l=(0,s.useState)(!1),c=(0,a.Z)(l,2),u=c[0],m=c[1];(0,s.useEffect)((function(){u&&p.Z.invoke("POST","/api/v1/namespace",{name:n}).then((function(e){m(!1),i(!0)})).catch((function(e){m(!1),o(e)}))}),[u,i,n,o]);return(0,I.jsx)(ce.Z,{title:"New namespace",confirmText:"Create",confirmButtonProps:{color:"primary",variant:"contained"},isOpen:r,titleIcon:(0,I.jsx)(de.Ej,{}),isLoading:u,onConfirm:function(){m(!0)},onClose:function(){i(!1)},confirmationContent:(0,I.jsxs)(s.Fragment,{children:[u&&(0,I.jsx)(d.Z,{}),(0,I.jsxs)(le.Z,{children:["Are you sure you want to add a namespace called",(0,I.jsx)("br",{}),(0,I.jsx)("b",{className:t.wrapText,children:n}),"?"]})]})})}))),pe=n(79836),fe=n(53382),he=n(53994),xe=n(35855),ye=n(94721),ve=(0,l.$j)((function(e){return{volumeSize:e.tenants.createTenant.fields.tenantSize.volumeSize,sizeFactor:e.tenants.createTenant.fields.tenantSize.sizeFactor,drivesPerServer:e.tenants.createTenant.fields.tenantSize.drivesPerServer,nodes:e.tenants.createTenant.fields.tenantSize.nodes,memoryNode:e.tenants.createTenant.fields.tenantSize.resourcesMemoryRequest,ecParity:e.tenants.createTenant.fields.tenantSize.ecParity,ecParityChoices:e.tenants.createTenant.fields.tenantSize.ecParityChoices,cleanECChoices:e.tenants.createTenant.fields.tenantSize.cleanECChoices,resourcesSize:e.tenants.createTenant.fields.tenantSize.resourcesSize,distribution:e.tenants.createTenant.fields.tenantSize.distribution,ecParityCalc:e.tenants.createTenant.fields.tenantSize.ecParityCalc,limitSize:e.tenants.createTenant.fields.tenantSize.limitSize,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass,cpuToUse:e.tenants.createTenant.fields.tenantSize.resourcesCPURequest,integrationSelection:e.tenants.createTenant.fields.tenantSize.integrationSelection}}),{updateAddField:C.HM,isPageValid:C.NO}),Ce=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({root:{margin:4},table:{"& .MuiTableCell-root":{fontSize:13}}},g.oO),g.AK))}))(ve((function(e){var t=e.classes,n=e.nodes,a=e.memoryNode,r=e.ecParity,i=e.distribution,o=e.ecParityCalc,l=e.cpuToUse,c=e.integrationSelection,d=o.storageFactors.find((function(e){return e.erasureCode===r}));return(0,I.jsxs)("div",{className:t.root,children:[(0,I.jsx)("h4",{children:"Resource Allocation"}),(0,I.jsx)(ye.Z,{}),(0,I.jsx)(pe.Z,{className:t.table,"aria-label":"simple table",size:"small",children:(0,I.jsxs)(fe.Z,{children:[(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{scope:"row",children:"Number of Servers"}),(0,I.jsx)(he.Z,{align:"right",children:parseInt(n)>0?n:"-"})]}),""===c.typeSelection&&""===c.storageClass&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{scope:"row",children:"Drives per Server"}),(0,I.jsx)(he.Z,{align:"right",children:i?i.disks:"-"})]}),(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{scope:"row",children:"Drive Capacity"}),(0,I.jsx)(he.Z,{align:"right",children:i?(0,f.ae)(i.pvSize):"-"})]})]}),(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{scope:"row",children:"Total Volumes"}),(0,I.jsx)(he.Z,{align:"right",children:i?i.persistentVolumes:"-"})]}),""===c.typeSelection&&""===c.storageClass&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{scope:"row",children:"Memory per Node"}),(0,I.jsxs)(he.Z,{align:"right",children:[a," Gi"]})]}),(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{style:{borderBottom:0},scope:"row",children:"CPU Selection"}),(0,I.jsx)(he.Z,{style:{borderBottom:0},align:"right",children:l})]})]})]})}),0===o.error&&d&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)("h4",{children:"Erasure Code Configuration"}),(0,I.jsx)(ye.Z,{}),(0,I.jsx)(pe.Z,{className:t.table,"aria-label":"simple table",size:"small",children:(0,I.jsxs)(fe.Z,{children:[(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{scope:"row",children:"EC Parity"}),(0,I.jsx)(he.Z,{align:"right",children:""!==r?r:"-"})]}),(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{scope:"row",children:"Raw Capacity"}),(0,I.jsx)(he.Z,{align:"right",children:(0,f.ae)(o.rawCapacity)})]}),(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{scope:"row",children:"Usable Capacity"}),(0,I.jsx)(he.Z,{align:"right",children:(0,f.ae)(d.maxCapacity)})]}),(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{style:{borderBottom:0},scope:"row",children:"Server Failures Tolerated"}),(0,I.jsx)(he.Z,{style:{borderBottom:0},align:"right",children:i?Math.floor(d.maxFailureTolerations/i.disks):"-"})]})]})})]}),""!==c.typeSelection&&""!==c.storageClass&&(0,I.jsxs)(s.Fragment,{children:[(0,I.jsx)("h4",{children:"Single Instance Configuration"}),(0,I.jsx)(ye.Z,{}),(0,I.jsx)(pe.Z,{className:t.table,"aria-label":"simple table",size:"small",children:(0,I.jsxs)(fe.Z,{children:[(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{scope:"row",children:"CPU"}),(0,I.jsx)(he.Z,{align:"right",children:0!==c.CPU?c.CPU:"-"})]}),(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{scope:"row",children:"Memory"}),(0,I.jsx)(he.Z,{align:"right",children:0!==c.memory?"".concat(c.memory," Gi"):"-"})]}),(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{scope:"row",children:"Drives per Server"}),(0,I.jsx)(he.Z,{align:"right",children:0!==c.drivesPerServer?"".concat(c.drivesPerServer):"-"})]}),(0,I.jsxs)(xe.Z,{children:[(0,I.jsx)(he.Z,{style:{borderBottom:0},scope:"row",children:"Drive Size"}),(0,I.jsxs)(he.Z,{style:{borderBottom:0},align:"right",children:[c.driveSize.driveSize,c.driveSize.sizeUnit]})]})]})})]})]})}))),Se=n(19720),je=n(45884),Ze=(0,l.$j)((function(e){return{tenantName:e.tenants.createTenant.fields.nameTenant.tenantName,namespace:e.tenants.createTenant.fields.nameTenant.namespace,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass,selectedStorageType:e.tenants.createTenant.fields.nameTenant.selectedStorageType,storageClasses:e.tenants.createTenant.storageClasses,features:e.console.session.features}}),{setModalErrorSnackMessage:x.zb,updateAddField:C.HM,setStorageClassesList:C.wZ,setLimitSize:C.DH,isPageValid:C.NO,setStorageType:C.Qy}),be=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)({sizePreview:{position:"fixed",marginLeft:10,background:"#FFFFFF",border:"1px solid #EAEAEA",padding:2}},g.DF),g.oO),g.AK))}))(Ze((function(e){var t=e.classes,n=e.storageClasses,r=e.tenantName,i=e.namespace,l=e.selectedStorageClass,d=e.selectedStorageType,u=e.formToRender,m=void 0===u?je.cy.default:u,g=e.updateAddField,f=e.setStorageClassesList,h=e.setLimitSize,x=e.isPageValid,y=e.setModalErrorSnackMessage,v=e.features,C=e.setStorageType,S=(0,s.useState)({}),_=(0,a.Z)(S,2),A=_[0],P=_[1],k=(0,s.useState)(!0),T=(0,a.Z)(k,2),w=T[0],R=T[1],D=(0,s.useState)(!1),F=(0,a.Z)(D,2),E=F[0],K=F[1],z=(0,s.useState)(!1),G=(0,a.Z)(z,2),U=G[0],q=G[1],V=(0,s.useState)(!1),M=(0,a.Z)(V,2),O=M[0],B=M[1],H=(0,s.useCallback)((function(e,t){g("nameTenant",e,t)}),[g]),$=(0,s.useCallback)((function(){q(!1),p.Z.invoke("GET","/api/v1/namespaces/".concat(i,"/tenants")).then((function(e){var t=o()(e,"tenants",[]);if(t&&t.length>0)return R(!1),void K(!1);R(!0),p.Z.invoke("GET","/api/v1/namespaces/".concat(i,"/resourcequotas/").concat(i,"-storagequota")).then((function(e){var t=o()(e,"elements",[]);h((0,oe.OU)(e));var n=t.map((function(e){var t=o()(e,"name","").split(".storageclass.storage.k8s.io/requests.storage")[0];return{label:t,value:t}}));f(n);var a=n.findIndex((function(e){return e.value===l}));n.length>0&&-1===a?H("selectedStorageClass",n[0].value):0===n.length&&(H("selectedStorageClass",""),f([])),K(!1)})).catch((function(e){K(!1),q(!0),H("selectedStorageClass",""),f([]),console.error("Namespace error: ",e)}))})).catch((function(e){y({errorMessage:"Error validating if namespace already has tenants",detailedError:e.detailedError})}))}),[i,h,y,f,H,l]),Q=(0,s.useMemo)((function(){return ie()($,500)}),[$]);(0,s.useEffect)((function(){if(""!==i)return Q(),K(!0),Q.cancel}),[Q,i]),(0,s.useEffect)((function(){var e=!1,t="";w||E?n.length<1&&w&&!E&&(e=!0,t="Please enter a valid namespace"):(e=!0,t="You can only create one tenant per namespace");var a=(0,b.R)([{fieldKey:"tenant-name",required:!0,pattern:/^[a-z0-9-]{3,63}$/,customPatternMessage:"Name only can contain lowercase letters, numbers and '-'. Min. Length: 3",value:r},{fieldKey:"namespace",required:!0,value:i,customValidation:e,customValidationMessage:t}]),s=!("tenant-name"in a)&&!("namespace"in a)&&(m===je.cy.default&&n.length>0||m!==je.cy.default&&""!==d);x("nameTenant",s),P(a)}),[n,i,r,x,w,E,d,m]);var Y=function(e){P((0,Z.h)(A,e))};return(0,I.jsxs)(s.Fragment,{children:[O&&(0,I.jsx)(ge,{addNamespaceOpen:O,closeAddNamespaceModalAndRefresh:function(e){B(!1),e&&Q()},namespace:i}),(0,I.jsxs)(c.ZP,{container:!0,children:[(0,I.jsx)(c.ZP,{item:!0,xs:8,md:9,children:(0,I.jsx)(j.Z,{className:t.paperWrapper,sx:{minHeight:550},children:(0,I.jsxs)(c.ZP,{container:!0,children:[(0,I.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,I.jsxs)("div",{className:t.headerElement,children:[(0,I.jsx)("h3",{className:t.h3Section,children:"Name"}),(0,I.jsx)("span",{className:t.descriptionText,children:"How would you like to name this new tenant?"})]}),(0,I.jsx)("div",{className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"tenant-name",name:"tenant-name",onChange:function(e){H("tenantName",e.target.value),Y("tenant-name")},label:"Name",value:r,required:!0,error:A["tenant-name"]||""})})]}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(N.Z,{id:"namespace",name:"namespace",onChange:function(e){H("namespace",e.target.value),Y("namespace")},label:"Namespace",value:i,error:A.namespace||"",overlayId:"add-namespace",overlayIcon:U?(0,I.jsx)(L.Z,{}):null,overlayAction:function(){B(!0)},required:!0})}),m===je.cy.default?(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(W.Z,{id:"storage_class",name:"storage_class",onChange:function(e){H("selectedStorageClass",e.target.value)},label:"Storage Class",value:l,options:n,disabled:n.length<1})}):(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,I.jsx)(W.Z,{id:"storage_type",name:"storage_type",onChange:function(e){C(e.target.value,v)},label:o()(je.Hd,"".concat(m,".variantSelectorLabel"),"Storage Type"),value:d,options:o()(je.Hd,"".concat(m,".variantSelectorValues"),[])})}),m===je.cy.default?(0,I.jsx)(Se.Z,{}):o()(je.Hd,"".concat(m,".sizingComponent"),null)]})})}),(0,I.jsx)(c.ZP,{item:!0,xs:4,md:3,children:(0,I.jsx)("div",{className:t.sizePreview,children:(0,I.jsx)(Ce,{})})})]})]})}))),_e=(0,l.$j)((function(e){return{features:e.console.session.features}}),null)((function(e){var t=e.features,n=(0,s.useState)(null),r=(0,a.Z)(n,2),i=r[0],l=r[1];return(0,s.useEffect)((function(){var e=je.cy.default;t&&0!==t.length&&Object.keys(je.I8).forEach((function(n){t.includes(n)&&(e=o()(je.I8,n,je.cy.default))}));l(e)}),[t]),null===i?null:(0,I.jsx)(be,{formToRender:i})})),Ne=(0,l.$j)((function(e){return{storageClasses:e.tenants.createTenant.storageClasses,logSearchEnabled:e.tenants.createTenant.fields.configure.logSearchEnabled,logSearchVolumeSize:e.tenants.createTenant.fields.configure.logSearchVolumeSize,logSearchSizeFactor:e.tenants.createTenant.fields.configure.logSearchSizeFactor,logSearchSelectedStorageClass:e.tenants.createTenant.fields.configure.logSearchSelectedStorageClass,logSearchImage:e.tenants.createTenant.fields.configure.logSearchImage,logSearchPostgresImage:e.tenants.createTenant.fields.configure.logSearchPostgresImage,logSearchPostgresInitImage:e.tenants.createTenant.fields.configure.logSearchPostgresInitImage,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass,tenantSecurityContext:e.tenants.createTenant.fields.configure.tenantSecurityContext,logSearchSecurityContext:e.tenants.createTenant.fields.configure.logSearchSecurityContext,logSearchPostgresSecurityContext:e.tenants.createTenant.fields.configure.logSearchPostgresSecurityContext}}),{updateAddField:C.HM,isPageValid:C.NO}),Ie=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},containerItem:{marginRight:15},fieldGroup:(0,r.Z)((0,r.Z)({},g.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},logSearchEnabledFields:{marginLeft:20,padding:10,width:"90%",margin:"auto"},fieldSpaceTop:{marginTop:15}},g.oO),g.AK))}))(Ne((function(e){var t=e.classes,n=e.storageClasses,i=e.logSearchEnabled,o=e.logSearchVolumeSize,l=(e.logSearchSizeFactor,e.logSearchImage),d=e.logSearchPostgresImage,u=e.logSearchPostgresInitImage,m=e.logSearchSelectedStorageClass,g=e.updateAddField,p=e.isPageValid,f=e.selectedStorageClass,h=e.tenantSecurityContext,x=e.logSearchSecurityContext,y=e.logSearchPostgresSecurityContext,v=(0,s.useState)({}),C=(0,a.Z)(v,2),A=C[0],P=C[1],k=[{label:"Default",value:"default"}].concat((0,S.Z)(n)),T=(0,s.useCallback)((function(e,t){g("configure",e,t)}),[g]);(0,s.useEffect)((function(){var e=[];i&&(e=[].concat((0,S.Z)(e),[{fieldKey:"log_search_storage_class",required:!0,value:m,customValidation:""===m,customValidationMessage:"Field cannot be empty"},{fieldKey:"log_search_volume_size",required:!0,value:o,customValidation:""===o||parseInt(o)<=0,customValidationMessage:"Volume size must be present and be greatter than 0"},{fieldKey:"logSearch_securityContext_runAsUser",required:!0,value:x.runAsUser,customValidation:""===x.runAsUser||parseInt(x.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"logSearch_securityContext_runAsGroup",required:!0,value:x.runAsGroup,customValidation:""===x.runAsGroup||parseInt(x.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"logSearch_securityContext_fsGroup",required:!0,value:x.fsGroup,customValidation:""===x.fsGroup||parseInt(x.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"},{fieldKey:"postgres_securityContext_runAsUser",required:!0,value:y.runAsUser,customValidation:""===y.runAsUser||parseInt(y.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"postgres_securityContext_runAsGroup",required:!0,value:x.runAsGroup,customValidation:""===y.runAsGroup||parseInt(y.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"postgres_securityContext_fsGroup",required:!0,value:y.fsGroup,customValidation:""===y.fsGroup||parseInt(y.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]));var t=(0,b.R)(e);p("configure",0===Object.keys(t).length),P(t)}),[l,d,u,p,i,m,o,h,x,y]),(0,s.useEffect)((function(){n.length>0&&(0===n.filter((function(e){return e.value===m})).length&&T("logSearchSelectedStorageClass","default"))}),[m,f,n,T]);var w=function(e){P((0,Z.h)(A,e))};return(0,I.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,I.jsxs)("div",{className:t.headerElement,children:[(0,I.jsx)("h3",{className:t.h3Section,children:"Audit Log"}),(0,I.jsx)("span",{className:t.descriptionText,children:"Audit log deploys a small PostgreSQL database and store access logs of all calls into the tenant."})]}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,I.jsx)(_.Z,{value:"logSearchConfig",id:"log-search-enabled",name:"log_search_enabled",checked:i,onChange:function(e){var t=e.target.checked;T("logSearchEnabled",t)},label:"Enabled"})}),i&&(0,I.jsxs)(c.ZP,{xs:12,className:t.logSearchEnabledFields,children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsx)(W.Z,{id:"log_search_storage_class",name:"log_search_storage_class",onChange:function(e){T("logSearchSelectedStorageClass",e.target.value)},label:"Log Search Storage Class",value:m,options:k,disabled:k.length<1})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsx)("div",{className:t.multiContainer,children:(0,I.jsx)(N.Z,{type:"number",id:"log_search_volume_size",name:"log_search_volume_size",onChange:function(e){T("logSearchVolumeSize",e.target.value),w("log_search_volume_size")},label:"Storage Size",overlayObject:(0,I.jsx)($.Z,{id:"size-unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0}),value:o,required:!0,error:A.log_search_volume_size||"",min:"0"})})}),(0,I.jsxs)("fieldset",{className:"".concat(t.fieldGroup," ").concat(t.fieldSpaceTop),children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"SecurityContext for LogSearch"}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsxs)("div",{className:"".concat(t.multiContainer," ").concat(t.responsiveSectionItem),children:[(0,I.jsx)("div",{className:t.configSectionItem,children:(0,I.jsx)(N.Z,{type:"number",id:"logSearch_securityContext_runAsUser",name:"logSearch_securityContext_runAsUser",onChange:function(e){T("logSearchSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{runAsUser:e.target.value})),w("logSearch_securityContext_runAsUser")},label:"Run As User",value:x.runAsUser,required:!0,error:A.logSearch_securityContext_runAsUser||"",min:"0"})}),(0,I.jsx)("div",{className:t.configSectionItem,children:(0,I.jsx)(N.Z,{type:"number",id:"logSearch_securityContext_runAsGroup",name:"logSearch_securityContext_runAsGroup",onChange:function(e){T("logSearchSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{runAsGroup:e.target.value})),w("logSearch_securityContext_runAsGroup")},label:"Run As Group",value:x.runAsGroup,required:!0,error:A.logSearch_securityContext_runAsGroup||"",min:"0"})}),(0,I.jsx)("div",{className:t.configSectionItem,children:(0,I.jsx)(N.Z,{type:"number",id:"logSearch_securityContext_fsGroup",name:"logSearch_securityContext_fsGroup",onChange:function(e){T("logSearchSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{fsGroup:e.target.value})),w("logSearch_securityContext_fsGroup")},label:"FsGroup",value:x.fsGroup,required:!0,error:A.logSearch_securityContext_fsGroup||"",min:"0"})})]})}),(0,I.jsx)("br",{}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsx)("div",{className:t.multiContainer,children:(0,I.jsx)(_.Z,{value:"logSearchSecurityContextRunAsNonRoot",id:"logSearch_securityContext_runAsNonRoot",name:"logSearch_securityContext_runAsNonRoot",checked:x.runAsNonRoot,onChange:function(e){var t=e.target.checked;T("logSearchSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{runAsNonRoot:t}))},label:"Do not run as Root"})})})]}),(0,I.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"SecurityContext for PostgreSQL"}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsxs)("div",{className:"".concat(t.multiContainer," ").concat(t.responsiveSectionItem),children:[(0,I.jsx)("div",{className:t.configSectionItem,children:(0,I.jsx)(N.Z,{type:"number",id:"postgres_securityContext_runAsUser",name:"postgres_securityContext_runAsUser",onChange:function(e){T("logSearchPostgresSecurityContext",(0,r.Z)((0,r.Z)({},y),{},{runAsUser:e.target.value})),w("postgres_securityContext_runAsUser")},label:"Run As User",value:y.runAsUser,required:!0,error:A.postgres_securityContext_runAsUser||"",min:"0"})}),(0,I.jsx)("div",{className:t.configSectionItem,children:(0,I.jsx)(N.Z,{type:"number",id:"postgres_securityContext_runAsGroup",name:"postgres_securityContext_runAsGroup",onChange:function(e){T("logSearchPostgresSecurityContext",(0,r.Z)((0,r.Z)({},y),{},{runAsGroup:e.target.value})),w("postgres_securityContext_runAsGroup")},label:"Run As Group",value:y.runAsGroup,required:!0,error:A.postgres_securityContext_runAsGroup||"",min:"0"})}),(0,I.jsx)("div",{className:t.configSectionItem,children:(0,I.jsx)(N.Z,{type:"number",id:"postgres_securityContext_fsGroup",name:"postgres_securityContext_fsGroup",onChange:function(e){T("logSearchPostgresSecurityContext",(0,r.Z)((0,r.Z)({},y),{},{fsGroup:e.target.value})),w("postgres_securityContext_fsGroup")},label:"FsGroup",value:y.fsGroup,required:!0,error:A.postgres_securityContext_fsGroup||"",min:"0"})})]})}),(0,I.jsx)("br",{}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsx)("div",{className:t.multiContainer,children:(0,I.jsx)(_.Z,{value:"postgresSecurityContextRunAsNonRoot",id:"postgres_securityContext_runAsNonRoot",name:"postgres_securityContext_runAsNonRoot",checked:y.runAsNonRoot,onChange:function(e){var t=e.target.checked;T("logSearchPostgresSecurityContext",(0,r.Z)((0,r.Z)({},y),{},{runAsNonRoot:t}))},label:"Do not run as Root"})})})]})]})]})}))),Ae=(0,l.$j)((function(e){return{storageClasses:e.tenants.createTenant.storageClasses,prometheusEnabled:e.tenants.createTenant.fields.configure.prometheusEnabled,prometheusVolumeSize:e.tenants.createTenant.fields.configure.prometheusVolumeSize,prometheusSizeFactor:e.tenants.createTenant.fields.configure.prometheusSizeFactor,prometheusSelectedStorageClass:e.tenants.createTenant.fields.configure.prometheusSelectedStorageClass,prometheusImage:e.tenants.createTenant.fields.configure.prometheusImage,prometheusSidecarImage:e.tenants.createTenant.fields.configure.prometheusSidecarImage,prometheusInitImage:e.tenants.createTenant.fields.configure.prometheusInitImage,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass,tenantSecurityContext:e.tenants.createTenant.fields.configure.tenantSecurityContext,prometheusSecurityContext:e.tenants.createTenant.fields.configure.prometheusSecurityContext}}),{updateAddField:C.HM,isPageValid:C.NO}),Pe=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},containerItem:{marginRight:15},fieldGroup:(0,r.Z)((0,r.Z)({},g.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},fieldSpaceTop:{marginTop:15},prometheusEnabledFields:{marginLeft:20,padding:10,width:"90%",margin:"auto"}},g.oO),g.AK))}))(Ae((function(e){var t=e.classes,n=e.storageClasses,i=e.prometheusEnabled,o=e.prometheusVolumeSize,l=(e.prometheusSizeFactor,e.prometheusSelectedStorageClass),d=e.prometheusImage,u=e.prometheusSidecarImage,m=e.prometheusInitImage,g=e.updateAddField,p=e.isPageValid,f=e.selectedStorageClass,h=e.tenantSecurityContext,x=e.prometheusSecurityContext,y=(0,s.useState)({}),v=(0,a.Z)(y,2),C=v[0],A=v[1],P=[{label:"Default",value:"default"}].concat((0,S.Z)(n)),k=(0,s.useCallback)((function(e,t){g("configure",e,t)}),[g]);(0,s.useEffect)((function(){var e=[];i&&(e=[].concat((0,S.Z)(e),[{fieldKey:"prometheus_storage_class",required:!0,value:l,customValidation:""===l,customValidationMessage:"Field cannot be empty"},{fieldKey:"prometheus_volume_size",required:!0,value:o,customValidation:""===o||parseInt(o)<=0,customValidationMessage:"Volume size must be present and be greater than 0"},{fieldKey:"prometheus_securityContext_runAsUser",required:!0,value:x.runAsUser,customValidation:""===x.runAsUser||parseInt(x.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"prometheus_securityContext_runAsGroup",required:!0,value:x.runAsGroup,customValidation:""===x.runAsGroup||parseInt(x.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"prometheus_securityContext_fsGroup",required:!0,value:x.fsGroup,customValidation:""===x.fsGroup||parseInt(x.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]));var t=(0,b.R)(e);p("configure",0===Object.keys(t).length),A(t)}),[d,u,m,p,i,l,o,h,x]),(0,s.useEffect)((function(){n.length>0&&(0===n.filter((function(e){return e.value===l})).length&&k("prometheusSelectedStorageClass","default"))}),[l,f,n,k]);var T=function(e){A((0,Z.h)(C,e))};return(0,I.jsxs)(j.Z,{className:t.paperWrapper,children:[(0,I.jsxs)("div",{className:t.headerElement,children:[(0,I.jsx)("h3",{className:t.h3Section,children:"Monitoring"}),(0,I.jsx)("span",{className:t.descriptionText,children:"A small Prometheus will be deployed to keep metrics about the tenant."})]}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,I.jsx)(_.Z,{value:"prometheusConfig",id:"prometheus_configuration",name:"prometheus_configuration",checked:i,onChange:function(e){var t=e.target.checked;k("prometheusEnabled",t)},label:"Enabled"})}),i&&(0,I.jsxs)(c.ZP,{xs:12,className:t.prometheusEnabledFields,children:[(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsx)(W.Z,{id:"prometheus_storage_class",name:"prometheus_storage_class",onChange:function(e){k("prometheusSelectedStorageClass",e.target.value)},label:"Prometheus Storage Class",value:l,options:P,disabled:P.length<1})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,children:(0,I.jsx)("div",{className:t.multiContainer,children:(0,I.jsx)(N.Z,{type:"number",id:"prometheus_volume_size",name:"prometheus_volume_size",onChange:function(e){k("prometheusVolumeSize",e.target.value),T("prometheus_volume_size")},label:"Storage Size",overlayObject:(0,I.jsx)($.Z,{id:"size-unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0}),value:o,required:!0,error:C.prometheus_volume_size||"",min:"0"})})}),(0,I.jsxs)("fieldset",{className:"".concat(t.fieldGroup," ").concat(t.fieldSpaceTop),children:[(0,I.jsx)("legend",{className:t.descriptionText,children:"SecurityContext for Prometheus"}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,I.jsxs)("div",{className:"".concat(t.multiContainer," ").concat(t.responsiveSectionItem),children:[(0,I.jsx)("div",{className:t.configSectionItem,children:(0,I.jsx)(N.Z,{type:"number",id:"prometheus_securityContext_runAsUser",name:"prometheus_securityContext_runAsUser",onChange:function(e){k("prometheusSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{runAsUser:e.target.value})),T("prometheus_securityContext_runAsUser")},label:"Run As User",value:x.runAsUser,required:!0,error:C.prometheus_securityContext_runAsUser||"",min:"0"})}),(0,I.jsx)("div",{className:t.configSectionItem,children:(0,I.jsx)(N.Z,{type:"number",id:"prometheus_securityContext_runAsGroup",name:"prometheus_securityContext_runAsGroup",onChange:function(e){k("prometheusSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{runAsGroup:e.target.value})),T("prometheus_securityContext_runAsGroup")},label:"Run As Group",value:x.runAsGroup,required:!0,error:C.prometheus_securityContext_runAsGroup||"",min:"0"})}),(0,I.jsx)("div",{className:t.configSectionItem,children:(0,I.jsx)(N.Z,{type:"number",id:"prometheus_securityContext_fsGroup",name:"prometheus_securityContext_fsGroup",onChange:function(e){k("prometheusSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{fsGroup:e.target.value})),T("prometheus_securityContext_fsGroup")},label:"FsGroup",value:x.fsGroup,required:!0,error:C.prometheus_securityContext_fsGroup||"",min:"0"})})]})}),(0,I.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,I.jsx)("div",{className:"".concat(t.multiContainer," ").concat(t.fieldSpaceTop),children:(0,I.jsx)(_.Z,{value:"prometheusSecurityContextRunAsNonRoot",id:"prometheus_securityContext_runAsNonRoot",name:"prometheus_securityContext_runAsNonRoot",checked:x.runAsNonRoot,onChange:function(e){var t=e.target.checked;k("prometheusSecurityContext",(0,r.Z)((0,r.Z)({},x),{},{runAsNonRoot:t}))},label:"Do not run as Root"})})})]})]})]})}))),ke=n(23804),Te=(0,l.$j)((function(e){return{namespace:e.tenants.createTenant.fields.nameTenant.namespace,validPages:e.tenants.createTenant.validPages,fields:e.tenants.createTenant.fields,certificates:e.tenants.createTenant.certificates,selectedStorageClass:e.tenants.createTenant.fields.nameTenant.selectedStorageClass,features:e.console.session.features,tolerations:e.tenants.createTenant.tolerations}}),{setErrorSnackMessage:x.Ih,updateAddField:C.HM,resetAddTenantForm:C.dS}),we=(0,m.Z)((function(e){return(0,u.Z)((0,r.Z)((0,r.Z)((0,r.Z)({pageBox:{border:"1px solid #EAEAEA"}},g.oO),g.AK),g.Je))}))(Te((function(e){var t=e.classes,n=e.fields,i=e.certificates,l=e.selectedStorageClass,u=e.namespace,m=e.validPages,g=e.setErrorSnackMessage,x=e.resetAddTenantForm,C=e.features,S=e.tolerations,j=(0,s.useState)(!1),Z=(0,a.Z)(j,2),b=Z[0],_=Z[1],N=(0,s.useState)(null),A=(0,a.Z)(N,2),k=A[0],T=A[1],w=(0,s.useState)(!1),R=(0,a.Z)(w,2),D=R[0],F=R[1],E=(0,s.useState)(null),K=(0,a.Z)(E,2),z=K[0],U=K[1];(0,s.useEffect)((function(){var e=je.cy.default;C&&0!==C.length&&Object.keys(je.I8).forEach((function(t){C.includes(t)&&(e=o()(je.I8,t,je.cy.default))}));U(e)}),[C]),(0,s.useEffect)((function(){var e=n.nameTenant.tenantName,t=n.nameTenant.selectedStorageClass,a=n.configure.imageName,s=n.configure.customDockerhub,l=n.configure.imageRegistry,c=n.configure.imageRegistryUsername,d=n.configure.imageRegistryPassword,m=n.configure.exposeMinIO,h=n.configure.exposeConsole,x=n.identityProvider.idpSelection,v=n.identityProvider.openIDConfigurationURL,C=n.identityProvider.openIDClientID,j=n.identityProvider.openIDClaimName,Z=n.identityProvider.openIDCallbackURL,b=n.identityProvider.openIDScopes,N=n.identityProvider.openIDSecretID,I=n.identityProvider.ADURL,A=n.identityProvider.ADSkipTLS,P=n.identityProvider.ADServerInsecure,k=n.identityProvider.ADGroupSearchBaseDN,w=n.identityProvider.ADGroupSearchFilter,R=n.identityProvider.ADUserDNs,E=n.identityProvider.ADLookupBindDN,K=n.identityProvider.ADLookupBindPassword,z=n.identityProvider.ADUserDNSearchBaseDN,G=n.identityProvider.ADUserDNSearchFilter,U=n.identityProvider.ADServerStartTLS,L=n.identityProvider.accessKeys,q=n.identityProvider.secretKeys,V=i.minioCertificates,M=i.caCertificates,O=i.consoleCaCertificates,B=i.consoleCertificate,W=i.serverCertificate,H=i.clientCertificate,$=i.vaultCertificate,Q=i.vaultCA,Y=i.gemaltoCA,J=n.encryption.enableEncryption,X=n.encryption.encryptionType,ee=n.encryption.gemaltoEndpoint,te=n.encryption.gemaltoToken,ne=n.encryption.gemaltoDomain,ae=n.encryption.gemaltoRetry,re=n.encryption.awsEndpoint,se=n.encryption.awsRegion,ie=n.encryption.awsKMSKey,oe=n.encryption.awsAccessKey,le=n.encryption.awsSecretKey,ce=n.encryption.awsToken,de=n.encryption.vaultEndpoint,ue=n.encryption.vaultEngine,me=n.encryption.vaultNamespace,ge=n.encryption.vaultPrefix,pe=n.encryption.vaultAppRoleEngine,fe=n.encryption.vaultId,he=n.encryption.vaultSecret,xe=n.encryption.vaultRetry,ye=n.encryption.vaultPing,ve=n.encryption.azureEndpoint,Ce=n.encryption.azureTenantID,Se=n.encryption.azureClientID,je=n.encryption.azureClientSecret,Ze=n.encryption.gcpProjectID,be=n.encryption.gcpEndpoint,_e=n.encryption.gcpClientEmail,Ne=n.encryption.gcpClientID,Ie=n.encryption.gcpPrivateKeyID,Ae=n.encryption.gcpPrivateKey,Pe=n.security.enableAutoCert,ke=n.security.enableTLS,Te=n.tenantSize.ecParity,we=n.tenantSize.distribution,Re=n.configure.tenantCustom,De=n.configure.logSearchEnabled,Fe=n.configure.prometheusEnabled,Ee=n.configure.logSearchVolumeSize,Ke=n.configure.logSearchSelectedStorageClass,ze=n.configure.logSearchImage,Ge=n.configure.kesImage,Ue=n.configure.logSearchPostgresImage,Le=n.configure.logSearchPostgresInitImage,qe=n.configure.prometheusImage,Ve=n.configure.prometheusSidecarImage,Me=n.configure.prometheusInitImage,Oe=n.configure.prometheusSelectedStorageClass,Be=n.configure.prometheusVolumeSize,We=n.affinity.podAffinity,He=n.affinity.nodeSelectorLabels,$e=n.affinity.withPodAntiAffinity,Qe=n.configure.tenantSecurityContext,Ye=n.configure.logSearchSecurityContext,Je=n.configure.logSearchPostgresSecurityContext,Xe=n.configure.prometheusSecurityContext,et=n.encryption.kesSecurityContext,tt=n.encryption.replicas;if(D){var nt=S.filter((function(e){return""!==e.key.trim()})),at=(0,f.en)([]),rt={};switch(We){case"default":rt={affinity:(0,y.P)(e,at)};break;case"nodeSelector":rt={affinity:(0,y.q)(He,$e,e,at)}}var st=Te.split(":")[1],it={name:e,namespace:u,access_key:"",secret_key:"",access_keys:[],secret_keys:[],enable_tls:ke&&Pe,enable_console:!0,enable_prometheus:!0,service_name:"",image:a,expose_minio:m,expose_console:h,pools:[(0,r.Z)((0,r.Z)({name:at,servers:we.nodes,volumes_per_server:we.disks,volume_configuration:{size:we.pvSize,storage_class_name:t},securityContext:Re?Qe:null},rt),{},{tolerations:nt})],erasureCodingParity:parseInt(st,10)};""===n.tenantSize.resourcesCPURequest&&""===n.tenantSize.resourcesCPULimit&&""===n.tenantSize.resourcesMemoryRequest&&""===n.tenantSize.resourcesMemoryLimit||(it.pools[0].resources={},""===n.tenantSize.resourcesCPURequest&&""===n.tenantSize.resourcesMemoryRequest||(it.pools[0].resources.requests={},""!==n.tenantSize.resourcesCPURequest&&(it.pools[0].resources.requests.cpu=parseInt(n.tenantSize.resourcesCPURequest)),""!==n.tenantSize.resourcesMemoryRequest&&(it.pools[0].resources.requests.memory=parseInt((0,f.Pw)(n.tenantSize.resourcesMemoryRequest,"Gi",!0)))),""===n.tenantSize.resourcesCPULimit&&""===n.tenantSize.resourcesMemoryLimit||(it.pools[0].resources.limits={},""!==n.tenantSize.resourcesCPULimit&&(it.pools[0].resources.limits.cpu=parseInt(n.tenantSize.resourcesCPULimit)),""!==n.tenantSize.resourcesMemoryLimit&&(it.pools[0].resources.limits.memory=parseInt((0,f.Pw)(n.tenantSize.resourcesMemoryLimit,"Gi",!0))))),s&&(it=(0,r.Z)((0,r.Z)({},it),{},{image_registry:{registry:l,username:c,password:d}})),De&&(it=(0,r.Z)((0,r.Z)({},it),{},{logSearchConfiguration:{storageClass:"default"===Ke?"":Ke,storageSize:parseInt(Ee),image:ze,postgres_image:Ue,postgres_init_image:Le,securityContext:Ye,postgres_securityContext:Je}})),Fe&&(it=(0,r.Z)((0,r.Z)({},it),{},{prometheusConfiguration:{storageClass:"default"===Oe?"":Oe,storageSize:parseInt(Be),image:qe,sidecar_image:Ve,init_image:Me,securityContext:Xe}}));var ot=null,lt=null,ct=null,dt=null;if(M.length>0&&(ct={ca_certificates:M.map((function(e){return e.encoded_cert})).filter((function(e){return e}))}),O.length>0&&(dt={console_ca_certificates:O.map((function(e){return e.encoded_cert})).filter((function(e){return e}))}),ke&&V.length>0&&(ot={minio:V.map((function(e){return{crt:e.encoded_cert,key:e.encoded_key}})).filter((function(e){return e.crt&&e.key}))}),ke&&""!==B.encoded_cert&&""!==B.encoded_key&&(lt={console:{crt:B.encoded_cert,key:B.encoded_key}}),(ot||lt||ct||dt)&&(it=(0,r.Z)((0,r.Z)({},it),{},{tls:(0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},ot),lt),ct),dt)})),J){var ut={};switch(X){case"gemalto":var mt={};""!==Y.encoded_cert&&(mt={ca:Y.encoded_cert}),ut={gemalto:{keysecure:{endpoint:ee,credentials:{token:te,domain:ne,retry:parseInt(ae)},tls:(0,r.Z)({},mt)}}};break;case"aws":ut={aws:{secretsmanager:{endpoint:re,region:se,kmskey:ie,credentials:{accesskey:oe,secretkey:le,token:ce}}}};break;case"azure":ut={azure:{keyvault:{endpoint:ve,credentials:{tenant_id:Ce,client_id:Se,client_secret:je}}}};break;case"gcp":ut={gcp:{secretmanager:{project_id:Ze,endpoint:be,credentials:{client_email:_e,client_id:Ne,private_key_id:Ie,private_key:Ae}}}};break;case"vault":var gt=null,pt=null;""!==$.encoded_key&&""!==$.encoded_cert&&(gt={key:$.encoded_key,crt:$.encoded_cert}),""!==Q.encoded_cert&&(pt={ca:Q.encoded_cert});var ft=null;(gt||pt)&&(ft={tls:(0,r.Z)((0,r.Z)({},gt),pt)}),ut={vault:(0,r.Z)((0,r.Z)({endpoint:de,engine:ue,namespace:me,prefix:ge,approle:{engine:pe,id:fe,secret:he,retry:parseInt(xe)}},ft),{},{status:{ping:parseInt(ye)}})}}var ht={},xt={};""!==H.encoded_key&&""!==H.encoded_cert&&(xt={client:{key:H.encoded_key,crt:H.encoded_cert}}),""!==W.encoded_key&&""!==W.encoded_cert&&(ht={server:{key:W.encoded_key,crt:W.encoded_cert}}),it=(0,r.Z)((0,r.Z)({},it),{},{encryption:(0,r.Z)((0,r.Z)((0,r.Z)({replicas:tt,securityContext:et,image:Ge},xt),ht),ut)})}var yt={};switch(x){case"Built-in":for(var vt=[],Ct=0;Ct.\n\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n
    \n
    {label}:
    \n
    \n \n \n {}}\n onMouseDown={() => {}}\n edge=\"end\"\n >\n \n \n \n \n }\n />\n
    \n
    \n );\n};\n\nexport default withStyles(styles)(CredentialItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n promptIcon: {\n marginRight: \".1rem\",\n display: \"flex\",\n alignItems: \"center\",\n height: \"2rem\",\n width: \"2rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\n \"href\",\n \"data:text/plain;charset=utf-8,\" + encodeURIComponent(text)\n );\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n
    \n
    New {entity} Created
    \n
    \n }\n titleIcon={}\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n
    \n Console Credentials\n
    \n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n \n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n \n )}\n
    \n
    \n )}\n {idp ? (\n
    \n Please Login via the configured external identity provider.\n
    \n ) : (\n
    \n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
    \n )}\n
    \n \n {!idp && (\n <>\n {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n })\n );\n }}\n icon={}\n variant=\"contained\"\n color=\"primary\"\n />\n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n {\n let allCredentials = {};\n if (consoleCreds) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n })\n );\n }}\n icon={}\n variant=\"contained\"\n color=\"primary\"\n />\n )}\n \n )}\n \n
    \n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n
    \n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
    \n ) : (\n
    \n
    {value}
    \n {\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
    \n )}\n
    \n
    \n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { isPageValid, updateAddField } from \"../../actions\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { ISecurityContext } from \"../../types\";\n\ninterface IConfigureProps {\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n classes: any;\n exposeMinIO: boolean;\n exposeConsole: boolean;\n tenantCustom: boolean;\n tenantSecurityContext: ISecurityContext;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n tenantCustomizationFields: {\n marginLeft: 30, // 2nd Level(15+15)\n width: \"88%\",\n margin: \"auto\",\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n\n fieldSpaceTop: {\n marginTop: 15,\n },\n\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Configure = ({\n classes,\n exposeMinIO,\n exposeConsole,\n tenantCustom,\n updateAddField,\n isPageValid,\n tenantSecurityContext,\n}: IConfigureProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"configure\", field, value);\n },\n [updateAddField]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n if (tenantCustom) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"tenant_securityContext_runAsUser\",\n required: true,\n value: tenantSecurityContext.runAsUser,\n customValidation:\n tenantSecurityContext.runAsUser === \"\" ||\n parseInt(tenantSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"tenant_securityContext_runAsGroup\",\n required: true,\n value: tenantSecurityContext.runAsGroup,\n customValidation:\n tenantSecurityContext.runAsGroup === \"\" ||\n parseInt(tenantSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"tenant_securityContext_fsGroup\",\n required: true,\n value: tenantSecurityContext.fsGroup,\n customValidation:\n tenantSecurityContext.fsGroup === \"\" ||\n parseInt(tenantSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPageValid(\"configure\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [isPageValid, tenantCustom, tenantSecurityContext]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
    \n

    Configure

    \n \n Basic configurations for tenant management\n \n
    \n
    \n

    Services

    \n \n Whether the tenant's services should request an external IP via\n LoadBalancer service type.\n \n
    \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeMinIO\", checked);\n }}\n label={\"Expose MiniO Service\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"exposeConsole\", checked);\n }}\n label={\"Expose Console Service\"}\n />\n \n\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"tenantCustom\", checked);\n }}\n label={\"Security Context\"}\n />\n \n {tenantCustom && (\n \n
    \n \n SecurityContext for MinIO\n \n \n \n
    \n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={tenantSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"tenant_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n
    \n
    \n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={tenantSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"tenant_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
    \n
    \n ) => {\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"tenant_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={tenantSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"tenant_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
    \n
    \n \n
    \n \n
    \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"tenantSecurityContext\", {\n ...tenantSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
    \n
    \n \n \n )}\n \n );\n};\n\nconst mapState = (state: AppState) => ({\n exposeMinIO: state.tenants.createTenant.fields.configure.exposeMinIO,\n exposeConsole: state.tenants.createTenant.fields.configure.exposeConsole,\n tenantCustom: state.tenants.createTenant.fields.configure.tenantCustom,\n tenantSecurityContext:\n state.tenants.createTenant.fields.configure.tenantSecurityContext,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(Configure));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, Tooltip, Typography } from \"@mui/material\";\nimport CasinoIcon from \"@mui/icons-material/Casino\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { isPageValid, updateAddField } from \"../../actions\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError, getRandomString } from \"../../utils\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\n\ninterface IIdentityProviderProps {\n classes: any;\n idpSelection: string;\n accessKeys: string[];\n secretKeys: string[];\n openIDConfigurationURL: string;\n openIDClientID: string;\n openIDSecretID: string;\n openIDCallbackURL: string;\n openIDClaimName: string;\n openIDScopes: string;\n ADURL: string;\n ADSkipTLS: boolean;\n ADServerInsecure: boolean;\n ADGroupSearchBaseDN: string;\n ADGroupSearchFilter: string;\n ADUserDNs: string[];\n ADLookupBindDN: string;\n ADLookupBindPassword: string;\n ADUserDNSearchBaseDN: string;\n ADUserDNSearchFilter: string;\n ADServerStartTLS: boolean;\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n shortened: {\n gridTemplateColumns: \"auto auto 50px 50px\",\n display: \"grid\",\n gridGap: 15,\n marginBottom: 10,\n \"& input\": {\n fontWeight: 400,\n },\n },\n buttonTray: {\n marginLeft: 10,\n display: \"flex\",\n height: 38,\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n protocolRadioOptions: {\n display: \"flex\",\n flexFlow: \"column\",\n marginBottom: 10,\n\n \"& label\": {\n fontSize: 14,\n },\n \"& div\": {\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"baseline\",\n },\n },\n adUserDnRows: {\n display: \"flex\",\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst IdentityProvider = ({\n classes,\n idpSelection,\n accessKeys,\n secretKeys,\n openIDConfigurationURL,\n openIDClientID,\n openIDSecretID,\n openIDCallbackURL,\n openIDClaimName,\n openIDScopes,\n ADURL,\n ADSkipTLS,\n ADServerInsecure,\n ADGroupSearchBaseDN,\n ADGroupSearchFilter,\n ADUserDNs,\n ADLookupBindDN,\n ADLookupBindPassword,\n ADUserDNSearchBaseDN,\n ADUserDNSearchFilter,\n ADServerStartTLS,\n updateAddField,\n isPageValid,\n}: IIdentityProviderProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"identityProvider\", field, value);\n },\n [updateAddField]\n );\n const updateUserField = (index: number, value: string) => {\n const newUserField = [...accessKeys];\n newUserField[index] = value;\n updateField(\"accessKeys\", newUserField);\n };\n const updatePwordField = (index: number, value: string) => {\n const newUserField = [...secretKeys];\n newUserField[index] = value;\n updateField(\"secretKeys\", newUserField);\n };\n const updateADUserField = (index: number, value: string) => {\n const newADUserDNsField = [...ADUserDNs];\n newADUserDNsField[index] = value;\n updateField(\"ADUserDNs\", newADUserDNsField);\n };\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n\n useEffect(() => {\n let customIDPValidation: IValidation[] = [];\n\n if (idpSelection === \"Built-in\") {\n customIDPValidation = [...customIDPValidation];\n for (var i = 0; i < accessKeys.length; i++) {\n customIDPValidation.push({\n fieldKey: `accesskey-${i.toString()}`,\n required: true,\n value: accessKeys[i],\n pattern: /^[a-zA-Z0-9-]{8,63}$/,\n customPatternMessage: \"Keys must be at least length 8\",\n });\n customIDPValidation.push({\n fieldKey: `secretkey-${i.toString()}`,\n required: true,\n value: secretKeys[i],\n pattern: /^[a-zA-Z0-9-]{8,63}$/,\n customPatternMessage: \"Keys must be at least length 8\",\n });\n }\n }\n\n if (idpSelection === \"OpenID\") {\n customIDPValidation = [\n ...customIDPValidation,\n {\n fieldKey: \"openID_CONFIGURATION_URL\",\n required: true,\n value: openIDConfigurationURL,\n },\n {\n fieldKey: \"openID_clientID\",\n required: true,\n value: openIDClientID,\n },\n {\n fieldKey: \"openID_secretID\",\n required: true,\n value: openIDSecretID,\n },\n {\n fieldKey: \"openID_claimName\",\n required: true,\n value: openIDClaimName,\n },\n ];\n }\n\n if (idpSelection === \"AD\") {\n customIDPValidation = [\n ...customIDPValidation,\n {\n fieldKey: \"AD_URL\",\n required: true,\n value: ADURL,\n },\n {\n fieldKey: \"ad_lookupBindDN\",\n required: true,\n value: ADLookupBindDN,\n },\n ];\n // validate user DNs\n for (let i = 0; i < ADUserDNs.length; i++) {\n customIDPValidation.push({\n fieldKey: `ad-userdn-${i.toString()}`,\n required: true,\n value: ADUserDNs[i],\n });\n }\n }\n\n const commonVal = commonFormValidation(customIDPValidation);\n\n isPageValid(\"identityProvider\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n ADLookupBindDN,\n idpSelection,\n accessKeys,\n secretKeys,\n openIDClientID,\n openIDSecretID,\n ADURL,\n ADGroupSearchBaseDN,\n ADGroupSearchFilter,\n ADUserDNs,\n isPageValid,\n openIDConfigurationURL,\n openIDClaimName,\n ]);\n let inputs = null;\n if (idpSelection === \"Built-in\") {\n inputs = accessKeys.map((_, index) => {\n return (\n \n
    \n ) => {\n updateUserField(index, e.target.value);\n cleanValidation(`accesskey-${index.toString()}`);\n }}\n index={index}\n key={`csv-accesskey-${index.toString()}`}\n error={validationErrors[`accesskey-${index.toString()}`] || \"\"}\n />\n ) => {\n updatePwordField(index, e.target.value);\n cleanValidation(`secretkey-${index.toString()}`);\n }}\n index={index}\n key={`csv-secretkey-${index.toString()}`}\n error={validationErrors[`secretkey-${index.toString()}`] || \"\"}\n />\n
    \n \n
    \n {\n accessKeys.push(\"\");\n secretKeys.push(\"\");\n updateUserField(accessKeys.length - 1, \"\");\n updatePwordField(secretKeys.length - 1, \"\");\n }}\n >\n \n \n
    \n
    \n \n
    \n {\n if (accessKeys.length > 1) {\n accessKeys.splice(index, 1);\n secretKeys.splice(index, 1);\n updateUserField(\n accessKeys.length - 1,\n accessKeys[accessKeys.length - 1]\n );\n }\n }}\n >\n \n \n
    \n
    \n \n
    \n {\n updateUserField(index, getRandomString(16));\n updatePwordField(index, getRandomString(32));\n }}\n size={\"small\"}\n >\n \n \n
    \n
    \n
    \n
    \n
    \n );\n });\n }\n if (idpSelection === \"AD\") {\n inputs = ADUserDNs.map((_, index) => {\n return (\n \n
    \n ) => {\n updateADUserField(index, e.target.value);\n cleanValidation(`ad-userdn-${index.toString()}`);\n }}\n index={index}\n key={`csv-ad-userdn-${index.toString()}`}\n error={validationErrors[`ad-userdn-${index.toString()}`] || \"\"}\n />\n
    \n \n {\n ADUserDNs.push(\"\");\n updateADUserField(ADUserDNs.length - 1, \"\");\n }}\n >\n \n \n \n \n {\n if (ADUserDNs.length > 1) {\n ADUserDNs.splice(index, 1);\n updateUserField(\n ADUserDNs.length - 1,\n ADUserDNs[ADUserDNs.length - 1]\n );\n }\n }}\n >\n \n \n \n
    \n
    \n
    \n );\n });\n }\n return (\n \n
    \n

    Identity Provider

    \n \n Access to the tenant can be controlled via an external Identity\n Manager.\n \n
    \n \n \n {\n updateField(\"idpSelection\", e.target.value);\n }}\n selectorOptions={[\n { label: \"Built-in\", value: \"Built-in\" },\n { label: \"OpenID\", value: \"OpenID\" },\n { label: \"Active Directory\", value: \"AD\" },\n ]}\n />\n \n {idpSelection === \"Built-in\" && (\n \n Add additional users\n {inputs}\n \n )}\n {idpSelection === \"OpenID\" && (\n \n \n ) => {\n updateField(\"openIDConfigurationURL\", e.target.value);\n cleanValidation(\"openID_CONFIGURATION_URL\");\n }}\n label=\"Configuration URL\"\n value={openIDConfigurationURL}\n placeholder=\"https://your-identity-provider.com/.well-known/openid-configuration\"\n error={validationErrors[\"openID_CONFIGURATION_URL\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDClientID\", e.target.value);\n cleanValidation(\"openID_clientID\");\n }}\n label=\"Client ID\"\n value={openIDClientID}\n error={validationErrors[\"openID_clientID\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDSecretID\", e.target.value);\n cleanValidation(\"openID_secretID\");\n }}\n label=\"Secret ID\"\n value={openIDSecretID}\n error={validationErrors[\"openID_secretID\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDCallbackURL\", e.target.value);\n cleanValidation(\"openID_callbackURL\");\n }}\n label=\"Callback URL\"\n value={openIDCallbackURL}\n placeholder=\"https://your-console-endpoint:9443/oauth_callback\"\n error={validationErrors[\"openID_callbackURL\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"openIDClaimName\", e.target.value);\n cleanValidation(\"openID_claimName\");\n }}\n label=\"Claim Name\"\n value={openIDClaimName}\n error={validationErrors[\"openID_claimName\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"openIDScopes\", e.target.value);\n cleanValidation(\"openID_scopes\");\n }}\n label=\"Scopes\"\n value={openIDScopes}\n />\n \n \n )}\n {idpSelection === \"AD\" && (\n \n \n ) => {\n updateField(\"ADURL\", e.target.value);\n cleanValidation(\"AD_URL\");\n }}\n label=\"LDAP Server Address\"\n value={ADURL}\n placeholder=\"ldap-server:636\"\n error={validationErrors[\"AD_URL\"] || \"\"}\n required\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADSkipTLS\", checked);\n }}\n label={\"Skip TLS Verification\"}\n />\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADServerInsecure\", checked);\n }}\n label={\"Server Insecure\"}\n />\n \n {ADServerInsecure ? (\n \n \n Warning: All traffic with Active Directory will be unencrypted\n \n
    \n
    \n ) : null}\n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"ADServerStartTLS\", checked);\n }}\n label={\"Start TLS connection to AD/LDAP server\"}\n />\n \n \n ) => {\n updateField(\"ADLookupBindDN\", e.target.value);\n cleanValidation(\"ad_lookupBindDN\");\n }}\n label=\"Lookup Bind DN\"\n value={ADLookupBindDN}\n placeholder=\"cn=admin,dc=min,dc=io\"\n error={validationErrors[\"ad_lookupBindDN\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"ADLookupBindPassword\", e.target.value);\n }}\n label=\"Lookup Bind Password\"\n value={ADLookupBindPassword}\n placeholder=\"admin\"\n />\n \n \n ) => {\n updateField(\"ADUserDNSearchBaseDN\", e.target.value);\n }}\n label=\"User DN Search Base DN\"\n value={ADUserDNSearchBaseDN}\n placeholder=\"dc=min,dc=io\"\n />\n \n \n ) => {\n updateField(\"ADUserDNSearchFilter\", e.target.value);\n }}\n label=\"User DN Search Filter\"\n value={ADUserDNSearchFilter}\n placeholder=\"(sAMAcountName=%s)\"\n />\n \n \n ) => {\n updateField(\"ADGroupSearchBaseDN\", e.target.value);\n }}\n label=\"Group Search Base DN\"\n value={ADGroupSearchBaseDN}\n placeholder=\"ou=hwengg,dc=min,dc=io;ou=swengg,dc=min,dc=io\"\n />\n \n \n ) => {\n updateField(\"ADGroupSearchFilter\", e.target.value);\n }}\n label=\"Group Search Filter\"\n value={ADGroupSearchFilter}\n placeholder=\"(&(objectclass=groupOfNames)(member=%s))\"\n />\n \n
    \n \n List of user DNs (Distinguished Names) to be Tenant Administrators\n \n \n {inputs}\n \n
    \n
    \n )}\n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n idpSelection: state.tenants.createTenant.fields.identityProvider.idpSelection,\n accessKeys: state.tenants.createTenant.fields.identityProvider.accessKeys,\n secretKeys: state.tenants.createTenant.fields.identityProvider.secretKeys,\n openIDConfigurationURL:\n state.tenants.createTenant.fields.identityProvider.openIDConfigurationURL,\n openIDClientID:\n state.tenants.createTenant.fields.identityProvider.openIDClientID,\n openIDSecretID:\n state.tenants.createTenant.fields.identityProvider.openIDSecretID,\n openIDCallbackURL:\n state.tenants.createTenant.fields.identityProvider.openIDCallbackURL,\n openIDClaimName:\n state.tenants.createTenant.fields.identityProvider.openIDClaimName,\n openIDScopes: state.tenants.createTenant.fields.identityProvider.openIDScopes,\n ADURL: state.tenants.createTenant.fields.identityProvider.ADURL,\n ADSkipTLS: state.tenants.createTenant.fields.identityProvider.ADSkipTLS,\n ADServerInsecure:\n state.tenants.createTenant.fields.identityProvider.ADServerInsecure,\n ADGroupSearchBaseDN:\n state.tenants.createTenant.fields.identityProvider.ADGroupSearchBaseDN,\n ADGroupSearchFilter:\n state.tenants.createTenant.fields.identityProvider.ADGroupSearchFilter,\n ADUserDNs: state.tenants.createTenant.fields.identityProvider.ADUserDNs,\n ADLookupBindDN:\n state.tenants.createTenant.fields.identityProvider.ADLookupBindDN,\n ADLookupBindPassword:\n state.tenants.createTenant.fields.identityProvider.ADLookupBindPassword,\n ADUserDNSearchBaseDN:\n state.tenants.createTenant.fields.identityProvider.ADUserDNSearchBaseDN,\n ADUserDNSearchFilter:\n state.tenants.createTenant.fields.identityProvider.ADUserDNSearchFilter,\n ADServerStartTLS:\n state.tenants.createTenant.fields.identityProvider.ADServerStartTLS,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(IdentityProvider));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, Typography } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport {\n addCaCertificate,\n addFileToCaCertificates,\n addFileToKeyPair,\n addKeyPair,\n deleteCaCertificate,\n deleteKeyPair,\n isPageValid,\n updateAddField,\n} from \"../../actions\";\nimport { AppState } from \"../../../../../store\";\nimport { KeyPair } from \"../../ListTenants/utils\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport FileSelector from \"../../../Common/FormComponents/FileSelector/FileSelector\";\nimport AddIcon from \"../../../../../icons/AddIcon\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\n\ninterface ISecurityProps {\n classes: any;\n enableTLS: boolean;\n enableAutoCert: boolean;\n enableCustomCerts: boolean;\n minioCertificates: KeyPair[];\n caCertificates: KeyPair[];\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n addFileToCaCertificates: typeof addFileToCaCertificates;\n deleteCaCertificate: typeof deleteCaCertificate;\n addCaCertificate: typeof addCaCertificate;\n addKeyPair: typeof addKeyPair;\n addFileToKeyPair: typeof addFileToKeyPair;\n deleteKeyPair: typeof deleteKeyPair;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n minioCertificateRows: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n fileItem: {\n marginRight: 10,\n display: \"flex\",\n \"& div label\": {\n minWidth: 50,\n },\n\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n minioCertsContainer: {\n marginBottom: 15,\n },\n minioCACertsRow: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"&:last-child\": {\n borderBottom: 0,\n },\n \"@media (max-width: 900px)\": {\n flex: 1,\n\n \"& div label\": {\n minWidth: 50,\n },\n },\n },\n rowActions: {\n display: \"flex\",\n justifyContent: \"flex-end\",\n \"@media (max-width: 900px)\": {\n flex: 1,\n },\n },\n overlayAction: {\n marginLeft: 10,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n\n ...createTenantCommon,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Security = ({\n classes,\n enableTLS,\n enableAutoCert,\n enableCustomCerts,\n minioCertificates,\n caCertificates,\n updateAddField,\n isPageValid,\n addFileToCaCertificates,\n deleteCaCertificate,\n addCaCertificate,\n addKeyPair,\n addFileToKeyPair,\n deleteKeyPair,\n}: ISecurityProps) => {\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"security\", field, value);\n },\n [updateAddField]\n );\n\n // Validation\n\n useEffect(() => {\n if (!enableTLS) {\n isPageValid(\"security\", true);\n return;\n }\n if (enableAutoCert) {\n isPageValid(\"security\", true);\n return;\n }\n if (enableCustomCerts) {\n isPageValid(\"security\", true);\n return;\n }\n isPageValid(\"security\", false);\n }, [enableTLS, enableAutoCert, enableCustomCerts, isPageValid]);\n\n return (\n \n
    \n

    Security

    \n
    \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableTLS\", checked);\n }}\n label={\"Enable TLS\"}\n />\n Enable TLS for the tenant, this is required for Encryption Configuration\n {enableTLS && (\n \n
    \n
    \n \n AutoCert: MinIO Operator will generate all TLS certificates\n automatically\n \n \n Custom certificates: Allow user to provide your own certificates\n \n
    \n
    \n )}\n
    \n {enableTLS && (\n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableAutoCert\", checked);\n }}\n label={\"Enable AutoCert\"}\n />\n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableCustomCerts\", checked);\n }}\n label={\"Custom Certificates\"}\n />\n \n {enableCustomCerts && (\n \n \n \n
    \n \n MinIO Certificates\n \n {minioCertificates.map((keyPair: KeyPair) => (\n \n \n {\n addFileToKeyPair(\n keyPair.id,\n \"cert\",\n fileName,\n encodedValue\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n {\n addFileToKeyPair(\n keyPair.id,\n \"key\",\n fileName,\n encodedValue\n );\n }}\n accept=\".key,.pem\"\n id=\"tlsKey\"\n name=\"tlsKey\"\n label=\"Key\"\n value={keyPair.key}\n />\n \n\n \n
    \n \n \n \n
    \n
    \n {\n deleteKeyPair(keyPair.id);\n }}\n >\n \n \n
    \n
    \n \n ))}\n
    \n
    \n
    \n\n \n \n
    \n \n MinIO CA Certificates\n \n\n {caCertificates.map((keyPair: KeyPair) => (\n \n \n {\n addFileToCaCertificates(\n keyPair.id,\n \"cert\",\n fileName,\n encodedValue\n );\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"tlsCert\"\n name=\"tlsCert\"\n label=\"Cert\"\n value={keyPair.cert}\n />\n \n \n
    \n
    \n \n \n \n
    \n
    \n {\n deleteCaCertificate(keyPair.id);\n }}\n >\n \n \n
    \n
    \n
    \n \n ))}\n
    \n
    \n
    \n
    \n )}\n
    \n )}\n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n enableTLS: state.tenants.createTenant.fields.security.enableTLS,\n enableAutoCert: state.tenants.createTenant.fields.security.enableAutoCert,\n enableCustomCerts:\n state.tenants.createTenant.fields.security.enableCustomCerts,\n minioCertificates: state.tenants.createTenant.certificates.minioCertificates,\n caCertificates: state.tenants.createTenant.certificates.caCertificates,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n addFileToCaCertificates,\n deleteCaCertificate,\n addCaCertificate,\n addKeyPair,\n addFileToKeyPair,\n deleteKeyPair,\n});\n\nexport default withStyles(styles)(connector(Security));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Paper } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n addFileClientCert,\n addFileGemaltoCa,\n addFileServerCert,\n addFileVaultCa,\n addFileVaultCert,\n isPageValid,\n updateAddField,\n} from \"../../actions\";\nimport {\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport FileSelector from \"../../../Common/FormComponents/FileSelector/FileSelector\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport { KeyPair } from \"../../ListTenants/utils\";\nimport { ISecurityContext } from \"../../types\";\n\ninterface IEncryptionProps {\n classes: any;\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n addFileServerCert: typeof addFileServerCert;\n addFileClientCert: typeof addFileClientCert;\n addFileVaultCert: typeof addFileVaultCert;\n addFileVaultCa: typeof addFileVaultCa;\n addFileGemaltoCa: typeof addFileGemaltoCa;\n enableEncryption: boolean;\n encryptionType: string;\n gemaltoEndpoint: string;\n gemaltoToken: string;\n gemaltoDomain: string;\n gemaltoRetry: string;\n awsEndpoint: string;\n awsRegion: string;\n awsKMSKey: string;\n awsAccessKey: string;\n awsSecretKey: string;\n awsToken: string;\n vaultEndpoint: string;\n vaultEngine: string;\n vaultNamespace: string;\n vaultPrefix: string;\n vaultAppRoleEngine: string;\n vaultId: string;\n vaultSecret: string;\n vaultRetry: string;\n vaultPing: string;\n azureEndpoint: string;\n azureTenantID: string;\n azureClientID: string;\n azureClientSecret: string;\n gcpProjectID: string;\n gcpEndpoint: string;\n gcpClientEmail: string;\n gcpClientID: string;\n gcpPrivateKeyID: string;\n gcpPrivateKey: string;\n enableCustomCertsForKES: boolean;\n enableAutoCert: boolean;\n enableTLS: boolean;\n enableCustomCerts: boolean;\n minioCertificates: KeyPair[];\n serverCertificate: KeyPair;\n clientCertificate: KeyPair;\n vaultCertificate: KeyPair;\n vaultCA: KeyPair;\n gemaltoCA: KeyPair;\n kesSecurityContext: ISecurityContext;\n replicas: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n encryptionTypeOptions: {\n marginBottom: 15,\n },\n mutualTlsConfig: {\n marginTop: 15,\n \"& fieldset\": {\n flex: 1,\n },\n },\n rightSpacer: {\n marginRight: 15,\n },\n responsiveContainer: {\n \"@media (max-width: 900px)\": {\n display: \"flex\",\n flexFlow: \"column\",\n },\n },\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Encryption = ({\n classes,\n updateAddField,\n isPageValid,\n addFileServerCert,\n addFileClientCert,\n addFileVaultCert,\n addFileVaultCa,\n addFileGemaltoCa,\n enableEncryption,\n enableCustomCerts,\n encryptionType,\n gemaltoEndpoint,\n gemaltoToken,\n gemaltoDomain,\n gemaltoRetry,\n awsEndpoint,\n awsRegion,\n awsKMSKey,\n awsAccessKey,\n awsSecretKey,\n awsToken,\n vaultEndpoint,\n vaultEngine,\n vaultNamespace,\n vaultPrefix,\n vaultAppRoleEngine,\n vaultId,\n vaultSecret,\n vaultRetry,\n vaultPing,\n azureEndpoint,\n azureTenantID,\n azureClientID,\n azureClientSecret,\n gcpProjectID,\n gcpEndpoint,\n gcpClientEmail,\n gcpClientID,\n gcpPrivateKeyID,\n gcpPrivateKey,\n enableCustomCertsForKES,\n enableAutoCert,\n enableTLS,\n minioCertificates,\n serverCertificate,\n clientCertificate,\n vaultCertificate,\n vaultCA,\n gemaltoCA,\n kesSecurityContext,\n replicas,\n}: IEncryptionProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n let encryptionAvailable = false;\n if (\n enableTLS &&\n (enableAutoCert ||\n (minioCertificates &&\n minioCertificates.filter(\n (item) => item.encoded_key && item.encoded_cert\n ).length > 0))\n ) {\n encryptionAvailable = true;\n }\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"encryption\", field, value);\n },\n [updateAddField]\n );\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (enableEncryption) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"replicas\",\n required: true,\n value: replicas,\n customValidation: parseInt(replicas) < 1,\n customValidationMessage: \"Replicas needs to be 1 or greater\",\n },\n {\n fieldKey: \"kes_securityContext_runAsUser\",\n required: true,\n value: kesSecurityContext.runAsUser,\n customValidation:\n kesSecurityContext.runAsUser === \"\" ||\n parseInt(kesSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_runAsGroup\",\n required: true,\n value: kesSecurityContext.runAsGroup,\n customValidation:\n kesSecurityContext.runAsGroup === \"\" ||\n parseInt(kesSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_fsGroup\",\n required: true,\n value: kesSecurityContext.fsGroup,\n customValidation:\n kesSecurityContext.fsGroup === \"\" ||\n parseInt(kesSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n\n if (enableCustomCerts) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"serverKey\",\n required: !enableAutoCert,\n value: serverCertificate.encoded_key,\n },\n {\n fieldKey: \"serverCert\",\n required: !enableAutoCert,\n value: serverCertificate.encoded_cert,\n },\n {\n fieldKey: \"clientKey\",\n required: !enableAutoCert,\n value: clientCertificate.encoded_key,\n },\n {\n fieldKey: \"clientCert\",\n required: !enableAutoCert,\n value: clientCertificate.encoded_cert,\n },\n ];\n }\n\n if (encryptionType === \"vault\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"vault_endpoint\",\n required: true,\n value: vaultEndpoint,\n },\n {\n fieldKey: \"vault_id\",\n required: true,\n value: vaultId,\n },\n {\n fieldKey: \"vault_secret\",\n required: true,\n value: vaultSecret,\n },\n {\n fieldKey: \"vault_ping\",\n required: false,\n value: vaultPing,\n customValidation: parseInt(vaultPing) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n {\n fieldKey: \"vault_retry\",\n required: false,\n value: vaultRetry,\n customValidation: parseInt(vaultRetry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n if (encryptionType === \"aws\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"aws_endpoint\",\n required: true,\n value: awsEndpoint,\n },\n {\n fieldKey: \"aws_region\",\n required: true,\n value: awsRegion,\n },\n {\n fieldKey: \"aws_accessKey\",\n required: true,\n value: awsAccessKey,\n },\n {\n fieldKey: \"aws_secretKey\",\n required: true,\n value: awsSecretKey,\n },\n ];\n }\n\n if (encryptionType === \"gemalto\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"gemalto_endpoint\",\n required: true,\n value: gemaltoEndpoint,\n },\n {\n fieldKey: \"gemalto_token\",\n required: true,\n value: gemaltoToken,\n },\n {\n fieldKey: \"gemalto_domain\",\n required: true,\n value: gemaltoDomain,\n },\n {\n fieldKey: \"gemalto_retry\",\n required: false,\n value: gemaltoRetry,\n customValidation: parseInt(gemaltoRetry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n if (encryptionType === \"azure\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"azure_endpoint\",\n required: true,\n value: azureEndpoint,\n },\n {\n fieldKey: \"azure_tenant_id\",\n required: true,\n value: azureTenantID,\n },\n {\n fieldKey: \"azure_client_id\",\n required: true,\n value: azureClientID,\n },\n {\n fieldKey: \"azure_client_secret\",\n required: true,\n value: azureClientSecret,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n isPageValid(\"encryption\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n enableEncryption,\n encryptionType,\n vaultEndpoint,\n vaultEngine,\n vaultId,\n vaultSecret,\n vaultPing,\n vaultRetry,\n awsEndpoint,\n awsRegion,\n awsSecretKey,\n awsAccessKey,\n gemaltoEndpoint,\n gemaltoToken,\n gemaltoDomain,\n gemaltoRetry,\n gcpProjectID,\n gcpEndpoint,\n gcpClientEmail,\n gcpClientID,\n gcpPrivateKeyID,\n gcpPrivateKey,\n azureEndpoint,\n azureTenantID,\n azureClientID,\n azureClientSecret,\n isPageValid,\n enableAutoCert,\n enableCustomCerts,\n serverCertificate.encoded_key,\n serverCertificate.encoded_cert,\n clientCertificate.encoded_key,\n clientCertificate.encoded_cert,\n kesSecurityContext,\n replicas,\n ]);\n\n return (\n \n
    \n

    Encryption

    \n \n How would you like to encrypt the information at rest.\n \n
    \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableEncryption\", checked);\n }}\n label={\"Enable Server Side Encryption\"}\n disabled={!encryptionAvailable}\n />\n \n {enableEncryption && (\n \n \n {\n updateField(\"encryptionType\", e.target.value);\n }}\n selectorOptions={[\n { label: \"Vault\", value: \"vault\" },\n { label: \"AWS\", value: \"aws\" },\n { label: \"Gemalto\", value: \"gemalto\" },\n { label: \"GCP\", value: \"gcp\" },\n { label: \"Azure\", value: \"azure\" },\n ]}\n />\n \n {encryptionType === \"vault\" && (\n \n \n ) => {\n updateField(\"vaultEndpoint\", e.target.value);\n cleanValidation(\"vault_endpoint\");\n }}\n label=\"Endpoint\"\n value={vaultEndpoint}\n error={validationErrors[\"vault_endpoint\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultEngine\", e.target.value);\n cleanValidation(\"vault_engine\");\n }}\n label=\"Engine\"\n value={vaultEngine}\n />\n \n \n ) => {\n updateField(\"vaultNamespace\", e.target.value);\n }}\n label=\"Namespace\"\n value={vaultNamespace}\n />\n \n \n ) => {\n updateField(\"vaultPrefix\", e.target.value);\n }}\n label=\"Prefix\"\n value={vaultPrefix}\n />\n \n\n \n
    \n App Role\n \n ) => {\n updateField(\"vaultAppRoleEngine\", e.target.value);\n }}\n label=\"Engine\"\n value={vaultAppRoleEngine}\n />\n \n \n ) => {\n updateField(\"vaultId\", e.target.value);\n cleanValidation(\"vault_id\");\n }}\n label=\"AppRole ID\"\n value={vaultId}\n error={validationErrors[\"vault_id\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultSecret\", e.target.value);\n cleanValidation(\"vault_secret\");\n }}\n label=\"AppRole Secret\"\n value={vaultSecret}\n error={validationErrors[\"vault_secret\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"vaultRetry\", e.target.value);\n cleanValidation(\"vault_retry\");\n }}\n label=\"Retry (Seconds)\"\n value={vaultRetry}\n error={validationErrors[\"vault_retry\"] || \"\"}\n />\n \n
    \n
    \n\n \n
    \n \n Mutual TLS authentication (optional)\n \n {\n addFileVaultCert(\"key\", fileName, encodedValue);\n cleanValidation(\"vault_key\");\n }}\n accept=\".key,.pem\"\n id=\"vault_key\"\n name=\"vault_key\"\n label=\"Key\"\n value={vaultCertificate.key}\n />\n {\n addFileVaultCert(\"cert\", fileName, encodedValue);\n cleanValidation(\"vault_cert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_cert\"\n name=\"vault_cert\"\n label=\"Cert\"\n value={vaultCertificate.cert}\n />\n {\n addFileVaultCa(fileName, encodedValue);\n cleanValidation(\"vault_ca\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_ca\"\n name=\"vault_ca\"\n label=\"CA\"\n value={vaultCA.cert}\n />\n
    \n
    \n \n
    \n Status\n ) => {\n updateField(\"vaultPing\", e.target.value);\n cleanValidation(\"vault_ping\");\n }}\n label=\"Ping (Seconds)\"\n value={vaultPing}\n error={validationErrors[\"vault_ping\"] || \"\"}\n />\n
    \n \n
    \n )}\n {encryptionType === \"azure\" && (\n \n \n ) => {\n updateField(\"azureEndpoint\", e.target.value);\n cleanValidation(\"azure_endpoint\");\n }}\n label=\"Endpoint\"\n value={azureEndpoint}\n error={validationErrors[\"azure_endpoint\"] || \"\"}\n />\n \n \n
    \n \n Credentials\n \n \n ) => {\n updateField(\"azureTenantID\", e.target.value);\n cleanValidation(\"azure_tenant_id\");\n }}\n label=\"Tenant ID\"\n value={azureTenantID}\n error={validationErrors[\"azure_tenant_id\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"azureClientID\", e.target.value);\n cleanValidation(\"azure_client_id\");\n }}\n label=\"Client ID\"\n value={azureClientID}\n error={validationErrors[\"azure_client_id\"] || \"\"}\n />\n \n \n ) => {\n updateField(\"azureClientSecret\", e.target.value);\n cleanValidation(\"azure_client_secret\");\n }}\n label=\"Client Secret\"\n value={azureClientSecret}\n error={validationErrors[\"azure_client_secret\"] || \"\"}\n />\n \n
    \n
    \n
    \n )}\n {encryptionType === \"gcp\" && (\n \n \n ) => {\n updateField(\"gcpProjectID\", e.target.value);\n }}\n label=\"Project ID\"\n value={gcpProjectID}\n />\n \n \n ) => {\n updateField(\"gcpEndpoint\", e.target.value);\n }}\n label=\"Endpoint\"\n value={gcpEndpoint}\n />\n \n \n
    \n \n Credentials\n \n \n ) => {\n updateField(\"gcpClientEmail\", e.target.value);\n }}\n label=\"Client Email\"\n value={gcpClientEmail}\n />\n \n \n ) => {\n updateField(\"gcpClientID\", e.target.value);\n }}\n label=\"Client ID\"\n value={gcpClientID}\n />\n \n \n ) => {\n updateField(\"gcpPrivateKeyID\", e.target.value);\n }}\n label=\"Private Key ID\"\n value={gcpPrivateKeyID}\n />\n \n \n ) => {\n updateField(\"gcpPrivateKey\", e.target.value);\n }}\n label=\"Private Key\"\n value={gcpPrivateKey}\n />\n \n
    \n
    \n
    \n )}\n {encryptionType === \"aws\" && (\n \n \n ) => {\n updateField(\"awsEndpoint\", e.target.value);\n cleanValidation(\"aws_endpoint\");\n }}\n label=\"Endpoint\"\n value={awsEndpoint}\n error={validationErrors[\"aws_endpoint\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsRegion\", e.target.value);\n cleanValidation(\"aws_region\");\n }}\n label=\"Region\"\n value={awsRegion}\n error={validationErrors[\"aws_region\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsKMSKey\", e.target.value);\n }}\n label=\"KMS Key\"\n value={awsKMSKey}\n />\n \n \n
    \n \n Credentials\n \n \n ) => {\n updateField(\"awsAccessKey\", e.target.value);\n cleanValidation(\"aws_accessKey\");\n }}\n label=\"Access Key\"\n value={awsAccessKey}\n error={validationErrors[\"aws_accessKey\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsSecretKey\", e.target.value);\n cleanValidation(\"aws_secretKey\");\n }}\n label=\"Secret Key\"\n value={awsSecretKey}\n error={validationErrors[\"aws_secretKey\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"awsToken\", e.target.value);\n }}\n label=\"Token\"\n value={awsToken}\n />\n \n
    \n
    \n
    \n )}\n {encryptionType === \"gemalto\" && (\n \n \n ) => {\n updateField(\"gemaltoEndpoint\", e.target.value);\n cleanValidation(\"gemalto_endpoint\");\n }}\n label=\"Endpoint\"\n value={gemaltoEndpoint}\n error={validationErrors[\"gemalto_endpoint\"] || \"\"}\n required\n />\n \n \n
    \n \n Credentials\n \n \n ) => {\n updateField(\"gemaltoToken\", e.target.value);\n cleanValidation(\"gemalto_token\");\n }}\n label=\"Token\"\n value={gemaltoToken}\n error={validationErrors[\"gemalto_token\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"gemaltoDomain\", e.target.value);\n cleanValidation(\"gemalto_domain\");\n }}\n label=\"Domain\"\n value={gemaltoDomain}\n error={validationErrors[\"gemalto_domain\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"gemaltoRetry\", e.target.value);\n cleanValidation(\"gemalto_retry\");\n }}\n label=\"Retry (seconds)\"\n value={gemaltoRetry}\n error={validationErrors[\"gemalto_retry\"] || \"\"}\n />\n \n
    \n \n \n
    \n \n Custom CA Root certificate verification\n \n\n {\n addFileGemaltoCa(fileName, encodedValue);\n cleanValidation(\"gemalto_ca\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"gemalto_ca\"\n name=\"gemalto_ca\"\n label=\"CA\"\n value={gemaltoCA.cert}\n />\n
    \n \n
    \n )}\n
    \n

    Additional Configurations

    \n
    \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"enableCustomCertsForKES\", checked);\n }}\n label={\"Custom Certificates\"}\n disabled={!enableAutoCert}\n />\n \n {(enableCustomCertsForKES || !enableAutoCert) && (\n \n \n \n
    \n \n Encryption Service Certificates\n \n {\n addFileServerCert(\"key\", fileName, encodedValue);\n cleanValidation(\"serverKey\");\n }}\n accept=\".key,.pem\"\n id=\"serverKey\"\n name=\"serverKey\"\n label=\"Key\"\n error={validationErrors[\"serverKey\"] || \"\"}\n value={serverCertificate.key}\n required={!enableAutoCert}\n />\n {\n addFileServerCert(\"cert\", fileName, encodedValue);\n cleanValidation(\"serverCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"serverCert\"\n name=\"serverCert\"\n label=\"Cert\"\n error={validationErrors[\"serverCert\"] || \"\"}\n value={serverCertificate.cert}\n required={!enableAutoCert}\n />\n
    \n
    \n
    \n \n \n
    \n \n Mutual TLS authentication with MinIO\n \n {\n addFileClientCert(\"key\", fileName, encodedValue);\n cleanValidation(\"clientKey\");\n }}\n accept=\".key,.pem\"\n id=\"clientKey\"\n name=\"clientKey\"\n label=\"Key\"\n error={validationErrors[\"clientKey\"] || \"\"}\n value={clientCertificate.key}\n required={!enableAutoCert}\n />\n {\n addFileClientCert(\"cert\", fileName, encodedValue);\n cleanValidation(\"clientCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"clientCert\"\n name=\"clientCert\"\n label=\"Cert\"\n error={validationErrors[\"clientCert\"] || \"\"}\n value={clientCertificate.cert}\n required={!enableAutoCert}\n />\n
    \n
    \n
    \n
    \n )}\n \n \n ) => {\n updateField(\"replicas\", e.target.value);\n cleanValidation(\"replicas\");\n }}\n label=\"Replicas\"\n value={replicas}\n required\n error={validationErrors[\"replicas\"] || \"\"}\n />\n \n\n
    \n \n SecurityContext for KES pods\n \n \n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"kes_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={kesSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"kes_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n
    \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"kes_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={kesSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_runAsGroup\"] || \"\"\n }\n min=\"0\"\n />\n \n \n ) => {\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"kes_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={kesSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n \n \n \n
    \n \n
    \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"kesSecurityContext\", {\n ...kesSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
    \n
    \n \n \n
    \n )}\n \n );\n};\n\nconst mapState = (state: AppState) => ({\n replicas: state.tenants.createTenant.fields.encryption.replicas,\n enableEncryption:\n state.tenants.createTenant.fields.encryption.enableEncryption,\n encryptionType: state.tenants.createTenant.fields.encryption.encryptionType,\n gemaltoEndpoint: state.tenants.createTenant.fields.encryption.gemaltoEndpoint,\n gemaltoToken: state.tenants.createTenant.fields.encryption.gemaltoToken,\n gemaltoDomain: state.tenants.createTenant.fields.encryption.gemaltoDomain,\n gemaltoRetry: state.tenants.createTenant.fields.encryption.gemaltoRetry,\n awsEndpoint: state.tenants.createTenant.fields.encryption.awsEndpoint,\n awsRegion: state.tenants.createTenant.fields.encryption.awsRegion,\n awsKMSKey: state.tenants.createTenant.fields.encryption.awsKMSKey,\n awsAccessKey: state.tenants.createTenant.fields.encryption.awsAccessKey,\n awsSecretKey: state.tenants.createTenant.fields.encryption.awsSecretKey,\n awsToken: state.tenants.createTenant.fields.encryption.awsToken,\n vaultEndpoint: state.tenants.createTenant.fields.encryption.vaultEndpoint,\n vaultEngine: state.tenants.createTenant.fields.encryption.vaultEngine,\n vaultNamespace: state.tenants.createTenant.fields.encryption.vaultNamespace,\n vaultPrefix: state.tenants.createTenant.fields.encryption.vaultPrefix,\n vaultAppRoleEngine:\n state.tenants.createTenant.fields.encryption.vaultAppRoleEngine,\n vaultId: state.tenants.createTenant.fields.encryption.vaultId,\n vaultSecret: state.tenants.createTenant.fields.encryption.vaultSecret,\n vaultRetry: state.tenants.createTenant.fields.encryption.vaultRetry,\n vaultPing: state.tenants.createTenant.fields.encryption.vaultPing,\n azureEndpoint: state.tenants.createTenant.fields.encryption.azureEndpoint,\n azureTenantID: state.tenants.createTenant.fields.encryption.azureTenantID,\n azureClientID: state.tenants.createTenant.fields.encryption.azureClientID,\n azureClientSecret:\n state.tenants.createTenant.fields.encryption.azureClientSecret,\n gcpProjectID: state.tenants.createTenant.fields.encryption.gcpProjectID,\n gcpEndpoint: state.tenants.createTenant.fields.encryption.gcpEndpoint,\n gcpClientEmail: state.tenants.createTenant.fields.encryption.gcpClientEmail,\n gcpClientID: state.tenants.createTenant.fields.encryption.gcpClientID,\n gcpPrivateKeyID: state.tenants.createTenant.fields.encryption.gcpPrivateKeyID,\n gcpPrivateKey: state.tenants.createTenant.fields.encryption.gcpPrivateKey,\n enableCustomCertsForKES:\n state.tenants.createTenant.fields.encryption.enableCustomCertsForKES,\n enableAutoCert: state.tenants.createTenant.fields.security.enableAutoCert,\n enableTLS: state.tenants.createTenant.fields.security.enableTLS,\n minioCertificates: state.tenants.createTenant.certificates.minioCertificates,\n serverCertificate: state.tenants.createTenant.certificates.serverCertificate,\n clientCertificate: state.tenants.createTenant.certificates.clientCertificate,\n vaultCertificate: state.tenants.createTenant.certificates.vaultCertificate,\n vaultCA: state.tenants.createTenant.certificates.vaultCA,\n gemaltoCA: state.tenants.createTenant.certificates.gemaltoCA,\n enableCustomCerts:\n state.tenants.createTenant.fields.security.enableCustomCerts,\n kesSecurityContext:\n state.tenants.createTenant.fields.encryption.kesSecurityContext,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n addFileServerCert,\n addFileClientCert,\n addFileVaultCert,\n addFileVaultCa,\n addFileGemaltoCa,\n});\n\nexport default withStyles(styles)(connector(Encryption));\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 {\n ITolerationEffect,\n ITolerationOperator,\n} from \"../../../../common/types\";\nimport SelectWrapper, {\n selectorTypes,\n} from \"../FormComponents/SelectWrapper/SelectWrapper\";\nimport { Grid, SelectChangeEvent } from \"@mui/material\";\nimport InputBoxWrapper from \"../FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport InputUnitMenu from \"../FormComponents/InputUnitMenu/InputUnitMenu\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\ninterface ITolerationSelector {\n effect: ITolerationEffect;\n onEffectChange: (value: ITolerationEffect) => void;\n tolerationKey: string;\n onTolerationKeyChange: (value: string) => void;\n operator: ITolerationOperator;\n onOperatorChange: (value: ITolerationOperator) => void;\n value?: string;\n onValueChange: (value: string) => void;\n tolerationSeconds?: number;\n onSecondsChange: (value: number) => void;\n index: number;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n labelsStyle: {\n fontSize: 18,\n fontWeight: \"bold\",\n color: \"#AEAEAE\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n maxWidth: 45,\n marginRight: 10,\n },\n fieldsetStyle: {\n border: \"1px solid #EAEAEA\",\n borderRadius: 2,\n padding: 10,\n marginBottom: 15,\n },\n firstLevel: {\n marginBottom: 10,\n },\n fieldContainer: {\n marginRight: 10,\n },\n legendStyle: {\n fontSize: 12,\n color: \"#696969\",\n fontWeight: \"bold\",\n },\n });\n\nconst TolerationSelector = ({\n effect,\n onEffectChange,\n tolerationKey,\n onTolerationKeyChange,\n operator,\n onOperatorChange,\n value,\n onValueChange,\n tolerationSeconds,\n onSecondsChange,\n index,\n classes,\n}: ITolerationSelector) => {\n const operatorOptions: selectorTypes[] = [];\n const effectOptions: selectorTypes[] = [];\n\n for (let operator in ITolerationOperator) {\n operatorOptions.push({\n value: operator,\n label: operator,\n });\n }\n\n for (let effect in ITolerationEffect) {\n effectOptions.push({\n value: effect,\n label: effect,\n });\n }\n\n return (\n \n
    \n Toleration {index + 1}\n \n \n \n If\n \n \n {\n onTolerationKeyChange(e.target.value);\n }}\n index={index}\n placeholder={\"Toleration Key\"}\n />\n \n {ITolerationOperator[operator] === ITolerationOperator.Equal && (\n \n is\n \n )}\n \n ) => {\n onOperatorChange(\n ITolerationOperator[e.target.value as ITolerationOperator]\n );\n }}\n id={`operator-${index}`}\n name=\"operator\"\n label={\"\"}\n value={ITolerationOperator[operator]}\n options={operatorOptions}\n />\n \n {ITolerationOperator[operator] === ITolerationOperator.Equal && (\n \n to\n \n )}\n {ITolerationOperator[operator] === ITolerationOperator.Equal && (\n \n {\n onValueChange(e.target.value);\n }}\n index={index}\n placeholder={\"Toleration Value\"}\n />\n \n )}\n \n \n \n then\n \n \n ) => {\n onEffectChange(\n ITolerationEffect[e.target.value as ITolerationEffect]\n );\n }}\n id={`effects-${index}`}\n name=\"effects\"\n label={\"\"}\n value={ITolerationEffect[effect]}\n options={effectOptions}\n />\n \n \n after\n \n \n {\n if (e.target.validity.valid) {\n onSecondsChange(parseInt(e.target.value));\n }\n }}\n index={index}\n pattern={\"[0-9]*\"}\n overlayObject={\n \n }\n />\n \n \n \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(TolerationSelector);\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, SelectChangeEvent } from \"@mui/material\";\nimport { AppState } from \"../../../../../store\";\nimport {\n addNewToleration,\n isPageValid,\n removeToleration,\n setKeyValuePairs,\n setTolerationInfo,\n updateAddField,\n} from \"../../actions\";\nimport { setModalErrorSnackMessage } from \"../../../../../actions\";\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport {\n ErrorResponseHandler,\n ITolerationModel,\n} from \"../../../../../common/types\";\nimport { LabelKeyPair } from \"../../types\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../common/api\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"../../../../../icons/AddIcon\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport TolerationSelector from \"../../../Common/TolerationSelector/TolerationSelector\";\n\ninterface IAffinityProps {\n classes: any;\n podAffinity: string;\n nodeSelectorLabels: string;\n withPodAntiAffinity: boolean;\n keyValuePairs: LabelKeyPair[];\n tolerations: ITolerationModel[];\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n setKeyValuePairs: typeof setKeyValuePairs;\n setTolerationInfo: typeof setTolerationInfo;\n addNewToleration: typeof addNewToleration;\n removeToleration: typeof removeToleration;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n affinityConfigField: {\n display: \"flex\",\n },\n affinityFieldLabel: {\n display: \"flex\",\n flexFlow: \"column\",\n flex: 1,\n },\n radioField: {\n display: \"flex\",\n alignItems: \"flex-start\",\n marginTop: 10,\n \"& div:first-child\": {\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"baseline\",\n textAlign: \"left !important\",\n },\n },\n affinityLabelKey: {\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n affinityLabelValue: {\n marginLeft: 10,\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n rowActions: {\n display: \"flex\",\n alignItems: \"center\",\n },\n fieldContainer: {\n marginBottom: 0,\n },\n affinityRow: {\n marginBottom: 10,\n display: \"flex\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\ninterface OptionPair {\n label: string;\n value: string;\n}\n\nconst Affinity = ({\n classes,\n podAffinity,\n nodeSelectorLabels,\n withPodAntiAffinity,\n setModalErrorSnackMessage,\n updateAddField,\n keyValuePairs,\n setKeyValuePairs,\n isPageValid,\n tolerations,\n setTolerationInfo,\n addNewToleration,\n removeToleration,\n}: IAffinityProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n const [loading, setLoading] = useState(true);\n const [keyValueMap, setKeyValueMap] = useState<{ [key: string]: string[] }>(\n {}\n );\n const [keyOptions, setKeyOptions] = useState([]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"affinity\", field, value);\n },\n [updateAddField]\n );\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/nodes/labels`)\n .then((res: { [key: string]: string[] }) => {\n setLoading(false);\n setKeyValueMap(res);\n let keys: OptionPair[] = [];\n for (let k in res) {\n keys.push({\n label: k,\n value: k,\n });\n }\n setKeyOptions(keys);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n setKeyValueMap({});\n });\n }\n }, [setModalErrorSnackMessage, loading]);\n\n useEffect(() => {\n if (keyValuePairs) {\n const vlr = keyValuePairs\n .filter((kvp) => kvp.key !== \"\")\n .map((kvp) => `${kvp.key}=${kvp.value}`)\n .filter((kvs, i, a) => a.indexOf(kvs) === i);\n const vl = vlr.join(\"&\");\n updateField(\"nodeSelectorLabels\", vl);\n }\n }, [keyValuePairs, updateField]);\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (podAffinity === \"nodeSelector\") {\n let valid = true;\n\n const splittedLabels = nodeSelectorLabels.split(\"&\");\n\n if (splittedLabels.length === 1 && splittedLabels[0] === \"\") {\n valid = false;\n }\n\n splittedLabels.forEach((item: string, index: number) => {\n const splitItem = item.split(\"=\");\n\n if (splitItem.length !== 2) {\n valid = false;\n }\n\n if (index + 1 !== splittedLabels.length) {\n if (splitItem[0] === \"\" || splitItem[1] === \"\") {\n valid = false;\n }\n }\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"labels\",\n required: true,\n value: nodeSelectorLabels,\n customValidation: !valid,\n customValidationMessage:\n \"You need to add at least one label key-pair\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPageValid(\"affinity\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [isPageValid, podAffinity, nodeSelectorLabels]);\n\n const updateToleration = (index: number, field: string, value: any) => {\n const alterToleration = { ...tolerations[index], [field]: value };\n\n setTolerationInfo(index, alterToleration);\n };\n\n return (\n \n
    \n

    Pod Placement

    \n \n Configure how pods will be assigned to nodes\n \n
    \n \n \n
    Type
    \n \n MinIO supports multiple configurations for Pod Affinity\n \n \n {\n updateField(\"podAffinity\", e.target.value);\n }}\n selectorOptions={[\n { label: \"None\", value: \"none\" },\n { label: \"Default (Pod Anti-Affinnity)\", value: \"default\" },\n { label: \"Node Selector\", value: \"nodeSelector\" },\n ]}\n />\n \n
    \n
    \n {podAffinity === \"nodeSelector\" && (\n \n
    \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"withPodAntiAffinity\", checked);\n }}\n label={\"With Pod Anti-Affinity\"}\n />\n \n \n

    Labels

    \n {validationErrors[\"labels\"]}\n \n {keyValuePairs &&\n keyValuePairs.map((kvp, i) => {\n return (\n \n \n {keyOptions.length > 0 && (\n ) => {\n const newKey = e.target.value as string;\n const arrCp: LabelKeyPair[] = Object.assign(\n [],\n keyValuePairs\n );\n\n arrCp[i].key = e.target.value as string;\n arrCp[i].value = keyValueMap[newKey][0];\n setKeyValuePairs(arrCp);\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.key}\n options={keyOptions}\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = Object.assign(\n [],\n keyValuePairs\n );\n arrCp[i].key = e.target.value;\n setKeyValuePairs(arrCp);\n }}\n index={i}\n placeholder={\"Key\"}\n />\n )}\n \n \n {keyOptions.length > 0 && (\n ) => {\n const arrCp: LabelKeyPair[] = Object.assign(\n [],\n keyValuePairs\n );\n arrCp[i].value = e.target.value as string;\n setKeyValuePairs(arrCp);\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.value}\n options={\n keyValueMap[kvp.key]\n ? keyValueMap[kvp.key].map((v) => {\n return { label: v, value: v };\n })\n : []\n }\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = Object.assign(\n [],\n keyValuePairs\n );\n arrCp[i].value = e.target.value;\n setKeyValuePairs(arrCp);\n }}\n index={i}\n placeholder={\"value\"}\n />\n )}\n \n \n
    \n {\n const arrCp = Object.assign([], keyValuePairs);\n if (keyOptions.length > 0) {\n arrCp.push({\n key: keyOptions[0].value,\n value: keyValueMap[keyOptions[0].value][0],\n });\n } else {\n arrCp.push({ key: \"\", value: \"\" });\n }\n\n setKeyValuePairs(arrCp);\n }}\n >\n \n \n
    \n {keyValuePairs.length > 1 && (\n
    \n {\n const arrCp = keyValuePairs.filter(\n (item, index) => index !== i\n );\n setKeyValuePairs(arrCp);\n }}\n >\n \n \n
    \n )}\n
    \n
    \n );\n })}\n
    \n \n
    \n )}\n \n \n

    Tolerations

    \n \n {validationErrors[\"tolerations\"]}\n \n \n {tolerations &&\n tolerations.map((tol, i) => {\n return (\n \n {\n updateToleration(i, \"effect\", value);\n }}\n tolerationKey={tol.key}\n onTolerationKeyChange={(value) => {\n updateToleration(i, \"key\", value);\n }}\n operator={tol.operator}\n onOperatorChange={(value) => {\n updateToleration(i, \"operator\", value);\n }}\n value={tol.value}\n onValueChange={(value) => {\n updateToleration(i, \"value\", value);\n }}\n tolerationSeconds={tol.tolerationSeconds?.seconds || 0}\n onSecondsChange={(value) => {\n updateToleration(i, \"tolerationSeconds\", {\n seconds: value,\n });\n }}\n index={i}\n />\n
    \n \n \n \n
    \n\n
    \n removeToleration(i)}\n disabled={tolerations.length <= 1}\n >\n \n \n
    \n
    \n );\n })}\n
    \n
    \n \n
    \n );\n};\n\nconst mapState = (state: AppState) => {\n const createTenant = state.tenants.createTenant;\n\n return {\n podAffinity: createTenant.fields.affinity.podAffinity,\n nodeSelectorLabels: createTenant.fields.affinity.nodeSelectorLabels,\n withPodAntiAffinity: createTenant.fields.affinity.withPodAntiAffinity,\n keyValuePairs: createTenant.nodeSelectorPairs,\n tolerations: createTenant.tolerations,\n };\n};\n\nconst connector = connect(mapState, {\n setModalErrorSnackMessage,\n updateAddField,\n isPageValid,\n setKeyValuePairs,\n setTolerationInfo,\n addNewToleration,\n removeToleration,\n});\n\nexport default withStyles(styles)(connector(Affinity));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { isPageValid, updateAddField } from \"../../actions\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\n\ninterface IImagesProps {\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n storageClasses: any;\n classes: any;\n customImage: boolean;\n imageName: string;\n customDockerhub: boolean;\n imageRegistry: string;\n imageRegistryUsername: string;\n imageRegistryPassword: string;\n exposeMinIO: boolean;\n exposeConsole: boolean;\n prometheusCustom: boolean;\n tenantCustom: boolean;\n logSearchCustom: boolean;\n logSearchVolumeSize: string;\n logSearchSizeFactor: string;\n prometheusVolumeSize: string;\n prometheusSizeFactor: string;\n logSearchSelectedStorageClass: string;\n logSearchImage: string;\n kesImage: string;\n logSearchPostgresImage: string;\n logSearchPostgresInitImage: string;\n prometheusSelectedStorageClass: string;\n prometheusImage: string;\n prometheusSidecarImage: string;\n prometheusInitImage: string;\n selectedStorageClass: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst Images = ({\n classes,\n storageClasses,\n customImage,\n imageName,\n customDockerhub,\n imageRegistry,\n imageRegistryUsername,\n imageRegistryPassword,\n exposeMinIO,\n exposeConsole,\n prometheusCustom,\n tenantCustom,\n logSearchCustom,\n logSearchVolumeSize,\n logSearchSizeFactor,\n logSearchImage,\n kesImage,\n logSearchPostgresImage,\n logSearchPostgresInitImage,\n prometheusVolumeSize,\n prometheusSizeFactor,\n logSearchSelectedStorageClass,\n prometheusSelectedStorageClass,\n prometheusImage,\n prometheusSidecarImage,\n prometheusInitImage,\n updateAddField,\n isPageValid,\n selectedStorageClass,\n}: IImagesProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"configure\", field, value);\n },\n [updateAddField]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (prometheusCustom) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"prometheus_storage_class\",\n required: true,\n value: prometheusSelectedStorageClass,\n customValidation: prometheusSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"prometheus_volume_size\",\n required: true,\n value: prometheusVolumeSize,\n customValidation:\n prometheusVolumeSize === \"\" || parseInt(prometheusVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greatter than 0`,\n },\n ];\n }\n if (logSearchCustom) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"log_search_storage_class\",\n required: true,\n value: logSearchSelectedStorageClass,\n customValidation: logSearchSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"log_search_volume_size\",\n required: true,\n value: logSearchVolumeSize,\n customValidation:\n logSearchVolumeSize === \"\" || parseInt(logSearchVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greatter than 0`,\n },\n ];\n }\n\n if (customImage) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"image\",\n required: false,\n value: imageName,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage: \"Format must be of form: 'minio/minio:VERSION'\",\n },\n {\n fieldKey: \"logSearchImage\",\n required: false,\n value: logSearchImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'minio/operator:VERSION'\",\n },\n {\n fieldKey: \"kesImage\",\n required: false,\n value: kesImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage: \"Format must be of form: 'minio/kes:VERSION'\",\n },\n {\n fieldKey: \"logSearchPostgresImage\",\n required: false,\n value: logSearchPostgresImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'library/postgres:VERSION'\",\n },\n {\n fieldKey: \"logSearchPostgresInitImage\",\n required: false,\n value: logSearchPostgresInitImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'library/busybox:VERSION'\",\n },\n {\n fieldKey: \"prometheusImage\",\n required: false,\n value: prometheusImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'minio/prometheus:VERSION'\",\n },\n {\n fieldKey: \"prometheusSidecarImage\",\n required: false,\n value: prometheusSidecarImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'project/container:VERSION'\",\n },\n {\n fieldKey: \"prometheusInitImage\",\n required: false,\n value: prometheusInitImage,\n pattern: /^((.*?)\\/(.*?):(.+))$/,\n customPatternMessage:\n \"Format must be of form: 'library/busybox:VERSION'\",\n },\n ];\n if (customDockerhub) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"registry\",\n required: true,\n value: imageRegistry,\n },\n {\n fieldKey: \"registryUsername\",\n required: true,\n value: imageRegistryUsername,\n },\n {\n fieldKey: \"registryPassword\",\n required: true,\n value: imageRegistryPassword,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPageValid(\"configure\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n customImage,\n imageName,\n logSearchImage,\n kesImage,\n logSearchPostgresImage,\n logSearchPostgresInitImage,\n prometheusImage,\n prometheusSidecarImage,\n prometheusInitImage,\n customDockerhub,\n imageRegistry,\n imageRegistryUsername,\n imageRegistryPassword,\n isPageValid,\n prometheusCustom,\n tenantCustom,\n logSearchCustom,\n prometheusSelectedStorageClass,\n prometheusVolumeSize,\n logSearchSelectedStorageClass,\n logSearchVolumeSize,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
    \n

    Container Images

    \n \n Specify the container images used by the Tenant and it's features.\n \n
    \n\n \n \n ) => {\n updateField(\"imageName\", e.target.value);\n cleanValidation(\"image\");\n }}\n label=\"MinIO\"\n value={imageName}\n error={validationErrors[\"image\"] || \"\"}\n placeholder=\"E.g. minio/minio:RELEASE.2022-02-26T02-54-46Z\"\n />\n \n\n \n ) => {\n updateField(\"kesImage\", e.target.value);\n cleanValidation(\"kesImage\");\n }}\n label=\"KES\"\n value={kesImage}\n error={validationErrors[\"kesImage\"] || \"\"}\n placeholder=\"E.g. minio/kes:v0.17.6\"\n />\n \n \n

    Log Search

    \n
    \n \n ) => {\n updateField(\"logSearchImage\", e.target.value);\n cleanValidation(\"logSearchImage\");\n }}\n label=\"API\"\n value={logSearchImage}\n error={validationErrors[\"logSearchImage\"] || \"\"}\n placeholder=\"E.g. minio/operator:v4.4.10\"\n />\n \n \n ) => {\n updateField(\"logSearchPostgresImage\", e.target.value);\n cleanValidation(\"logSearchPostgresImage\");\n }}\n label=\"PostgreSQL\"\n value={logSearchPostgresImage}\n error={validationErrors[\"logSearchPostgresImage\"] || \"\"}\n placeholder=\"E.g. library/postgres:13\"\n />\n \n \n ) => {\n updateField(\"logSearchPostgresInitImage\", e.target.value);\n cleanValidation(\"logSearchPostgresInitImage\");\n }}\n label=\"PostgreSQL Init\"\n value={logSearchPostgresInitImage}\n error={validationErrors[\"logSearchPostgresInitImage\"] || \"\"}\n placeholder=\"E.g. library/busybox:1.33.1\"\n />\n \n \n

    Monitoring

    \n
    \n \n ) => {\n updateField(\"prometheusImage\", e.target.value);\n cleanValidation(\"prometheusImage\");\n }}\n label=\"Prometheus\"\n value={prometheusImage}\n error={validationErrors[\"prometheusImage\"] || \"\"}\n placeholder=\"E.g. quay.io/prometheus/prometheus:latest\"\n />\n \n \n ) => {\n updateField(\"prometheusSidecarImage\", e.target.value);\n cleanValidation(\"prometheusSidecarImage\");\n }}\n label=\"Prometheus Sidecar\"\n value={prometheusSidecarImage}\n error={validationErrors[\"prometheusSidecarImage\"] || \"\"}\n placeholder=\"E.g. quay.io/prometheus/prometheus:latest\"\n />\n \n \n ) => {\n updateField(\"prometheusInitImage\", e.target.value);\n cleanValidation(\"prometheusInitImage\");\n }}\n label=\"Prometheus Init\"\n value={prometheusInitImage}\n error={validationErrors[\"prometheusInitImage\"] || \"\"}\n placeholder=\"E.g. quay.io/prometheus/prometheus:latest\"\n />\n \n
    \n\n {customImage && (\n \n \n

    Custom Container Registry

    \n
    \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"customDockerhub\", checked);\n }}\n label={\"Use a private container registry\"}\n />\n \n
    \n )}\n {customDockerhub && (\n \n \n ) => {\n updateField(\"imageRegistry\", e.target.value);\n }}\n label=\"Endpoint\"\n value={imageRegistry}\n error={validationErrors[\"registry\"] || \"\"}\n placeholder=\"E.g. https://index.docker.io/v1/\"\n required\n />\n \n \n ) => {\n updateField(\"imageRegistryUsername\", e.target.value);\n }}\n label=\"Username\"\n value={imageRegistryUsername}\n error={validationErrors[\"registryUsername\"] || \"\"}\n required\n />\n \n \n ) => {\n updateField(\"imageRegistryPassword\", e.target.value);\n }}\n label=\"Password\"\n value={imageRegistryPassword}\n error={validationErrors[\"registryPassword\"] || \"\"}\n required\n />\n \n \n )}\n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n storageClasses: state.tenants.createTenant.storageClasses,\n customImage: state.tenants.createTenant.fields.configure.customImage,\n imageName: state.tenants.createTenant.fields.configure.imageName,\n customDockerhub: state.tenants.createTenant.fields.configure.customDockerhub,\n imageRegistry: state.tenants.createTenant.fields.configure.imageRegistry,\n imageRegistryUsername:\n state.tenants.createTenant.fields.configure.imageRegistryUsername,\n imageRegistryPassword:\n state.tenants.createTenant.fields.configure.imageRegistryPassword,\n exposeMinIO: state.tenants.createTenant.fields.configure.exposeMinIO,\n exposeConsole: state.tenants.createTenant.fields.configure.exposeConsole,\n prometheusCustom:\n state.tenants.createTenant.fields.configure.prometheusEnabled,\n tenantCustom: state.tenants.createTenant.fields.configure.tenantCustom,\n logSearchCustom: state.tenants.createTenant.fields.configure.logSearchEnabled,\n logSearchVolumeSize:\n state.tenants.createTenant.fields.configure.logSearchVolumeSize,\n logSearchSizeFactor:\n state.tenants.createTenant.fields.configure.logSearchSizeFactor,\n prometheusVolumeSize:\n state.tenants.createTenant.fields.configure.prometheusVolumeSize,\n prometheusSizeFactor:\n state.tenants.createTenant.fields.configure.prometheusSizeFactor,\n logSearchSelectedStorageClass:\n state.tenants.createTenant.fields.configure.logSearchSelectedStorageClass,\n logSearchImage: state.tenants.createTenant.fields.configure.logSearchImage,\n kesImage: state.tenants.createTenant.fields.configure.kesImage,\n logSearchPostgresImage:\n state.tenants.createTenant.fields.configure.logSearchPostgresImage,\n logSearchPostgresInitImage:\n state.tenants.createTenant.fields.configure.logSearchPostgresInitImage,\n prometheusSelectedStorageClass:\n state.tenants.createTenant.fields.configure.prometheusSelectedStorageClass,\n prometheusImage: state.tenants.createTenant.fields.configure.prometheusImage,\n prometheusSidecarImage:\n state.tenants.createTenant.fields.configure.prometheusSidecarImage,\n prometheusInitImage:\n state.tenants.createTenant.fields.configure.prometheusInitImage,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(Images));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n modalBasic,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport api from \"../../../../../../common/api\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmModalIcon } from \"../../../../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n wrapText: {\n maxWidth: \"200px\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\",\n },\n ...modalBasic,\n ...deleteDialogStyles,\n });\n\ninterface IAddNamespace {\n classes: any;\n namespace: string;\n addNamespaceOpen: boolean;\n closeAddNamespaceModalAndRefresh: (reloadNamespaceData: boolean) => void;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst AddNamespaceModal = ({\n classes,\n namespace,\n addNamespaceOpen,\n closeAddNamespaceModalAndRefresh,\n setErrorSnackMessage,\n}: IAddNamespace) => {\n const [addNamespaceLoading, setAddNamespaceLoading] =\n useState(false);\n\n useEffect(() => {\n if (addNamespaceLoading) {\n api\n .invoke(\"POST\", \"/api/v1/namespace\", {\n name: namespace,\n })\n .then((res) => {\n setAddNamespaceLoading(false);\n closeAddNamespaceModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddNamespaceLoading(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n addNamespaceLoading,\n closeAddNamespaceModalAndRefresh,\n namespace,\n setErrorSnackMessage,\n ]);\n\n const addNamespace = () => {\n setAddNamespaceLoading(true);\n };\n\n return (\n }\n isLoading={addNamespaceLoading}\n onConfirm={addNamespace}\n onClose={() => {\n closeAddNamespaceModalAndRefresh(false);\n }}\n confirmationContent={\n \n {addNamespaceLoading && }\n \n Are you sure you want to add a namespace called\n
    \n {namespace}?\n
    \n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(AddNamespaceModal));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../../../store\";\nimport { isPageValid, updateAddField } from \"../../actions\";\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableRow from \"@mui/material/TableRow\";\nimport { niceBytes } from \"../../../../../common/utils\";\nimport { Opts } from \"../../ListTenants/utils\";\nimport { IResourcesSize } from \"../../ListTenants/types\";\nimport { IErasureCodeCalc } from \"../../../../../common/types\";\n\nimport { Divider } from \"@mui/material\";\nimport { IntegrationConfiguration } from \"./TenantResources/utils\";\n\ninterface ISizePreviewProps {\n classes: any;\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n volumeSize: string;\n sizeFactor: string;\n drivesPerServer: string;\n nodes: string;\n memoryNode: string;\n ecParity: string;\n ecParityChoices: Opts[];\n cleanECChoices: string[];\n resourcesSize: IResourcesSize;\n distribution: any;\n ecParityCalc: IErasureCodeCalc;\n limitSize: any;\n selectedStorageClass: string;\n cpuToUse: string;\n integrationSelection: IntegrationConfiguration;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n margin: 4,\n },\n table: {\n \"& .MuiTableCell-root\": {\n fontSize: 13,\n },\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst SizePreview = ({\n classes,\n nodes,\n memoryNode,\n ecParity,\n distribution,\n ecParityCalc,\n cpuToUse,\n integrationSelection,\n}: ISizePreviewProps) => {\n const usableInformation = ecParityCalc.storageFactors.find(\n (element) => element.erasureCode === ecParity\n );\n\n return (\n
    \n

    Resource Allocation

    \n \n \n \n \n Number of Servers\n \n {parseInt(nodes) > 0 ? nodes : \"-\"}\n \n \n {integrationSelection.typeSelection === \"\" &&\n integrationSelection.storageClass === \"\" && (\n \n \n Drives per Server\n \n {distribution ? distribution.disks : \"-\"}\n \n \n \n Drive Capacity\n \n {distribution ? niceBytes(distribution.pvSize) : \"-\"}\n \n \n \n )}\n\n \n Total Volumes\n \n {distribution ? distribution.persistentVolumes : \"-\"}\n \n \n {integrationSelection.typeSelection === \"\" &&\n integrationSelection.storageClass === \"\" && (\n \n \n Memory per Node\n {memoryNode} Gi\n \n \n \n CPU Selection\n \n \n {cpuToUse}\n \n \n \n )}\n \n
    \n {ecParityCalc.error === 0 && usableInformation && (\n \n

    Erasure Code Configuration

    \n \n \n \n \n EC Parity\n \n {ecParity !== \"\" ? ecParity : \"-\"}\n \n \n \n Raw Capacity\n \n {niceBytes(ecParityCalc.rawCapacity)}\n \n \n \n Usable Capacity\n \n {niceBytes(usableInformation.maxCapacity)}\n \n \n \n \n Server Failures Tolerated\n \n \n {distribution\n ? Math.floor(\n usableInformation.maxFailureTolerations /\n distribution.disks\n )\n : \"-\"}\n \n \n \n \n
    \n )}\n {integrationSelection.typeSelection !== \"\" &&\n integrationSelection.storageClass !== \"\" && (\n \n

    Single Instance Configuration

    \n \n \n \n \n CPU\n \n {integrationSelection.CPU !== 0\n ? integrationSelection.CPU\n : \"-\"}\n \n \n \n Memory\n \n {integrationSelection.memory !== 0\n ? `${integrationSelection.memory} Gi`\n : \"-\"}\n \n \n \n Drives per Server\n \n {integrationSelection.drivesPerServer !== 0\n ? `${integrationSelection.drivesPerServer}`\n : \"-\"}\n \n \n \n \n Drive Size\n \n \n {integrationSelection.driveSize.driveSize}\n {integrationSelection.driveSize.sizeUnit}\n \n \n \n \n
    \n )}\n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n volumeSize: state.tenants.createTenant.fields.tenantSize.volumeSize,\n sizeFactor: state.tenants.createTenant.fields.tenantSize.sizeFactor,\n drivesPerServer: state.tenants.createTenant.fields.tenantSize.drivesPerServer,\n nodes: state.tenants.createTenant.fields.tenantSize.nodes,\n memoryNode:\n state.tenants.createTenant.fields.tenantSize.resourcesMemoryRequest,\n ecParity: state.tenants.createTenant.fields.tenantSize.ecParity,\n ecParityChoices: state.tenants.createTenant.fields.tenantSize.ecParityChoices,\n cleanECChoices: state.tenants.createTenant.fields.tenantSize.cleanECChoices,\n resourcesSize: state.tenants.createTenant.fields.tenantSize.resourcesSize,\n distribution: state.tenants.createTenant.fields.tenantSize.distribution,\n ecParityCalc: state.tenants.createTenant.fields.tenantSize.ecParityCalc,\n limitSize: state.tenants.createTenant.fields.tenantSize.limitSize,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n cpuToUse: state.tenants.createTenant.fields.tenantSize.resourcesCPURequest,\n integrationSelection:\n state.tenants.createTenant.fields.tenantSize.integrationSelection,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(SizePreview));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, {\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useState,\n} from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport get from \"lodash/get\";\nimport debounce from \"lodash/debounce\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalBasic,\n wizardCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../../../actions\";\nimport {\n isPageValid,\n setLimitSize,\n setStorageType,\n setStorageClassesList,\n updateAddField,\n} from \"../../../actions\";\nimport {\n getLimitSizes,\n IQuotaElement,\n IQuotas,\n Opts,\n} from \"../../../ListTenants/utils\";\nimport { AppState } from \"../../../../../../store\";\nimport { commonFormValidation } from \"../../../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../../../utils\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport api from \"../../../../../../common/api\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport AddIcon from \"../../../../../../icons/AddIcon\";\nimport AddNamespaceModal from \"../helpers/AddNamespaceModal\";\nimport SizePreview from \"../SizePreview\";\nimport TenantSize from \"./TenantSize\";\nimport { Paper, SelectChangeEvent } from \"@mui/material\";\nimport { IMkEnvs, mkPanelConfigurations } from \"./utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizePreview: {\n position: \"fixed\",\n marginLeft: 10,\n background: \"#FFFFFF\",\n border: \"1px solid #EAEAEA\",\n padding: 2,\n },\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\ninterface INameTenantMainScreen {\n classes: any;\n storageClasses: Opts[];\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n setStorageClassesList: typeof setStorageClassesList;\n setLimitSize: typeof setLimitSize;\n tenantName: string;\n namespace: string;\n selectedStorageClass: string;\n selectedStorageType: string;\n formToRender?: IMkEnvs;\n features?: string[];\n setStorageType: typeof setStorageType;\n}\n\nconst NameTenantMain = ({\n classes,\n storageClasses,\n tenantName,\n namespace,\n selectedStorageClass,\n selectedStorageType,\n formToRender = IMkEnvs.default,\n updateAddField,\n setStorageClassesList,\n setLimitSize,\n isPageValid,\n setModalErrorSnackMessage,\n features,\n setStorageType,\n}: INameTenantMainScreen) => {\n const [validationErrors, setValidationErrors] = useState({});\n const [emptyNamespace, setEmptyNamespace] = useState(true);\n const [loadingNamespaceInfo, setLoadingNamespaceInfo] =\n useState(false);\n const [showCreateButton, setShowCreateButton] = useState(false);\n const [openAddNSConfirm, setOpenAddNSConfirm] = useState(false);\n\n // Common\n const updateField = useCallback(\n (field: string, value: string) => {\n updateAddField(\"nameTenant\", field, value);\n },\n [updateAddField]\n );\n\n // Storage classes retrieval\n const getNamespaceInformation = useCallback(() => {\n setShowCreateButton(false);\n // Empty tenantValidation\n api\n .invoke(\"GET\", `/api/v1/namespaces/${namespace}/tenants`)\n .then((res: any[]) => {\n const tenantsList = get(res, \"tenants\", []);\n\n if (tenantsList && tenantsList.length > 0) {\n setEmptyNamespace(false);\n setLoadingNamespaceInfo(false);\n return;\n }\n setEmptyNamespace(true);\n\n // Storagequotas retrieval\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${namespace}/resourcequotas/${namespace}-storagequota`\n )\n .then((res: IQuotas) => {\n const elements: IQuotaElement[] = get(res, \"elements\", []);\n setLimitSize(getLimitSizes(res));\n\n const newStorage = elements.map((storageClass: any) => {\n const name = get(storageClass, \"name\", \"\").split(\n \".storageclass.storage.k8s.io/requests.storage\"\n )[0];\n\n return { label: name, value: name };\n });\n\n setStorageClassesList(newStorage);\n\n const stExists = newStorage.findIndex(\n (storageClass) => storageClass.value === selectedStorageClass\n );\n\n if (newStorage.length > 0 && stExists === -1) {\n updateField(\"selectedStorageClass\", newStorage[0].value);\n } else if (newStorage.length === 0) {\n updateField(\"selectedStorageClass\", \"\");\n setStorageClassesList([]);\n }\n setLoadingNamespaceInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingNamespaceInfo(false);\n setShowCreateButton(true);\n updateField(\"selectedStorageClass\", \"\");\n setStorageClassesList([]);\n console.error(\"Namespace error: \", err);\n });\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage({\n errorMessage: \"Error validating if namespace already has tenants\",\n detailedError: err.detailedError,\n });\n });\n }, [\n namespace,\n setLimitSize,\n setModalErrorSnackMessage,\n setStorageClassesList,\n updateField,\n selectedStorageClass,\n ]);\n\n const debounceNamespace = useMemo(\n () => debounce(getNamespaceInformation, 500),\n [getNamespaceInformation]\n );\n\n useEffect(() => {\n if (namespace !== \"\") {\n debounceNamespace();\n setLoadingNamespaceInfo(true);\n\n // Cancel previous debounce calls during useEffect cleanup.\n return debounceNamespace.cancel;\n }\n }, [debounceNamespace, namespace]);\n\n // Validation\n useEffect(() => {\n let customNamespaceError = false;\n let errorMessage = \"\";\n\n if (!emptyNamespace && !loadingNamespaceInfo) {\n customNamespaceError = true;\n errorMessage = \"You can only create one tenant per namespace\";\n } else if (\n storageClasses.length < 1 &&\n emptyNamespace &&\n !loadingNamespaceInfo\n ) {\n customNamespaceError = true;\n errorMessage = \"Please enter a valid namespace\";\n }\n\n const commonValidation = commonFormValidation([\n {\n fieldKey: \"tenant-name\",\n required: true,\n pattern: /^[a-z0-9-]{3,63}$/,\n customPatternMessage:\n \"Name only can contain lowercase letters, numbers and '-'. Min. Length: 3\",\n value: tenantName,\n },\n {\n fieldKey: \"namespace\",\n required: true,\n value: namespace,\n customValidation: customNamespaceError,\n customValidationMessage: errorMessage,\n },\n ]);\n\n const isValid =\n !(\"tenant-name\" in commonValidation) &&\n !(\"namespace\" in commonValidation) &&\n ((formToRender === IMkEnvs.default && storageClasses.length > 0) ||\n (formToRender !== IMkEnvs.default && selectedStorageType !== \"\"));\n\n isPageValid(\"nameTenant\", isValid);\n\n setValidationErrors(commonValidation);\n }, [\n storageClasses,\n namespace,\n tenantName,\n isPageValid,\n emptyNamespace,\n loadingNamespaceInfo,\n selectedStorageType,\n formToRender,\n ]);\n\n const frmValidationCleanup = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n const addNamespace = () => {\n setOpenAddNSConfirm(true);\n };\n\n const closeAddNamespace = (refresh: boolean) => {\n setOpenAddNSConfirm(false);\n\n if (refresh) {\n debounceNamespace();\n }\n };\n\n return (\n \n {openAddNSConfirm && (\n \n )}\n \n \n \n \n \n
    \n

    Name

    \n \n How would you like to name this new tenant?\n \n
    \n
    \n ) => {\n updateField(\"tenantName\", e.target.value);\n frmValidationCleanup(\"tenant-name\");\n }}\n label=\"Name\"\n value={tenantName}\n required\n error={validationErrors[\"tenant-name\"] || \"\"}\n />\n
    \n
    \n \n ) => {\n updateField(\"namespace\", e.target.value);\n frmValidationCleanup(\"namespace\");\n }}\n label=\"Namespace\"\n value={namespace}\n error={validationErrors[\"namespace\"] || \"\"}\n overlayId={\"add-namespace\"}\n overlayIcon={showCreateButton ? : null}\n overlayAction={addNamespace}\n required\n />\n \n {formToRender === IMkEnvs.default ? (\n \n ) => {\n updateField(\n \"selectedStorageClass\",\n e.target.value as string\n );\n }}\n label=\"Storage Class\"\n value={selectedStorageClass}\n options={storageClasses}\n disabled={storageClasses.length < 1}\n />\n \n ) : (\n \n ) => {\n setStorageType(e.target.value as string, features);\n }}\n label={get(\n mkPanelConfigurations,\n `${formToRender}.variantSelectorLabel`,\n \"Storage Type\"\n )}\n value={selectedStorageType}\n options={get(\n mkPanelConfigurations,\n `${formToRender}.variantSelectorValues`,\n []\n )}\n />\n \n )}\n {formToRender === IMkEnvs.default ? (\n \n ) : (\n get(\n mkPanelConfigurations,\n `${formToRender}.sizingComponent`,\n null\n )\n )}\n
    \n
    \n
    \n \n
    \n \n
    \n
    \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n tenantName: state.tenants.createTenant.fields.nameTenant.tenantName,\n namespace: state.tenants.createTenant.fields.nameTenant.namespace,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n selectedStorageType:\n state.tenants.createTenant.fields.nameTenant.selectedStorageType,\n storageClasses: state.tenants.createTenant.storageClasses,\n features: state.console.session.features,\n});\n\nconst connector = connect(mapState, {\n setModalErrorSnackMessage,\n updateAddField,\n setStorageClassesList,\n setLimitSize,\n isPageValid,\n setStorageType,\n});\n\nexport default withStyles(styles)(connector(NameTenantMain));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport NameTenantMain from \"./NameTenantMain\";\nimport { IMkEnvs, resourcesConfigurations } from \"./utils\";\nimport { AppState } from \"../../../../../../store\";\n\ninterface ITenantResources {\n features?: string[];\n}\n\nconst TenantResources = ({ features }: ITenantResources) => {\n const [formRender, setFormRender] = useState(null);\n\n useEffect(() => {\n let setConfiguration = IMkEnvs.default;\n\n if (features && features.length !== 0) {\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (features.includes(element)) {\n setConfiguration = get(\n resourcesConfigurations,\n element,\n IMkEnvs.default\n );\n }\n });\n }\n\n setFormRender(setConfiguration);\n }, [features]);\n\n if (formRender === null) {\n return null;\n }\n\n return ;\n};\n\nconst mapState = (state: AppState) => ({\n features: state.console.session.features,\n});\n\nconst connector = connect(mapState, null);\n\nexport default connector(TenantResources);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper, SelectChangeEvent } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { isPageValid, updateAddField } from \"../../actions\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { ISecurityContext } from \"../../types\";\nimport InputUnitMenu from \"../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IConfigureProps {\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n storageClasses: any;\n classes: any;\n logSearchEnabled: boolean;\n logSearchVolumeSize: string;\n logSearchSizeFactor: string;\n logSearchSelectedStorageClass: string;\n logSearchImage: string;\n logSearchPostgresImage: string;\n logSearchPostgresInitImage: string;\n selectedStorageClass: string;\n tenantSecurityContext: ISecurityContext;\n logSearchSecurityContext: ISecurityContext;\n logSearchPostgresSecurityContext: ISecurityContext;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n\n logSearchEnabledFields: {\n marginLeft: 20, // 2nd Level(15+15)\n padding: 10,\n width: \"90%\",\n margin: \"auto\",\n },\n fieldSpaceTop: {\n marginTop: 15,\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst ConfigLogSearch = ({\n classes,\n storageClasses,\n logSearchEnabled,\n logSearchVolumeSize,\n logSearchSizeFactor,\n logSearchImage,\n logSearchPostgresImage,\n logSearchPostgresInitImage,\n logSearchSelectedStorageClass,\n updateAddField,\n isPageValid,\n selectedStorageClass,\n tenantSecurityContext,\n logSearchSecurityContext,\n logSearchPostgresSecurityContext,\n}: IConfigureProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n const configureSTClasses = [\n { label: \"Default\", value: \"default\" },\n ...storageClasses,\n ];\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"configure\", field, value);\n },\n [updateAddField]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (logSearchEnabled) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"log_search_storage_class\",\n required: true,\n value: logSearchSelectedStorageClass,\n customValidation: logSearchSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"log_search_volume_size\",\n required: true,\n value: logSearchVolumeSize,\n customValidation:\n logSearchVolumeSize === \"\" || parseInt(logSearchVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greatter than 0`,\n },\n {\n fieldKey: \"logSearch_securityContext_runAsUser\",\n required: true,\n value: logSearchSecurityContext.runAsUser,\n customValidation:\n logSearchSecurityContext.runAsUser === \"\" ||\n parseInt(logSearchSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"logSearch_securityContext_runAsGroup\",\n required: true,\n value: logSearchSecurityContext.runAsGroup,\n customValidation:\n logSearchSecurityContext.runAsGroup === \"\" ||\n parseInt(logSearchSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"logSearch_securityContext_fsGroup\",\n required: true,\n value: logSearchSecurityContext.fsGroup,\n customValidation:\n logSearchSecurityContext.fsGroup === \"\" ||\n parseInt(logSearchSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"postgres_securityContext_runAsUser\",\n required: true,\n value: logSearchPostgresSecurityContext.runAsUser,\n customValidation:\n logSearchPostgresSecurityContext.runAsUser === \"\" ||\n parseInt(logSearchPostgresSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"postgres_securityContext_runAsGroup\",\n required: true,\n value: logSearchSecurityContext.runAsGroup,\n customValidation:\n logSearchPostgresSecurityContext.runAsGroup === \"\" ||\n parseInt(logSearchPostgresSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"postgres_securityContext_fsGroup\",\n required: true,\n value: logSearchPostgresSecurityContext.fsGroup,\n customValidation:\n logSearchPostgresSecurityContext.fsGroup === \"\" ||\n parseInt(logSearchPostgresSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPageValid(\"configure\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n logSearchImage,\n logSearchPostgresImage,\n logSearchPostgresInitImage,\n isPageValid,\n logSearchEnabled,\n logSearchSelectedStorageClass,\n logSearchVolumeSize,\n tenantSecurityContext,\n logSearchSecurityContext,\n logSearchPostgresSecurityContext,\n ]);\n\n useEffect(() => {\n // New default values in current selection is invalid\n if (storageClasses.length > 0) {\n const filterLogSearch = storageClasses.filter(\n (item: any) => item.value === logSearchSelectedStorageClass\n );\n if (filterLogSearch.length === 0) {\n updateField(\"logSearchSelectedStorageClass\", \"default\");\n }\n }\n }, [\n logSearchSelectedStorageClass,\n selectedStorageClass,\n storageClasses,\n updateField,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
    \n

    Audit Log

    \n \n Audit log deploys a small PostgreSQL database and store access logs of\n all calls into the tenant.\n \n
    \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"logSearchEnabled\", checked);\n }}\n label={\"Enabled\"}\n />\n \n {logSearchEnabled && (\n \n \n ) => {\n updateField(\n \"logSearchSelectedStorageClass\",\n e.target.value as string\n );\n }}\n label=\"Log Search Storage Class\"\n value={logSearchSelectedStorageClass}\n options={configureSTClasses}\n disabled={configureSTClasses.length < 1}\n />\n \n \n
    \n ) => {\n updateField(\"logSearchVolumeSize\", e.target.value);\n cleanValidation(\"log_search_volume_size\");\n }}\n label=\"Storage Size\"\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n value={logSearchVolumeSize}\n required\n error={validationErrors[\"log_search_volume_size\"] || \"\"}\n min=\"0\"\n />\n
    \n
    \n\n \n \n SecurityContext for LogSearch\n \n\n \n \n
    \n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"logSearch_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={logSearchSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"logSearch_securityContext_runAsUser\"] ||\n \"\"\n }\n min=\"0\"\n />\n
    \n
    \n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"logSearch_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={logSearchSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\n \"logSearch_securityContext_runAsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n
    \n
    \n ) => {\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"logSearch_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={logSearchSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"logSearch_securityContext_fsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
    \n \n
    \n
    \n \n
    \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"logSearchSecurityContext\", {\n ...logSearchSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
    \n
    \n \n
    \n \n SecurityContext for PostgreSQL\n \n\n \n \n
    \n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"postgres_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={logSearchPostgresSecurityContext.runAsUser}\n required\n error={\n validationErrors[\"postgres_securityContext_runAsUser\"] ||\n \"\"\n }\n min=\"0\"\n />\n
    \n
    \n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"postgres_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={logSearchPostgresSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\"postgres_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
    \n
    \n ) => {\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"postgres_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={logSearchPostgresSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"postgres_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
    \n \n
    \n
    \n \n
    \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"logSearchPostgresSecurityContext\", {\n ...logSearchPostgresSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
    \n
    \n
    \n
    \n )}\n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n storageClasses: state.tenants.createTenant.storageClasses,\n logSearchEnabled:\n state.tenants.createTenant.fields.configure.logSearchEnabled,\n logSearchVolumeSize:\n state.tenants.createTenant.fields.configure.logSearchVolumeSize,\n logSearchSizeFactor:\n state.tenants.createTenant.fields.configure.logSearchSizeFactor,\n logSearchSelectedStorageClass:\n state.tenants.createTenant.fields.configure.logSearchSelectedStorageClass,\n logSearchImage: state.tenants.createTenant.fields.configure.logSearchImage,\n logSearchPostgresImage:\n state.tenants.createTenant.fields.configure.logSearchPostgresImage,\n logSearchPostgresInitImage:\n state.tenants.createTenant.fields.configure.logSearchPostgresInitImage,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n tenantSecurityContext:\n state.tenants.createTenant.fields.configure.tenantSecurityContext,\n logSearchSecurityContext:\n state.tenants.createTenant.fields.configure.logSearchSecurityContext,\n logSearchPostgresSecurityContext:\n state.tenants.createTenant.fields.configure\n .logSearchPostgresSecurityContext,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(ConfigLogSearch));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper, SelectChangeEvent } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { isPageValid, updateAddField } from \"../../actions\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { ISecurityContext } from \"../../types\";\nimport InputUnitMenu from \"../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IConfigureProps {\n updateAddField: typeof updateAddField;\n isPageValid: typeof isPageValid;\n storageClasses: any;\n classes: any;\n prometheusEnabled: boolean;\n prometheusVolumeSize: string;\n prometheusSizeFactor: string;\n prometheusSelectedStorageClass: string;\n prometheusImage: string;\n prometheusSidecarImage: string;\n prometheusInitImage: string;\n selectedStorageClass: string;\n tenantSecurityContext: ISecurityContext;\n prometheusSecurityContext: ISecurityContext;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n fieldSpaceTop: {\n marginTop: 15,\n },\n prometheusEnabledFields: {\n marginLeft: 20, // 2nd Level(15+15)\n padding: 10,\n width: \"90%\",\n margin: \"auto\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst ConfigPrometheus = ({\n classes,\n storageClasses,\n prometheusEnabled,\n prometheusVolumeSize,\n prometheusSizeFactor,\n prometheusSelectedStorageClass,\n prometheusImage,\n prometheusSidecarImage,\n prometheusInitImage,\n updateAddField,\n isPageValid,\n selectedStorageClass,\n tenantSecurityContext,\n prometheusSecurityContext,\n}: IConfigureProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n const configureSTClasses = [\n { label: \"Default\", value: \"default\" },\n ...storageClasses,\n ];\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n updateAddField(\"configure\", field, value);\n },\n [updateAddField]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (prometheusEnabled) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"prometheus_storage_class\",\n required: true,\n value: prometheusSelectedStorageClass,\n customValidation: prometheusSelectedStorageClass === \"\",\n customValidationMessage: \"Field cannot be empty\",\n },\n {\n fieldKey: \"prometheus_volume_size\",\n required: true,\n value: prometheusVolumeSize,\n customValidation:\n prometheusVolumeSize === \"\" || parseInt(prometheusVolumeSize) <= 0,\n customValidationMessage: `Volume size must be present and be greater than 0`,\n },\n {\n fieldKey: \"prometheus_securityContext_runAsUser\",\n required: true,\n value: prometheusSecurityContext.runAsUser,\n customValidation:\n prometheusSecurityContext.runAsUser === \"\" ||\n parseInt(prometheusSecurityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"prometheus_securityContext_runAsGroup\",\n required: true,\n value: prometheusSecurityContext.runAsGroup,\n customValidation:\n prometheusSecurityContext.runAsGroup === \"\" ||\n parseInt(prometheusSecurityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"prometheus_securityContext_fsGroup\",\n required: true,\n value: prometheusSecurityContext.fsGroup,\n customValidation:\n prometheusSecurityContext.fsGroup === \"\" ||\n parseInt(prometheusSecurityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPageValid(\"configure\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n prometheusImage,\n prometheusSidecarImage,\n prometheusInitImage,\n isPageValid,\n prometheusEnabled,\n prometheusSelectedStorageClass,\n prometheusVolumeSize,\n tenantSecurityContext,\n prometheusSecurityContext,\n ]);\n\n useEffect(() => {\n // New default values in current selection is invalid\n if (storageClasses.length > 0) {\n const filterPrometheus = storageClasses.filter(\n (item: any) => item.value === prometheusSelectedStorageClass\n );\n if (filterPrometheus.length === 0) {\n updateField(\"prometheusSelectedStorageClass\", \"default\");\n }\n }\n }, [\n prometheusSelectedStorageClass,\n selectedStorageClass,\n storageClasses,\n updateField,\n ]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
    \n

    Monitoring

    \n \n A small Prometheus will be deployed to keep metrics about the tenant.\n \n
    \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"prometheusEnabled\", checked);\n }}\n label={\"Enabled\"}\n />\n \n {prometheusEnabled && (\n \n \n ) => {\n updateField(\n \"prometheusSelectedStorageClass\",\n e.target.value as string\n );\n }}\n label=\"Prometheus Storage Class\"\n value={prometheusSelectedStorageClass}\n options={configureSTClasses}\n disabled={configureSTClasses.length < 1}\n />\n \n \n
    \n ) => {\n updateField(\"prometheusVolumeSize\", e.target.value);\n cleanValidation(\"prometheus_volume_size\");\n }}\n label=\"Storage Size\"\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n value={prometheusVolumeSize}\n required\n error={validationErrors[\"prometheus_volume_size\"] || \"\"}\n min=\"0\"\n />\n
    \n
    \n \n \n SecurityContext for Prometheus\n \n \n \n
    \n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"prometheus_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={prometheusSecurityContext.runAsUser}\n required\n error={\n validationErrors[\n \"prometheus_securityContext_runAsUser\"\n ] || \"\"\n }\n min=\"0\"\n />\n
    \n
    \n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"prometheus_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={prometheusSecurityContext.runAsGroup}\n required\n error={\n validationErrors[\n \"prometheus_securityContext_runAsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n
    \n
    \n ) => {\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"prometheus_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={prometheusSecurityContext.fsGroup}\n required\n error={\n validationErrors[\"prometheus_securityContext_fsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
    \n \n
    \n \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"prometheusSecurityContext\", {\n ...prometheusSecurityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n \n \n \n
    \n )}\n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n storageClasses: state.tenants.createTenant.storageClasses,\n prometheusEnabled:\n state.tenants.createTenant.fields.configure.prometheusEnabled,\n prometheusVolumeSize:\n state.tenants.createTenant.fields.configure.prometheusVolumeSize,\n prometheusSizeFactor:\n state.tenants.createTenant.fields.configure.prometheusSizeFactor,\n prometheusSelectedStorageClass:\n state.tenants.createTenant.fields.configure.prometheusSelectedStorageClass,\n prometheusImage: state.tenants.createTenant.fields.configure.prometheusImage,\n prometheusSidecarImage:\n state.tenants.createTenant.fields.configure.prometheusSidecarImage,\n prometheusInitImage:\n state.tenants.createTenant.fields.configure.prometheusInitImage,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n tenantSecurityContext:\n state.tenants.createTenant.fields.configure.tenantSecurityContext,\n prometheusSecurityContext:\n state.tenants.createTenant.fields.configure.prometheusSecurityContext,\n});\n\nconst connector = connect(mapState, {\n updateAddField,\n isPageValid,\n});\n\nexport default withStyles(styles)(connector(ConfigPrometheus));\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 { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport { LinearProgress } from \"@mui/material\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n modalBasic,\n settingsCommon,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport api from \"../../../../common/api\";\nimport { generatePoolName, getBytes } from \"../../../../common/utils\";\nimport GenericWizard from \"../../Common/GenericWizard/GenericWizard\";\nimport { IWizardElement } from \"../../Common/GenericWizard/types\";\nimport { NewServiceAccount } from \"../../Common/CredentialsPrompt/types\";\nimport {\n ErrorResponseHandler,\n ITenantCreator,\n ITolerationModel,\n} from \"../../../../common/types\";\nimport { KeyPair } from \"../ListTenants/utils\";\n\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { getDefaultAffinity, getNodeSelector } from \"../TenantDetails/utils\";\nimport CredentialsPrompt from \"../../Common/CredentialsPrompt/CredentialsPrompt\";\nimport { AppState } from \"../../../../store\";\nimport { ICertificatesItems, IFieldStore } from \"../types\";\nimport { resetAddTenantForm, updateAddField } from \"../actions\";\nimport Configure from \"./Steps/Configure\";\nimport IdentityProvider from \"./Steps/IdentityProvider\";\nimport Security from \"./Steps/Security\";\nimport Encryption from \"./Steps/Encryption\";\nimport Affinity from \"./Steps/Affinity\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport history from \"../../../../history\";\nimport Images from \"./Steps/Images\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport BackLink from \"../../../../common/BackLink\";\nimport TenantResources from \"./Steps/TenantResources/TenantResources\";\nimport ConfigLogSearch from \"./Steps/ConfigLogSearch\";\nimport ConfigPrometheus from \"./Steps/ConfigPrometheus\";\nimport {\n IMkEnvs,\n resourcesConfigurations,\n} from \"./Steps/TenantResources/utils\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport { StorageIcon } from \"../../../../icons\";\n\ninterface IAddTenantProps {\n setErrorSnackMessage: typeof setErrorSnackMessage;\n resetAddTenantForm: typeof resetAddTenantForm;\n updateAddField: typeof updateAddField;\n fields: IFieldStore;\n certificates: ICertificatesItems;\n selectedStorageClass: string;\n namespace: string;\n validPages: string[];\n classes: any;\n features?: string[];\n tolerations: ITolerationModel[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n pageBox: {\n border: \"1px solid #EAEAEA\",\n },\n ...modalBasic,\n ...wizardCommon,\n ...settingsCommon,\n });\n\nconst AddTenant = ({\n classes,\n fields,\n certificates,\n selectedStorageClass,\n namespace,\n validPages,\n setErrorSnackMessage,\n resetAddTenantForm,\n features,\n tolerations,\n}: IAddTenantProps) => {\n // Modals\n const [showNewCredentials, setShowNewCredentials] = useState(false);\n const [createdAccount, setCreatedAccount] =\n useState(null);\n\n // Fields\n const [addSending, setAddSending] = useState(false);\n const [formRender, setFormRender] = useState(null);\n\n useEffect(() => {\n let setConfiguration = IMkEnvs.default;\n\n if (features && features.length !== 0) {\n const possibleVariables = Object.keys(resourcesConfigurations);\n\n possibleVariables.forEach((element) => {\n if (features.includes(element)) {\n setConfiguration = get(\n resourcesConfigurations,\n element,\n IMkEnvs.default\n );\n }\n });\n }\n\n setFormRender(setConfiguration);\n }, [features]);\n\n /* Send Information to backend */\n useEffect(() => {\n const tenantName = fields.nameTenant.tenantName;\n const selectedStorageClass = fields.nameTenant.selectedStorageClass;\n const imageName = fields.configure.imageName;\n const customDockerhub = fields.configure.customDockerhub;\n const imageRegistry = fields.configure.imageRegistry;\n const imageRegistryUsername = fields.configure.imageRegistryUsername;\n const imageRegistryPassword = fields.configure.imageRegistryPassword;\n const exposeMinIO = fields.configure.exposeMinIO;\n const exposeConsole = fields.configure.exposeConsole;\n const idpSelection = fields.identityProvider.idpSelection;\n const openIDConfigurationURL =\n fields.identityProvider.openIDConfigurationURL;\n const openIDClientID = fields.identityProvider.openIDClientID;\n const openIDClaimName = fields.identityProvider.openIDClaimName;\n const openIDCallbackURL = fields.identityProvider.openIDCallbackURL;\n const openIDScopes = fields.identityProvider.openIDScopes;\n const openIDSecretID = fields.identityProvider.openIDSecretID;\n const ADURL = fields.identityProvider.ADURL;\n const ADSkipTLS = fields.identityProvider.ADSkipTLS;\n const ADServerInsecure = fields.identityProvider.ADServerInsecure;\n const ADGroupSearchBaseDN = fields.identityProvider.ADGroupSearchBaseDN;\n const ADGroupSearchFilter = fields.identityProvider.ADGroupSearchFilter;\n const ADUserDNs = fields.identityProvider.ADUserDNs;\n const ADLookupBindDN = fields.identityProvider.ADLookupBindDN;\n const ADLookupBindPassword = fields.identityProvider.ADLookupBindPassword;\n const ADUserDNSearchBaseDN = fields.identityProvider.ADUserDNSearchBaseDN;\n const ADUserDNSearchFilter = fields.identityProvider.ADUserDNSearchFilter;\n const ADServerStartTLS = fields.identityProvider.ADServerStartTLS;\n const accessKeys = fields.identityProvider.accessKeys;\n const secretKeys = fields.identityProvider.secretKeys;\n const minioCertificates = certificates.minioCertificates;\n const caCertificates = certificates.caCertificates;\n const consoleCaCertificates = certificates.consoleCaCertificates;\n const consoleCertificate = certificates.consoleCertificate;\n const serverCertificate = certificates.serverCertificate;\n const clientCertificate = certificates.clientCertificate;\n const vaultCertificate = certificates.vaultCertificate;\n const vaultCA = certificates.vaultCA;\n const gemaltoCA = certificates.gemaltoCA;\n const enableEncryption = fields.encryption.enableEncryption;\n const encryptionType = fields.encryption.encryptionType;\n const gemaltoEndpoint = fields.encryption.gemaltoEndpoint;\n const gemaltoToken = fields.encryption.gemaltoToken;\n const gemaltoDomain = fields.encryption.gemaltoDomain;\n const gemaltoRetry = fields.encryption.gemaltoRetry;\n const awsEndpoint = fields.encryption.awsEndpoint;\n const awsRegion = fields.encryption.awsRegion;\n const awsKMSKey = fields.encryption.awsKMSKey;\n const awsAccessKey = fields.encryption.awsAccessKey;\n const awsSecretKey = fields.encryption.awsSecretKey;\n const awsToken = fields.encryption.awsToken;\n const vaultEndpoint = fields.encryption.vaultEndpoint;\n const vaultEngine = fields.encryption.vaultEngine;\n const vaultNamespace = fields.encryption.vaultNamespace;\n const vaultPrefix = fields.encryption.vaultPrefix;\n const vaultAppRoleEngine = fields.encryption.vaultAppRoleEngine;\n const vaultId = fields.encryption.vaultId;\n const vaultSecret = fields.encryption.vaultSecret;\n const vaultRetry = fields.encryption.vaultRetry;\n const vaultPing = fields.encryption.vaultPing;\n const azureEndpoint = fields.encryption.azureEndpoint;\n const azureTenantID = fields.encryption.azureTenantID;\n const azureClientID = fields.encryption.azureClientID;\n const azureClientSecret = fields.encryption.azureClientSecret;\n const gcpProjectID = fields.encryption.gcpProjectID;\n const gcpEndpoint = fields.encryption.gcpEndpoint;\n const gcpClientEmail = fields.encryption.gcpClientEmail;\n const gcpClientID = fields.encryption.gcpClientID;\n const gcpPrivateKeyID = fields.encryption.gcpPrivateKeyID;\n const gcpPrivateKey = fields.encryption.gcpPrivateKey;\n const enableAutoCert = fields.security.enableAutoCert;\n const enableTLS = fields.security.enableTLS;\n const ecParity = fields.tenantSize.ecParity;\n const distribution = fields.tenantSize.distribution;\n const tenantCustom = fields.configure.tenantCustom;\n const logSearchEnabled = fields.configure.logSearchEnabled;\n const prometheusEnabled = fields.configure.prometheusEnabled;\n const logSearchVolumeSize = fields.configure.logSearchVolumeSize;\n const logSearchSelectedStorageClass =\n fields.configure.logSearchSelectedStorageClass;\n const logSearchImage = fields.configure.logSearchImage;\n const kesImage = fields.configure.kesImage;\n const logSearchPostgresImage = fields.configure.logSearchPostgresImage;\n const logSearchPostgresInitImage =\n fields.configure.logSearchPostgresInitImage;\n const prometheusImage = fields.configure.prometheusImage;\n const prometheusSidecarImage = fields.configure.prometheusSidecarImage;\n const prometheusInitImage = fields.configure.prometheusInitImage;\n const prometheusSelectedStorageClass =\n fields.configure.prometheusSelectedStorageClass;\n const prometheusVolumeSize = fields.configure.prometheusVolumeSize;\n const affinityType = fields.affinity.podAffinity;\n const nodeSelectorLabels = fields.affinity.nodeSelectorLabels;\n const withPodAntiAffinity = fields.affinity.withPodAntiAffinity;\n\n const tenantSecurityContext = fields.configure.tenantSecurityContext;\n const logSearchSecurityContext = fields.configure.logSearchSecurityContext;\n const logSearchPostgresSecurityContext =\n fields.configure.logSearchPostgresSecurityContext;\n const prometheusSecurityContext =\n fields.configure.prometheusSecurityContext;\n const kesSecurityContext = fields.encryption.kesSecurityContext;\n const kesReplicas = fields.encryption.replicas;\n\n if (addSending) {\n const tolerationValues = tolerations.filter(\n (toleration) => toleration.key.trim() !== \"\"\n );\n\n const poolName = generatePoolName([]);\n\n let affinityObject = {};\n\n switch (affinityType) {\n case \"default\":\n affinityObject = {\n affinity: getDefaultAffinity(tenantName, poolName),\n };\n break;\n case \"nodeSelector\":\n affinityObject = {\n affinity: getNodeSelector(\n nodeSelectorLabels,\n withPodAntiAffinity,\n tenantName,\n poolName\n ),\n };\n break;\n }\n\n const erasureCode = ecParity.split(\":\")[1];\n\n let dataSend: ITenantCreator = {\n name: tenantName,\n namespace: namespace,\n access_key: \"\",\n secret_key: \"\",\n access_keys: [],\n secret_keys: [],\n enable_tls: enableTLS && enableAutoCert,\n enable_console: true,\n enable_prometheus: true,\n service_name: \"\",\n image: imageName,\n expose_minio: exposeMinIO,\n expose_console: exposeConsole,\n pools: [\n {\n name: poolName,\n servers: distribution.nodes,\n volumes_per_server: distribution.disks,\n volume_configuration: {\n size: distribution.pvSize,\n storage_class_name: selectedStorageClass,\n },\n securityContext: tenantCustom ? tenantSecurityContext : null,\n ...affinityObject,\n tolerations: tolerationValues,\n },\n ],\n erasureCodingParity: parseInt(erasureCode, 10),\n };\n\n // Set Resources\n if (\n fields.tenantSize.resourcesCPURequest !== \"\" ||\n fields.tenantSize.resourcesCPULimit !== \"\" ||\n fields.tenantSize.resourcesMemoryRequest !== \"\" ||\n fields.tenantSize.resourcesMemoryLimit !== \"\"\n ) {\n dataSend.pools[0].resources = {};\n // requests\n if (\n fields.tenantSize.resourcesCPURequest !== \"\" ||\n fields.tenantSize.resourcesMemoryRequest !== \"\"\n ) {\n dataSend.pools[0].resources.requests = {};\n if (fields.tenantSize.resourcesCPURequest !== \"\") {\n dataSend.pools[0].resources.requests.cpu = parseInt(\n fields.tenantSize.resourcesCPURequest\n );\n }\n if (fields.tenantSize.resourcesMemoryRequest !== \"\") {\n dataSend.pools[0].resources.requests.memory = parseInt(\n getBytes(fields.tenantSize.resourcesMemoryRequest, \"Gi\", true)\n );\n }\n }\n // limits\n if (\n fields.tenantSize.resourcesCPULimit !== \"\" ||\n fields.tenantSize.resourcesMemoryLimit !== \"\"\n ) {\n dataSend.pools[0].resources.limits = {};\n if (fields.tenantSize.resourcesCPULimit !== \"\") {\n dataSend.pools[0].resources.limits.cpu = parseInt(\n fields.tenantSize.resourcesCPULimit\n );\n }\n if (fields.tenantSize.resourcesMemoryLimit !== \"\") {\n dataSend.pools[0].resources.limits.memory = parseInt(\n getBytes(fields.tenantSize.resourcesMemoryLimit, \"Gi\", true)\n );\n }\n }\n }\n if (customDockerhub) {\n dataSend = {\n ...dataSend,\n image_registry: {\n registry: imageRegistry,\n username: imageRegistryUsername,\n password: imageRegistryPassword,\n },\n };\n }\n\n if (logSearchEnabled) {\n dataSend = {\n ...dataSend,\n logSearchConfiguration: {\n storageClass:\n logSearchSelectedStorageClass === \"default\"\n ? \"\"\n : logSearchSelectedStorageClass,\n storageSize: parseInt(logSearchVolumeSize),\n image: logSearchImage,\n postgres_image: logSearchPostgresImage,\n postgres_init_image: logSearchPostgresInitImage,\n securityContext: logSearchSecurityContext,\n postgres_securityContext: logSearchPostgresSecurityContext,\n },\n };\n }\n\n if (prometheusEnabled) {\n dataSend = {\n ...dataSend,\n prometheusConfiguration: {\n storageClass:\n prometheusSelectedStorageClass === \"default\"\n ? \"\"\n : prometheusSelectedStorageClass,\n storageSize: parseInt(prometheusVolumeSize),\n image: prometheusImage,\n sidecar_image: prometheusSidecarImage,\n init_image: prometheusInitImage,\n securityContext: prometheusSecurityContext,\n },\n };\n }\n\n let tenantCerts: any = null;\n let consoleCerts: any = null;\n let caCerts: any = null;\n let consoleCaCerts: any = null;\n\n if (caCertificates.length > 0) {\n caCerts = {\n ca_certificates: caCertificates\n .map((keyPair: KeyPair) => keyPair.encoded_cert)\n .filter((keyPair) => keyPair),\n };\n }\n\n if (consoleCaCertificates.length > 0) {\n consoleCaCerts = {\n console_ca_certificates: consoleCaCertificates\n .map((keyPair: KeyPair) => keyPair.encoded_cert)\n .filter((keyPair) => keyPair),\n };\n }\n\n if (enableTLS && minioCertificates.length > 0) {\n tenantCerts = {\n minio: minioCertificates\n .map((keyPair: KeyPair) => ({\n crt: keyPair.encoded_cert,\n key: keyPair.encoded_key,\n }))\n .filter((keyPair) => keyPair.crt && keyPair.key),\n };\n }\n\n if (\n enableTLS &&\n consoleCertificate.encoded_cert !== \"\" &&\n consoleCertificate.encoded_key !== \"\"\n ) {\n consoleCerts = {\n console: {\n crt: consoleCertificate.encoded_cert,\n key: consoleCertificate.encoded_key,\n },\n };\n }\n\n if (tenantCerts || consoleCerts || caCerts || consoleCaCerts) {\n dataSend = {\n ...dataSend,\n tls: {\n ...tenantCerts,\n ...consoleCerts,\n ...caCerts,\n ...consoleCaCerts,\n },\n };\n }\n\n if (enableEncryption) {\n let insertEncrypt = {};\n\n switch (encryptionType) {\n case \"gemalto\":\n let gemaltoCAIntroduce = {};\n\n if (gemaltoCA.encoded_cert !== \"\") {\n gemaltoCAIntroduce = {\n ca: gemaltoCA.encoded_cert,\n };\n }\n insertEncrypt = {\n gemalto: {\n keysecure: {\n endpoint: gemaltoEndpoint,\n credentials: {\n token: gemaltoToken,\n domain: gemaltoDomain,\n retry: parseInt(gemaltoRetry),\n },\n tls: {\n ...gemaltoCAIntroduce,\n },\n },\n },\n };\n break;\n case \"aws\":\n insertEncrypt = {\n aws: {\n secretsmanager: {\n endpoint: awsEndpoint,\n region: awsRegion,\n kmskey: awsKMSKey,\n credentials: {\n accesskey: awsAccessKey,\n secretkey: awsSecretKey,\n token: awsToken,\n },\n },\n },\n };\n break;\n case \"azure\":\n insertEncrypt = {\n azure: {\n keyvault: {\n endpoint: azureEndpoint,\n credentials: {\n tenant_id: azureTenantID,\n client_id: azureClientID,\n client_secret: azureClientSecret,\n },\n },\n },\n };\n break;\n case \"gcp\":\n insertEncrypt = {\n gcp: {\n secretmanager: {\n project_id: gcpProjectID,\n endpoint: gcpEndpoint,\n credentials: {\n client_email: gcpClientEmail,\n client_id: gcpClientID,\n private_key_id: gcpPrivateKeyID,\n private_key: gcpPrivateKey,\n },\n },\n },\n };\n break;\n case \"vault\":\n let vaultKeyPair = null;\n let vaultCAInsert = null;\n if (\n vaultCertificate.encoded_key !== \"\" &&\n vaultCertificate.encoded_cert !== \"\"\n ) {\n vaultKeyPair = {\n key: vaultCertificate.encoded_key,\n crt: vaultCertificate.encoded_cert,\n };\n }\n if (vaultCA.encoded_cert !== \"\") {\n vaultCAInsert = {\n ca: vaultCA.encoded_cert,\n };\n }\n let vaultTLS = null;\n if (vaultKeyPair || vaultCAInsert) {\n vaultTLS = {\n tls: {\n ...vaultKeyPair,\n ...vaultCAInsert,\n },\n };\n }\n insertEncrypt = {\n vault: {\n endpoint: vaultEndpoint,\n engine: vaultEngine,\n namespace: vaultNamespace,\n prefix: vaultPrefix,\n approle: {\n engine: vaultAppRoleEngine,\n id: vaultId,\n secret: vaultSecret,\n retry: parseInt(vaultRetry),\n },\n ...vaultTLS,\n status: {\n ping: parseInt(vaultPing),\n },\n },\n };\n break;\n }\n\n let encryptionServerKeyPair: any = {};\n let encryptionClientKeyPair: any = {};\n\n if (\n clientCertificate.encoded_key !== \"\" &&\n clientCertificate.encoded_cert !== \"\"\n ) {\n encryptionClientKeyPair = {\n client: {\n key: clientCertificate.encoded_key,\n crt: clientCertificate.encoded_cert,\n },\n };\n }\n\n if (\n serverCertificate.encoded_key !== \"\" &&\n serverCertificate.encoded_cert !== \"\"\n ) {\n encryptionServerKeyPair = {\n server: {\n key: serverCertificate.encoded_key,\n crt: serverCertificate.encoded_cert,\n },\n };\n }\n\n dataSend = {\n ...dataSend,\n encryption: {\n replicas: kesReplicas,\n securityContext: kesSecurityContext,\n image: kesImage,\n ...encryptionClientKeyPair,\n ...encryptionServerKeyPair,\n ...insertEncrypt,\n },\n };\n }\n\n let dataIDP: any = {};\n switch (idpSelection) {\n case \"Built-in\":\n let keyarray = [];\n for (let i = 0; i < accessKeys.length; i++) {\n keyarray.push({\n access_key: accessKeys[i],\n secret_key: secretKeys[i],\n });\n }\n dataIDP = {\n keys: keyarray,\n };\n break;\n case \"OpenID\":\n dataIDP = {\n oidc: {\n configuration_url: openIDConfigurationURL,\n client_id: openIDClientID,\n secret_id: openIDSecretID,\n claim_name: openIDClaimName,\n callback_url: openIDCallbackURL,\n scopes: openIDScopes,\n },\n };\n break;\n case \"AD\":\n dataIDP = {\n active_directory: {\n url: ADURL,\n skip_tls_verification: ADSkipTLS,\n server_insecure: ADServerInsecure,\n group_search_base_dn: ADGroupSearchBaseDN,\n group_search_filter: ADGroupSearchFilter,\n user_dns: ADUserDNs,\n lookup_bind_dn: ADLookupBindDN,\n lookup_bind_password: ADLookupBindPassword,\n user_dn_search_base_dn: ADUserDNSearchBaseDN,\n user_dn_search_filter: ADUserDNSearchFilter,\n server_start_tls: ADServerStartTLS,\n },\n };\n break;\n }\n\n dataSend = {\n ...dataSend,\n idp: { ...dataIDP },\n };\n api\n .invoke(\"POST\", `/api/v1/tenants`, dataSend)\n .then((res) => {\n const consoleSAList = get(res, \"console\", []);\n\n let newSrvAcc: NewServiceAccount = {\n idp: get(res, \"externalIDP\", false),\n console: [],\n };\n\n if (consoleSAList) {\n if (Array.isArray(consoleSAList)) {\n const consoleItem = consoleSAList.map((consoleKey) => {\n return {\n accessKey: consoleKey.access_key,\n secretKey: consoleKey.secret_key,\n api: \"s3v4\",\n path: \"auto\",\n url: consoleKey.url,\n };\n });\n\n newSrvAcc.console = consoleItem;\n } else {\n newSrvAcc = {\n console: {\n accessKey: res.console.access_key,\n secretKey: res.console.secret_key,\n url: res.console.url,\n },\n };\n }\n }\n setAddSending(false);\n setShowNewCredentials(true);\n setCreatedAccount(newSrvAcc);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddSending(false);\n setErrorSnackMessage(err);\n });\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [addSending]);\n\n const cancelButton = {\n label: \"Cancel\",\n type: \"other\",\n enabled: true,\n action: () => {\n resetAddTenantForm();\n history.push(\"/tenants\");\n },\n };\n const requiredPages = [\n \"nameTenant\",\n \"tenantSize\",\n \"configure\",\n \"affinity\",\n \"identityProvider\",\n \"security\",\n \"encryption\",\n ];\n const createButton = {\n label: \"Create\",\n type: \"submit\",\n enabled:\n !addSending &&\n selectedStorageClass !== \"\" &&\n requiredPages.every((v) => validPages.includes(v)),\n action: () => {\n setAddSending(true);\n },\n };\n\n const wizardSteps: IWizardElement[] = [\n {\n label: \"Setup\",\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Configure\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Images\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Pod Placement\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Identity Provider\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Security\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Encryption\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Audit Log\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Monitoring\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n ];\n\n let filteredWizardSteps = wizardSteps;\n\n const closeCredentialsModal = () => {\n resetAddTenantForm();\n history.push(\"/tenants\");\n };\n\n return (\n \n {showNewCredentials && (\n {\n closeCredentialsModal();\n }}\n entity=\"Tenant\"\n />\n )}\n \n\n \n {addSending && (\n \n \n \n )}\n\n \n \n \n \n \n \n {formRender === IMkEnvs.aws && (\n \n }\n help={\n \n Performance Optimized: Uses the gp3 EBS storage\n class class configured at 1,000Mi/s throughput and 16,000\n IOPS, however the minimum volume size for this type of EBS\n volume is 32Gi.\n
    \n
    \n Storage Optimized: Uses the sc1 EBS storage\n class, however the minimum volume size for this type of EBS\n volume is  \n 16Ti to unlock their maximum throughput speed of\n 250Mi/s.\n
    \n }\n />\n
    \n )}\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n namespace: state.tenants.createTenant.fields.nameTenant.namespace,\n validPages: state.tenants.createTenant.validPages,\n fields: state.tenants.createTenant.fields,\n certificates: state.tenants.createTenant.certificates,\n selectedStorageClass:\n state.tenants.createTenant.fields.nameTenant.selectedStorageClass,\n features: state.console.session.features,\n tolerations: state.tenants.createTenant.tolerations,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n updateAddField,\n resetAddTenantForm,\n});\n\nexport default withStyles(styles)(connector(AddTenant));\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 { IAffinityModel } from \"../../../../common/types\";\n\nexport const getDefaultAffinity = (tenantName: string, poolName: string) => {\n const defaultAffinity: IAffinityModel = {\n podAntiAffinity: {\n requiredDuringSchedulingIgnoredDuringExecution: [\n {\n labelSelector: {\n matchExpressions: [\n {\n key: \"v1.min.io/tenant\",\n operator: \"In\",\n values: [tenantName],\n },\n {\n key: \"v1.min.io/pool\",\n operator: \"In\",\n values: [poolName],\n },\n ],\n },\n topologyKey: \"kubernetes.io/hostname\",\n },\n ],\n },\n };\n return defaultAffinity;\n};\n\nexport const getNodeSelector = (\n labels: string,\n withPodAntiAffinity: boolean,\n tenantName: string,\n poolName: string\n) => {\n // Labels in the form of key1=value1&key2=value2&key3=value3...\n const splittedLabels = labels.split(\"&\");\n let matchExpressions: any = [];\n\n splittedLabels.forEach((label: string) => {\n const splitKeyValue = label.split(\"=\");\n if (splitKeyValue.length === 2) {\n matchExpressions.push({\n key: splitKeyValue[0],\n operator: \"In\",\n values: [splitKeyValue[1]],\n });\n }\n });\n\n const nodeSelector: IAffinityModel = {\n nodeAffinity: {\n requiredDuringSchedulingIgnoredDuringExecution: {\n nodeSelectorTerms: [\n {\n matchExpressions: matchExpressions,\n },\n ],\n },\n },\n };\n if (withPodAntiAffinity) {\n const def = getDefaultAffinity(tenantName, poolName);\n nodeSelector.podAntiAffinity = def.podAntiAffinity;\n }\n console.log(nodeSelector);\n return nodeSelector;\n};\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
    }\n \n {errorMessage}\n \n
    \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","container","flexFlow","padding","inputWithCopy","inputLabel","fieldBasic","value","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","tooltip","onMouseDown","edge","download","filename","element","document","createElement","setAttribute","encodeURIComponent","style","body","appendChild","click","removeChild","warningBlock","margin","credentialTitle","buttonContainer","textAlign","marginTop","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","promptIcon","newServiceAccount","open","closeModal","entity","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","title","titleIcon","Grid","item","xs","formScrollable","Array","isArray","map","credentialsPair","index","accessKey","secretKey","WarnIcon","RBIconButton","id","consoleExtras","itemMap","url","api","path","JSON","stringify","variant","length","allCredentials","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","fileInputField","fileInputStyles","textBoxContainer","border","onChange","name","disabled","required","error","accept","useState","showFileSelector","setShowSelector","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","placement","HelpIcon","type","e","fileName","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","fileProcess","data","IconButton","component","disableRipple","disableFocusRipple","size","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","pageContentStyles","children","contentSpacer","deleteDialogStyles","isOpen","onCancel","onConfirm","isLoading","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","event","reason","root","titleText","closeContainer","closeButton","content","actions","cancelButton","confirmButton","loading","loadingPosition","startIcon","autoFocus","connector","connect","state","exposeMinIO","tenants","createTenant","fields","configure","exposeConsole","tenantCustom","tenantSecurityContext","updateAddField","isPageValid","configSectionItem","tenantCustomizationFields","marginLeft","containerItem","fieldGroup","createTenantCommon","marginBottom","responsiveSectionItem","fieldSpaceTop","modalBasic","wizardCommon","validationErrors","setValidationErrors","updateField","useCallback","field","useEffect","customAccountValidation","fieldKey","runAsUser","customValidation","parseInt","customValidationMessage","runAsGroup","fsGroup","commonVal","commonFormValidation","Object","keys","cleanValidation","fieldName","clearValidationError","Paper","paperWrapper","headerElement","h3Section","descriptionText","FormSwitchWrapper","checked","multiContainer","InputBoxWrapper","min","runAsNonRoot","idpSelection","identityProvider","accessKeys","secretKeys","openIDConfigurationURL","openIDClientID","openIDSecretID","openIDCallbackURL","openIDClaimName","openIDScopes","ADURL","ADSkipTLS","ADServerInsecure","ADGroupSearchBaseDN","ADGroupSearchFilter","ADUserDNs","ADLookupBindDN","ADLookupBindPassword","ADUserDNSearchBaseDN","ADUserDNSearchFilter","ADServerStartTLS","shortened","gridTemplateColumns","gridGap","buttonTray","overlayAction","protocolRadioOptions","adUserDnRows","formFieldStyles","updateUserField","newUserField","updatePwordField","updateADUserField","newADUserDNsField","customIDPValidation","i","push","pattern","customPatternMessage","inputs","_","Fragment","placeholder","Add","splice","RemoveIcon","getRandomString","Casino","Delete","RadioGroupSelector","currentSelection","selectorOptions","formFieldRow","Typography","gutterBottom","enableTLS","security","enableAutoCert","enableCustomCerts","minioCertificates","certificates","caCertificates","addFileToCaCertificates","deleteCaCertificate","addCaCertificate","addKeyPair","addFileToKeyPair","deleteKeyPair","minioCertificateRows","justifyContent","borderBottom","flex","fileItem","minWidth","minioCertsContainer","minioCACertsRow","rowActions","keyPair","FileSelector","encodedValue","cert","key","AddIcon","replicas","encryption","enableEncryption","encryptionType","gemaltoEndpoint","gemaltoToken","gemaltoDomain","gemaltoRetry","awsEndpoint","awsRegion","awsKMSKey","awsAccessKey","awsSecretKey","awsToken","vaultEndpoint","vaultEngine","vaultNamespace","vaultPrefix","vaultAppRoleEngine","vaultId","vaultSecret","vaultRetry","vaultPing","azureEndpoint","azureTenantID","azureClientID","azureClientSecret","gcpProjectID","gcpEndpoint","gcpClientEmail","gcpClientID","gcpPrivateKeyID","gcpPrivateKey","enableCustomCertsForKES","serverCertificate","clientCertificate","vaultCertificate","vaultCA","gemaltoCA","kesSecurityContext","addFileServerCert","addFileClientCert","addFileVaultCert","addFileVaultCa","addFileGemaltoCa","encryptionTypeOptions","mutualTlsConfig","rightSpacer","responsiveContainer","encryptionAvailable","filter","encoded_key","encoded_cert","encryptionValidation","labelsStyle","fieldsetStyle","firstLevel","legendStyle","effect","onEffectChange","tolerationKey","onTolerationKeyChange","operator","onOperatorChange","onValueChange","tolerationSeconds","onSecondsChange","operatorOptions","effectOptions","ITolerationOperator","ITolerationEffect","SelectWrapper","options","validity","valid","overlayObject","InputUnitMenu","unitSelected","unitsList","podAffinity","affinity","nodeSelectorLabels","withPodAntiAffinity","keyValuePairs","nodeSelectorPairs","tolerations","setModalErrorSnackMessage","setKeyValuePairs","setTolerationInfo","addNewToleration","removeToleration","affinityConfigField","affinityFieldLabel","radioField","affinityLabelKey","affinityLabelValue","affinityRow","setLoading","keyValueMap","setKeyValueMap","keyOptions","setKeyOptions","then","res","k","catch","err","vl","kvp","kvs","a","indexOf","join","splittedLabels","forEach","splitItem","updateToleration","alterToleration","affinityHelpText","newKey","arrCp","assign","v","tol","seconds","storageClasses","customImage","imageName","customDockerhub","imageRegistry","imageRegistryUsername","imageRegistryPassword","prometheusCustom","prometheusEnabled","logSearchCustom","logSearchEnabled","logSearchVolumeSize","logSearchSizeFactor","prometheusVolumeSize","prometheusSizeFactor","logSearchSelectedStorageClass","logSearchImage","kesImage","logSearchPostgresImage","logSearchPostgresInitImage","prometheusSelectedStorageClass","prometheusImage","prometheusSidecarImage","prometheusInitImage","selectedStorageClass","nameTenant","mapDispatchToProps","setErrorSnackMessage","wrapText","wordWrap","namespace","addNamespaceOpen","closeAddNamespaceModalAndRefresh","addNamespaceLoading","setAddNamespaceLoading","ConfirmDialog","LinearProgress","DialogContentText","volumeSize","tenantSize","sizeFactor","drivesPerServer","nodes","memoryNode","resourcesMemoryRequest","ecParity","ecParityChoices","cleanECChoices","resourcesSize","distribution","ecParityCalc","limitSize","cpuToUse","resourcesCPURequest","integrationSelection","table","usableInformation","storageFactors","find","erasureCode","Divider","Table","TableBody","TableRow","TableCell","scope","align","typeSelection","storageClass","disks","niceBytes","pvSize","persistentVolumes","rawCapacity","maxCapacity","Math","floor","maxFailureTolerations","CPU","memory","driveSize","sizeUnit","tenantName","selectedStorageType","features","console","session","setStorageClassesList","setLimitSize","setStorageType","sizePreview","formToRender","IMkEnvs","emptyNamespace","setEmptyNamespace","loadingNamespaceInfo","setLoadingNamespaceInfo","showCreateButton","setShowCreateButton","openAddNSConfirm","setOpenAddNSConfirm","getNamespaceInformation","tenantsList","elements","getLimitSizes","newStorage","stExists","findIndex","detailedError","debounceNamespace","useMemo","debounce","cancel","customNamespaceError","commonValidation","isValid","frmValidationCleanup","refresh","md","minHeight","overlayId","overlayIcon","mkPanelConfigurations","TenantSize","formRender","setFormRender","setConfiguration","resourcesConfigurations","includes","logSearchSecurityContext","logSearchPostgresSecurityContext","logSearchEnabledFields","configureSTClasses","onUnitChange","prometheusSecurityContext","prometheusEnabledFields","validPages","resetAddTenantForm","pageBox","settingsCommon","showNewCredentials","setShowNewCredentials","createdAccount","setCreatedAccount","addSending","setAddSending","consoleCaCertificates","consoleCertificate","affinityType","kesReplicas","tolerationValues","toleration","trim","poolName","generatePoolName","affinityObject","getDefaultAffinity","getNodeSelector","dataSend","access_key","secret_key","access_keys","secret_keys","enable_tls","enable_console","enable_prometheus","service_name","image","expose_minio","expose_console","pools","servers","volumes_per_server","volume_configuration","storage_class_name","securityContext","erasureCodingParity","resourcesCPULimit","resourcesMemoryLimit","resources","requests","cpu","getBytes","limits","image_registry","registry","username","password","logSearchConfiguration","storageSize","postgres_image","postgres_init_image","postgres_securityContext","prometheusConfiguration","sidecar_image","init_image","tenantCerts","consoleCerts","caCerts","consoleCaCerts","ca_certificates","console_ca_certificates","minio","crt","tls","insertEncrypt","gemaltoCAIntroduce","ca","gemalto","keysecure","endpoint","credentials","token","domain","retry","aws","secretsmanager","region","kmskey","accesskey","secretkey","azure","keyvault","tenant_id","client_id","client_secret","gcp","secretmanager","project_id","client_email","private_key_id","private_key","vaultKeyPair","vaultCAInsert","vaultTLS","vault","engine","prefix","approle","secret","status","ping","encryptionServerKeyPair","encryptionClientKeyPair","client","server","dataIDP","keyarray","oidc","configuration_url","secret_id","claim_name","callback_url","scopes","active_directory","skip_tls_verification","server_insecure","group_search_base_dn","group_search_filter","user_dns","lookup_bind_dn","lookup_bind_password","user_dn_search_base_dn","user_dn_search_filter","server_start_tls","consoleSAList","newSrvAcc","consoleItem","consoleKey","enabled","action","history","createButton","every","filteredWizardSteps","componentRender","buttons","advancedOnly","CredentialsPrompt","PageHeader","PageLayout","BackLink","GenericWizard","wizardSteps","HelpBox","iconComponent","help","podAntiAffinity","requiredDuringSchedulingIgnoredDuringExecution","labelSelector","matchExpressions","values","topologyKey","labels","splitKeyValue","nodeSelector","nodeAffinity","nodeSelectorTerms","def","log","errorBlock","main","withBreak"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/247.3b7c3d22.chunk.js b/portal-ui/build/static/js/247.4ea98f6d.chunk.js similarity index 97% rename from portal-ui/build/static/js/247.3b7c3d22.chunk.js rename to portal-ui/build/static/js/247.4ea98f6d.chunk.js index 8ce261dcb..4c8ae56c3 100644 --- a/portal-ui/build/static/js/247.3b7c3d22.chunk.js +++ b/portal-ui/build/static/js/247.4ea98f6d.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[247],{40247:function(e,a,n){n.r(a);var s=n(70885),t=n(1413),l=n(72791),o=n(26181),r=n.n(o),i=n(60364),c=n(61889),d=n(36151),u=n(11135),m=n(25787),g=n(23814),Z=n(42649),p=n(21435),f=n(56028),h=n(81207),x=n(74833),j=n(80184),k={setModalErrorSnackMessage:Z.zb},v=(0,i.$j)((function(e){var a=e.system;return{distributedSetup:r()(a,"distributedSetup",!1)}}),k);a.default=(0,m.Z)((function(e){return(0,u.Z)((0,t.Z)((0,t.Z)((0,t.Z)({},g.DF),g.ID),g.bK))}))(v((function(e){var a=e.modalOpen,n=e.currentTags,o=e.onCloseAndUpdate,r=e.bucketName,i=e.setModalErrorSnackMessage,u=e.classes,m=(0,l.useState)(""),g=(0,s.Z)(m,2),Z=g[0],k=g[1],v=(0,l.useState)(""),b=(0,s.Z)(v,2),N=b[0],C=b[1],S=(0,l.useState)(!1),w=(0,s.Z)(S,2),M=w[0],y=w[1];return(0,j.jsx)(f.Z,{modalOpen:a,title:"Add New Tag ",onClose:function(){o(!1)},titleIcon:(0,j.jsx)(x.OC,{}),children:(0,j.jsxs)(c.ZP,{container:!0,children:[(0,j.jsxs)("div",{className:u.spacerBottom,children:[(0,j.jsx)("strong",{children:"Bucket"}),": ",r]}),(0,j.jsx)(c.ZP,{item:!0,xs:12,className:u.formFieldRow,children:(0,j.jsx)(p.Z,{value:Z,label:"New Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter New Tag Key",onChange:function(e){k(e.target.value)}})}),(0,j.jsx)(c.ZP,{item:!0,xs:12,className:u.formFieldRow,children:(0,j.jsx)(p.Z,{value:N,label:"New Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter New Tag Label",onChange:function(e){C(e.target.value)}})}),(0,j.jsxs)(c.ZP,{item:!0,xs:12,className:u.modalButtonBar,children:[(0,j.jsx)(d.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){C(""),k("")},children:"Clear"}),(0,j.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary",disabled:""===N.trim()||""===Z.trim()||M,onClick:function(){y(!0);var e={};e[Z]=N;var a=(0,t.Z)((0,t.Z)({},n),e);h.Z.invoke("PUT","/api/v1/buckets/".concat(r,"/tags"),{tags:a}).then((function(e){y(!1),o(!0)})).catch((function(e){i(e),y(!1)}))},children:"Save"})]})]})})})))},56028:function(e,a,n){var s=n(70885),t=n(1413),l=n(72791),o=n(60364),r=n(13400),i=n(55646),c=n(5574),d=n(65661),u=n(39157),m=n(11135),g=n(25787),Z=n(23814),p=n(42649),f=n(29823),h=n(28057),x=n(80184),j=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:p.MK});a.Z=(0,g.Z)((function(e){return(0,m.Z)((0,t.Z)((0,t.Z)({},Z.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},Z.sN))}))(j((function(e){var a=e.onClose,n=e.modalOpen,o=e.title,m=e.children,g=e.classes,Z=e.wideLimit,p=void 0===Z||Z,j=e.modalSnackMessage,k=e.noContentPadding,v=e.setModalSnackMessage,b=e.titleIcon,N=void 0===b?null:b,C=(0,l.useState)(!1),S=(0,s.Z)(C,2),w=S[0],M=S[1];(0,l.useEffect)((function(){v("")}),[v]),(0,l.useEffect)((function(){if(j){if(""===j.message)return void M(!1);"error"!==j.type&&M(!0)}}),[j]);var y=p?{classes:{paper:g.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},T="";return j&&(T=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(T=j.message)),(0,x.jsxs)(c.Z,(0,t.Z)((0,t.Z)({open:n,classes:g},y),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&a()},className:g.root,children:[(0,x.jsxs)(d.Z,{className:g.title,children:[(0,x.jsxs)("div",{className:g.titleText,children:[N," ",o]}),(0,x.jsx)("div",{className:g.closeContainer,children:(0,x.jsx)(r.Z,{"aria-label":"close",id:"close",className:g.closeButton,onClick:a,disableRipple:!0,size:"small",children:(0,x.jsx)(f.Z,{})})})]}),(0,x.jsx)(h.Z,{isModal:!0}),(0,x.jsx)(i.Z,{open:w,className:g.snackBarModal,onClose:function(){M(!1),v("")},message:T,ContentProps:{className:"".concat(g.snackBar," ").concat(j&&"error"===j.type?g.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,x.jsx)(u.Z,{className:k?"":g.content,children:m})]}))})))}}]); -//# sourceMappingURL=247.3b7c3d22.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[247],{40247:function(e,a,n){n.r(a);var s=n(70885),t=n(1413),l=n(72791),o=n(26181),r=n.n(o),i=n(60364),c=n(61889),d=n(36151),u=n(11135),m=n(25787),g=n(23814),Z=n(42649),p=n(21435),f=n(56028),h=n(81207),x=n(13048),j=n(80184),k={setModalErrorSnackMessage:Z.zb},v=(0,i.$j)((function(e){var a=e.system;return{distributedSetup:r()(a,"distributedSetup",!1)}}),k);a.default=(0,m.Z)((function(e){return(0,u.Z)((0,t.Z)((0,t.Z)((0,t.Z)({},g.DF),g.ID),g.bK))}))(v((function(e){var a=e.modalOpen,n=e.currentTags,o=e.onCloseAndUpdate,r=e.bucketName,i=e.setModalErrorSnackMessage,u=e.classes,m=(0,l.useState)(""),g=(0,s.Z)(m,2),Z=g[0],k=g[1],v=(0,l.useState)(""),b=(0,s.Z)(v,2),N=b[0],C=b[1],S=(0,l.useState)(!1),w=(0,s.Z)(S,2),M=w[0],y=w[1];return(0,j.jsx)(f.Z,{modalOpen:a,title:"Add New Tag ",onClose:function(){o(!1)},titleIcon:(0,j.jsx)(x.OC,{}),children:(0,j.jsxs)(c.ZP,{container:!0,children:[(0,j.jsxs)("div",{className:u.spacerBottom,children:[(0,j.jsx)("strong",{children:"Bucket"}),": ",r]}),(0,j.jsx)(c.ZP,{item:!0,xs:12,className:u.formFieldRow,children:(0,j.jsx)(p.Z,{value:Z,label:"New Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter New Tag Key",onChange:function(e){k(e.target.value)}})}),(0,j.jsx)(c.ZP,{item:!0,xs:12,className:u.formFieldRow,children:(0,j.jsx)(p.Z,{value:N,label:"New Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter New Tag Label",onChange:function(e){C(e.target.value)}})}),(0,j.jsxs)(c.ZP,{item:!0,xs:12,className:u.modalButtonBar,children:[(0,j.jsx)(d.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){C(""),k("")},children:"Clear"}),(0,j.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary",disabled:""===N.trim()||""===Z.trim()||M,onClick:function(){y(!0);var e={};e[Z]=N;var a=(0,t.Z)((0,t.Z)({},n),e);h.Z.invoke("PUT","/api/v1/buckets/".concat(r,"/tags"),{tags:a}).then((function(e){y(!1),o(!0)})).catch((function(e){i(e),y(!1)}))},children:"Save"})]})]})})})))},56028:function(e,a,n){var s=n(70885),t=n(1413),l=n(72791),o=n(60364),r=n(13400),i=n(55646),c=n(5574),d=n(65661),u=n(39157),m=n(11135),g=n(25787),Z=n(23814),p=n(42649),f=n(29823),h=n(28057),x=n(80184),j=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:p.MK});a.Z=(0,g.Z)((function(e){return(0,m.Z)((0,t.Z)((0,t.Z)({},Z.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},Z.sN))}))(j((function(e){var a=e.onClose,n=e.modalOpen,o=e.title,m=e.children,g=e.classes,Z=e.wideLimit,p=void 0===Z||Z,j=e.modalSnackMessage,k=e.noContentPadding,v=e.setModalSnackMessage,b=e.titleIcon,N=void 0===b?null:b,C=(0,l.useState)(!1),S=(0,s.Z)(C,2),w=S[0],M=S[1];(0,l.useEffect)((function(){v("")}),[v]),(0,l.useEffect)((function(){if(j){if(""===j.message)return void M(!1);"error"!==j.type&&M(!0)}}),[j]);var y=p?{classes:{paper:g.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},T="";return j&&(T=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(T=j.message)),(0,x.jsxs)(c.Z,(0,t.Z)((0,t.Z)({open:n,classes:g},y),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&a()},className:g.root,children:[(0,x.jsxs)(d.Z,{className:g.title,children:[(0,x.jsxs)("div",{className:g.titleText,children:[N," ",o]}),(0,x.jsx)("div",{className:g.closeContainer,children:(0,x.jsx)(r.Z,{"aria-label":"close",id:"close",className:g.closeButton,onClick:a,disableRipple:!0,size:"small",children:(0,x.jsx)(f.Z,{})})})]}),(0,x.jsx)(h.Z,{isModal:!0}),(0,x.jsx)(i.Z,{open:w,className:g.snackBarModal,onClose:function(){M(!1),v("")},message:T,ContentProps:{className:"".concat(g.snackBar," ").concat(j&&"error"===j.type?g.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,x.jsx)(u.Z,{className:k?"":g.content,children:m})]}))})))}}]); +//# sourceMappingURL=247.4ea98f6d.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/247.3b7c3d22.chunk.js.map b/portal-ui/build/static/js/247.4ea98f6d.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/247.3b7c3d22.chunk.js.map rename to portal-ui/build/static/js/247.4ea98f6d.chunk.js.map index 6cbc3705c..f0839f47e 100644 --- a/portal-ui/build/static/js/247.3b7c3d22.chunk.js.map +++ b/portal-ui/build/static/js/247.4ea98f6d.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/247.3b7c3d22.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/AddBucketTagModal.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.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 get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { Button, Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../../common/api\";\nimport { AddNewTagIcon } from \"../../../../icons\";\n\ninterface IBucketTagModal {\n modalOpen: boolean;\n currentTags: any;\n bucketName: string;\n onCloseAndUpdate: (refresh: boolean) => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\nconst AddBucketTagModal = ({\n modalOpen,\n currentTags,\n onCloseAndUpdate,\n bucketName,\n setModalErrorSnackMessage,\n classes,\n}: IBucketTagModal) => {\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\n .invoke(\"PUT\", `/api/v1/buckets/${bucketName}/tags`, {\n tags: newTagList,\n })\n .then((res: any) => {\n setIsSending(false);\n onCloseAndUpdate(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(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 {\n setNewKey(e.target.value);\n }}\n />\n \n \n {\n setNewLabel(e.target.value);\n }}\n />\n \n \n \n Clear\n \n \n Save\n \n \n
    \n \n );\n};\n\nconst mapStateToProps = ({ system }: AppState) => ({\n distributedSetup: get(system, \"distributedSetup\", false),\n});\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(AddBucketTagModal));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n"],"names":["mapDispatchToProps","setModalErrorSnackMessage","connector","connect","system","distributedSetup","get","withStyles","theme","createStyles","formFieldStyles","modalStyleUtils","spacingUtils","modalOpen","currentTags","onCloseAndUpdate","bucketName","classes","useState","newKey","setNewKey","newLabel","setNewLabel","isSending","setIsSending","title","onClose","titleIcon","container","className","spacerBottom","item","xs","formFieldRow","value","label","id","name","placeholder","onChange","e","target","modalButtonBar","type","variant","color","onClick","disabled","trim","newTag","newTagList","api","tags","then","res","catch","error","state","modalSnackMessage","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/247.4ea98f6d.chunk.js","mappings":"+SA6JMA,EAAqB,CACzBC,0BAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,KARM,SAAC,GAAD,IAAGC,EAAH,EAAGA,OAAH,MAA2B,CACjDC,iBAAkBC,GAAAA,CAAIF,EAAQ,oBAAoB,MAOTJ,GAE3C,WAAeO,EAAAA,EAAAA,IAtHA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,0BACRC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,OAkHP,CAAkCV,GA/GR,SAAC,GAOH,IANtBW,EAMqB,EANrBA,UACAC,EAKqB,EALrBA,YACAC,EAIqB,EAJrBA,iBACAC,EAGqB,EAHrBA,WACAf,EAEqB,EAFrBA,0BACAgB,EACqB,EADrBA,QAEA,GAA4BC,EAAAA,EAAAA,UAAiB,IAA7C,eAAOC,EAAP,KAAeC,EAAf,KACA,GAAgCF,EAAAA,EAAAA,UAAiB,IAAjD,eAAOG,EAAP,KAAiBC,EAAjB,KACA,GAAkCJ,EAAAA,EAAAA,WAAkB,GAApD,eAAOK,EAAP,KAAkBC,EAAlB,KA4BA,OACE,SAAC,IAAD,CACEX,UAAWA,EACXY,MAAK,eACLC,QAAS,WACPX,GAAiB,IAEnBY,WAAW,SAAC,KAAD,IANb,UAQE,UAAC,KAAD,CAAMC,WAAS,EAAf,WACE,iBAAKC,UAAWZ,EAAQa,aAAxB,WACE,uCADF,KAC4Bd,MAE5B,SAAC,KAAD,CAAMe,MAAI,EAACC,GAAI,GAAIH,UAAWZ,EAAQgB,aAAtC,UACE,SAAC,IAAD,CACEC,MAAOf,EACPgB,MAAO,cACPC,GAAI,YACJC,KAAM,YACNC,YAAa,oBACbC,SAAU,SAACC,GACTpB,EAAUoB,EAAEC,OAAOP,aAIzB,SAAC,KAAD,CAAMH,MAAI,EAACC,GAAI,GAAIH,UAAWZ,EAAQgB,aAAtC,UACE,SAAC,IAAD,CACEC,MAAOb,EACPc,MAAO,gBACPC,GAAI,cACJC,KAAM,cACNC,YAAa,sBACbC,SAAU,SAACC,GACTlB,EAAYkB,EAAEC,OAAOP,aAI3B,UAAC,KAAD,CAAMH,MAAI,EAACC,GAAI,GAAIH,UAAWZ,EAAQyB,eAAtC,WACE,SAAC,IAAD,CACEC,KAAK,SACLC,QAAQ,WACRC,MAAM,UACNC,QApEQ,WAChBxB,EAAY,IACZF,EAAU,KA8DJ,oBAQA,SAAC,IAAD,CACEuB,KAAK,SACLC,QAAQ,YACRC,MAAM,UACNE,SACsB,KAApB1B,EAAS2B,QAAmC,KAAlB7B,EAAO6B,QAAiBzB,EAEpDuB,QA1EY,WACpBtB,GAAa,GACb,IAAMyB,EAAc,GAEpBA,EAAO9B,GAAUE,EACjB,IAAM6B,GAAU,kBAAQpC,GAAgBmC,GAExCE,EAAAA,EAAAA,OACU,MADV,0BACoCnC,EADpC,SACuD,CACnDoC,KAAMF,IAEPG,MAAK,SAACC,GACL9B,GAAa,GACbT,GAAiB,MAElBwC,OAAM,SAACC,GACNvD,EAA0BuD,GAC1BhC,GAAa,OAkDX,+B,wMCyCJtB,GAAYC,EAAAA,EAAAA,KAJD,SAACsD,GAAD,MAAsB,CACrCC,kBAAmBD,EAAMrD,OAAOuD,iBAGE,CAClCC,qBAAAA,EAAAA,KAGF,KAAerD,EAAAA,EAAAA,IAvIA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACRoD,EAAAA,IADO,IAEVC,QAAS,CACPC,QAAS,GACTC,cAAe,GAEjBC,iBAAkB,CAChBC,MAAO,OACPC,SAAU,MAETC,EAAAA,OA4HP,CAAkClE,GAzHb,SAAC,GAWF,IAVlBwB,EAUiB,EAVjBA,QACAb,EASiB,EATjBA,UACAY,EAQiB,EARjBA,MACA4C,EAOiB,EAPjBA,SACApD,EAMiB,EANjBA,QAMiB,IALjBqD,UAAAA,OAKiB,SAJjBZ,EAIiB,EAJjBA,kBACAa,EAGiB,EAHjBA,iBACAX,EAEiB,EAFjBA,qBAEiB,IADjBjC,UAAAA,OACiB,MADL,KACK,EACjB,GAAwCT,EAAAA,EAAAA,WAAkB,GAA1D,eAAOsD,EAAP,KAAqBC,EAArB,MAEAC,EAAAA,EAAAA,YAAU,WACRd,EAAqB,MACpB,CAACA,KAEJc,EAAAA,EAAAA,YAAU,WACR,GAAIhB,EAAmB,CACrB,GAAkC,KAA9BA,EAAkBiB,QAEpB,YADAF,GAAgB,GAIa,UAA3Bf,EAAkBf,MACpB8B,GAAgB,MAGnB,CAACf,IAEJ,IAKMkB,EAAaN,EACf,CACErD,QAAS,CACP4D,MAAO5D,EAAQgD,mBAGnB,CAAEE,SAAU,KAAeW,WAAW,GAEtCH,EAAU,GAYd,OAVIjB,IACFiB,EAAUjB,EAAkBqB,kBAEa,KAAvCrB,EAAkBqB,kBAClBrB,EAAkBqB,iBAAiBC,OAAS,KAE5CL,EAAUjB,EAAkBiB,WAK9B,UAAC,KAAD,gBACEM,KAAMpE,EACNI,QAASA,GACL2D,GAHN,IAIEM,OAAQ,QACRxD,QAAS,SAACyD,EAAOC,GACA,kBAAXA,GACF1D,KAGJG,UAAWZ,EAAQoE,KAVrB,WAYE,UAAC,IAAD,CAAaxD,UAAWZ,EAAQQ,MAAhC,WACE,iBAAKI,UAAWZ,EAAQqE,UAAxB,UACG3D,EADH,IACeF,MAEf,gBAAKI,UAAWZ,EAAQsE,eAAxB,UACE,SAAC,IAAD,CACE,aAAW,QACXnD,GAAI,QACJP,UAAWZ,EAAQuE,YACnB1C,QAASpB,EACT+D,eAAa,EACbC,KAAK,QANP,UAQE,SAAC,IAAD,YAKN,SAAC,IAAD,CAAWC,SAAS,KACpB,SAAC,IAAD,CACEV,KAAMT,EACN3C,UAAWZ,EAAQ2E,cACnBlE,QAAS,WA3Db+C,GAAgB,GAChBb,EAAqB,KA6DjBe,QAASA,EACTkB,aAAc,CACZhE,UAAU,GAAD,OAAKZ,EAAQ6E,SAAb,YACPpC,GAAgD,UAA3BA,EAAkBf,KACnC1B,EAAQ8E,cACR,KAGRC,iBACEtC,GAAgD,UAA3BA,EAAkBf,KAAmB,IAAQ,OAGtE,SAAC,IAAD,CAAed,UAAW0C,EAAmB,GAAKtD,EAAQ6C,QAA1D,SACGO","sources":["screens/Console/Buckets/BucketDetails/AddBucketTagModal.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.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 get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { Button, Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../../common/api\";\nimport { AddNewTagIcon } from \"../../../../icons\";\n\ninterface IBucketTagModal {\n modalOpen: boolean;\n currentTags: any;\n bucketName: string;\n onCloseAndUpdate: (refresh: boolean) => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\nconst AddBucketTagModal = ({\n modalOpen,\n currentTags,\n onCloseAndUpdate,\n bucketName,\n setModalErrorSnackMessage,\n classes,\n}: IBucketTagModal) => {\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\n .invoke(\"PUT\", `/api/v1/buckets/${bucketName}/tags`, {\n tags: newTagList,\n })\n .then((res: any) => {\n setIsSending(false);\n onCloseAndUpdate(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(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 {\n setNewKey(e.target.value);\n }}\n />\n \n \n {\n setNewLabel(e.target.value);\n }}\n />\n \n \n \n Clear\n \n \n Save\n \n \n
    \n \n );\n};\n\nconst mapStateToProps = ({ system }: AppState) => ({\n distributedSetup: get(system, \"distributedSetup\", false),\n});\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(AddBucketTagModal));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n"],"names":["mapDispatchToProps","setModalErrorSnackMessage","connector","connect","system","distributedSetup","get","withStyles","theme","createStyles","formFieldStyles","modalStyleUtils","spacingUtils","modalOpen","currentTags","onCloseAndUpdate","bucketName","classes","useState","newKey","setNewKey","newLabel","setNewLabel","isSending","setIsSending","title","onClose","titleIcon","container","className","spacerBottom","item","xs","formFieldRow","value","label","id","name","placeholder","onChange","e","target","modalButtonBar","type","variant","color","onClick","disabled","trim","newTag","newTagList","api","tags","then","res","catch","error","state","modalSnackMessage","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2483.363201d7.chunk.js b/portal-ui/build/static/js/2483.916b80fb.chunk.js similarity index 99% rename from portal-ui/build/static/js/2483.363201d7.chunk.js rename to portal-ui/build/static/js/2483.916b80fb.chunk.js index 1d7775757..ce10c25ca 100644 --- a/portal-ui/build/static/js/2483.363201d7.chunk.js +++ b/portal-ui/build/static/js/2483.916b80fb.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2483],{82483:function(e,t,n){n.r(t),n.d(t,{default:function(){return B}});var i,a=n(70885),r=n(1413),o=n(72791),s=n(60364),l=n(63466),c=n(40986),d=n(11135),m=n(72455),h=n(25787),u=n(36151),g=n(27391),p=n(61889);!function(e){e.unknown="unknown",e.form="form",e.redirect="redirect",e.serviceAccount="service-account"}(i||(i={}));var x=n(42649),f=n(81207),v=n(62666),j=n(28789),Z=n(28057),b=n(45248),w=n(74833),S=n(23814),y=n(4708),P=n(80184),N=function(e){return(0,P.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 12 12"},e),{},{children:(0,P.jsx)("path",{id:"Path_7819","data-name":"Path 7819",d:"M9.884,3.523H8.537V2.27A2.417,2.417,0,0,0,6,0,2.417,2.417,0,0,0,3.463,2.27V3.523H2.116A2.019,2.019,0,0,0,0,5.423V9.413a2.012,2.012,0,0,0,2.062,1.9L6,12l3.938-.688A2.012,2.012,0,0,0,12,9.413V5.423a2.019,2.019,0,0,0-2.116-1.9M6.5,7.658v.724a.474.474,0,0,1-.472.474H5.971A.474.474,0,0,1,5.5,8.381V7.658a.9.9,0,0,1-.394-.744h0a.894.894,0,1,1,1.4.744m.985-4.135H4.514V2.27A1.416,1.416,0,0,1,6,.94,1.416,1.416,0,0,1,7.486,2.27Z",fill:"#071d43"})}))},L=function(e){return(0,P.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 9.008 12"},e),{},{children:[(0,P.jsx)("defs",{children:(0,P.jsx)("clipPath",{id:"clip-path",children:(0,P.jsx)("rect",{id:"Rectangle_991","data-name":"Rectangle 991",width:"9.008",height:"12",fill:"#071d43"})})}),(0,P.jsxs)("g",{id:"Group_2365","data-name":"Group 2365",clipPath:"url(#clip-path)",children:[(0,P.jsx)("path",{id:"Path_7088","data-name":"Path 7088",d:"M26.843,6.743a3.4,3.4,0,0,0,3.411-3.372,3.411,3.411,0,0,0-6.822,0,3.4,3.4,0,0,0,3.411,3.372",transform:"translate(-22.334)",fill:"#071d43"}),(0,P.jsx)("path",{id:"Path_7089","data-name":"Path 7089",d:"M8.639,157.057a5.164,5.164,0,0,0-1.957-1.538,5.438,5.438,0,0,0-1.083-.362,5.2,5.2,0,0,0-1.117-.123c-.075,0-.151,0-.225.005H4.231a4.928,4.928,0,0,0-.549.059,5.236,5.236,0,0,0-3.276,1.92c-.029.039-.059.078-.086.116h0a1.723,1.723,0,0,0-.134,1.784,1.583,1.583,0,0,0,.255.356,1.559,1.559,0,0,0,.337.267,1.613,1.613,0,0,0,.4.167,1.742,1.742,0,0,0,.449.058H7.389a1.747,1.747,0,0,0,.452-.058,1.593,1.593,0,0,0,.4-.169,1.524,1.524,0,0,0,.335-.271,1.548,1.548,0,0,0,.251-.361,1.761,1.761,0,0,0-.191-1.85",transform:"translate(0.001 -147.766)",fill:"#071d43"})]})]}))},k=n(25183),A=function(e){return(0,P.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 7.819 7.621"},e),{},{children:(0,P.jsx)("path",{id:"github",d:"M8.543,4.917a4.146,4.146,0,0,1-.038.424,3.8,3.8,0,0,1-.8,1.816,3.982,3.982,0,0,1-.514.542,3.72,3.72,0,0,1-.8.531,4.287,4.287,0,0,1-.471.2.286.286,0,0,1-.149.02.174.174,0,0,1-.153-.163c0-.028,0-.056,0-.084V7.214A1.867,1.867,0,0,0,5.6,6.94a.794.794,0,0,0-.239-.477l.229-.035a2.168,2.168,0,0,0,.821-.291,1.347,1.347,0,0,0,.572-.691,2.291,2.291,0,0,0,.14-.592,2.689,2.689,0,0,0,.01-.488,1.44,1.44,0,0,0-.341-.824L6.747,3.49a.076.076,0,0,1-.007-.013A1.352,1.352,0,0,0,6.7,2.445a.478.478,0,0,0-.317.019,2.726,2.726,0,0,0-.62.289l-.137.086a4.467,4.467,0,0,0-.645-.114,4.047,4.047,0,0,0-.663,0,4.241,4.241,0,0,0-.651.115l-.126-.08a2.786,2.786,0,0,0-.643-.3.5.5,0,0,0-.311-.022,1.364,1.364,0,0,0-.038,1.031l-.154.206a1.392,1.392,0,0,0-.227.6,2.519,2.519,0,0,0,0,.578,2.17,2.17,0,0,0,.178.675,1.356,1.356,0,0,0,.609.65,2.294,2.294,0,0,0,.84.258l.131.02a.874.874,0,0,0-.243.515.793.793,0,0,1-.254.085c-.071.012-.141.014-.212.019a.623.623,0,0,1-.495-.2A1.545,1.545,0,0,1,2.578,6.7c-.047-.061-.084-.128-.135-.185a.8.8,0,0,0-.432-.256.347.347,0,0,0-.189.005.389.389,0,0,0-.048.025.126.126,0,0,0,.049.121.521.521,0,0,0,.112.091.712.712,0,0,1,.188.165,1.542,1.542,0,0,1,.233.41.721.721,0,0,0,.585.456,1.773,1.773,0,0,0,.424.032l.212-.022.083-.01.005.069,0,.527,0,.152a.176.176,0,0,1-.2.165.344.344,0,0,1-.1-.021,3.873,3.873,0,0,1-.74-.341,3.772,3.772,0,0,1-.838-.681,4.309,4.309,0,0,1-.445-.57A3.833,3.833,0,0,1,1,6.16a3.936,3.936,0,0,1-.216-.793L.749,5.079a4.242,4.242,0,0,1,0-.7,3.848,3.848,0,0,1,.57-1.705A3.9,3.9,0,0,1,3.053,1.159,3.716,3.716,0,0,1,4,.878,4.223,4.223,0,0,1,4.768.831a4.158,4.158,0,0,1,.523.047,3.674,3.674,0,0,1,.862.246,3.964,3.964,0,0,1,.975.59,3.793,3.793,0,0,1,.609.629,3.933,3.933,0,0,1,.585,1.066,4.2,4.2,0,0,1,.23,1.136l-.011.372h0Z",transform:"translate(-0.734 -0.829)"})}))},C=n(28182),I=n(72401),E=(0,m.Z)((function(e){return(0,d.Z)({root:{"& .MuiOutlinedInput-root":{paddingLeft:0,"& svg":{marginLeft:4,height:14,color:e.palette.primary.main},"& input":{padding:10,fontSize:14,paddingLeft:0,"&::placeholder":{fontSize:12},"@media (max-width: 900px)":{padding:10}},"& fieldset":{},"& fieldset:hover":{borderBottom:"2px solid #000000",borderRadius:0}}}})}));function T(e){var t=E();return(0,P.jsx)(g.Z,(0,r.Z)({classes:{root:t.root},variant:"standard"},e))}var B=(0,s.$j)((function(e){return{loggedIn:e.loggedIn}}),{userLoggedIn:x.nD,setErrorSnackMessage:x.Ih})((0,h.Z)((function(e){return(0,d.Z)((0,r.Z)({root:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"auto"},form:{width:"100%"},submit:{margin:"30px 0px 8px",height:40,width:"100%",boxShadow:"none",padding:"16px 30px"},learnMore:{textAlign:"center",fontSize:10,"& a":{color:"#2781B0"},"& .min-icon":{marginLeft:12,marginTop:2,width:10}},separator:{marginLeft:8,marginRight:8},linkHolder:{marginTop:20},miniLinks:{margin:"auto",fontSize:10,textAlign:"center",color:"#B2DEF5","& a":{color:"#B2DEF5",textDecoration:"none"},"& .min-icon":{height:10,color:"#B2DEF5"}},miniLogo:{marginTop:8,"& .min-icon":{height:12,paddingTop:2}},loginPage:{height:"100%",margin:"auto"},loginContainer:{flexDirection:"column","& .right-items":{backgroundColor:"white",borderRadius:3,boxShadow:"6px 6px 50",padding:20},"& .consoleTextBanner":{fontWeight:300,fontSize:"calc(3vw + 3vh + 1.5vmin)",lineHeight:1.15,color:"#ffffff",flex:1,textAlign:"center",height:"100%",display:"flex",justifyContent:"flex-start",margin:"auto","& .logoLine":{display:"flex",alignItems:"center",fontSize:18,marginTop:40},"& .left-items":{margin:"auto",paddingTop:100,paddingBottom:60},"& .left-logo":{"& .min-icon":{color:"white",width:108},marginBottom:10},"& .text-line1":{font:" 100 44px 'Lato'"},"& .text-line2":{fontSize:80,fontWeight:100,textTransform:"uppercase"},"& .text-line3":{fontSize:14,fontWeight:"bold"},"& .logo-console":{display:"flex",alignItems:"center","@media (max-width: 900px)":{marginTop:20,flexFlow:"column","& svg":{width:"50%"}}}}},"@media (max-width: 900px)":{loginContainer:{display:"flex",flexFlow:"column","& .consoleTextBanner":{margin:0,flex:2,"& .left-items":{alignItems:"center",textAlign:"center"},"& .logoLine":{justifyContent:"center"}}}},loadingLoginStrategy:{textAlign:"center",width:40,height:40},headerTitle:{marginRight:"auto",marginBottom:15},submitContainer:{textAlign:"right"},linearPredef:{height:10},loaderAlignment:{display:"flex",width:"100%",height:"100%",justifyContent:"center",alignItems:"center",flexDirection:"column"},retryButton:{alignSelf:"flex-end"},loginComponentContainer:{maxWidth:360,width:"100%",alignSelf:"center"}},S.bK))}))((function(e){var t=e.classes,n=e.userLoggedIn,r=e.setErrorSnackMessage,s=(0,o.useState)(""),d=(0,a.Z)(s,2),m=d[0],h=d[1],g=(0,o.useState)(""),x=(0,a.Z)(g,2),S=x[0],E=x[1],B=(0,o.useState)(""),_=(0,a.Z)(B,2),M=_[0],F=_[1],z=(0,o.useState)({loginStrategy:i.unknown,redirect:""}),H=(0,a.Z)(z,2),R=H[0],D=H[1],V=(0,o.useState)(!1),W=(0,a.Z)(V,2),K=W[0],G=W[1],O=(0,o.useState)(!0),Y=(0,a.Z)(O,2),q=Y[0],J=Y[1],U=(0,o.useState)(""),$=(0,a.Z)(U,2),Q=$[0],X=$[1],ee=(0,o.useState)(!0),te=(0,a.Z)(ee,2),ne=te[0],ie=te[1],ae={form:"/api/v1/login","service-account":"/api/v1/login/operator"},re={form:{accessKey:m,secretKey:M},"service-account":{jwt:S}},oe=function(e){e.preventDefault(),G(!0),f.Z.invoke("POST",ae[R.loginStrategy]||"/api/v1/login",re[R.loginStrategy]).then((function(){n(!0),R.loginStrategy===i.form&&localStorage.setItem("userLoggedIn",(0,b.ug)(m));var e="/";localStorage.getItem("redirect-path")&&""!==localStorage.getItem("redirect-path")&&(e="".concat(localStorage.getItem("redirect-path")),localStorage.setItem("redirect-path","")),v.Z.push(e)})).catch((function(e){G(!1),r(e)}))};(0,o.useEffect)((function(){q&&f.Z.invoke("GET","/api/v1/login").then((function(e){D(e),J(!1)})).catch((function(e){r(e),J(!1)}))}),[q,r]),(0,o.useEffect)((function(){ne&&f.Z.invoke("GET","/api/v1/check-version").then((function(e){e.current_version;var t=e.latest_version;X(t),ie(!1)})).catch((function(e){f.Z.invoke("GET","/api/v1/check-operator-version").then((function(e){e.current_version;var t=e.latest_version;X(t),ie(!1)})).catch((function(e){ie(!1)}))}))}),[ne,ie,X]);var se=null;switch(R.loginStrategy){case i.form:se=(0,P.jsx)(o.Fragment,{children:(0,P.jsxs)("form",{className:t.form,noValidate:!0,onSubmit:oe,children:[(0,P.jsxs)(p.ZP,{container:!0,spacing:2,children:[(0,P.jsx)(p.ZP,{item:!0,xs:12,className:t.spacerBottom,children:(0,P.jsx)(T,{fullWidth:!0,id:"accessKey",className:t.inputField,value:m,onChange:function(e){return h(e.target.value)},placeholder:"Username",name:"accessKey",autoComplete:"username",disabled:K,variant:"outlined",InputProps:{startAdornment:(0,P.jsx)(l.Z,{position:"start",className:t.iconColor,children:(0,P.jsx)(L,{})})}})}),(0,P.jsx)(p.ZP,{item:!0,xs:12,children:(0,P.jsx)(T,{fullWidth:!0,className:t.inputField,value:M,onChange:function(e){return F(e.target.value)},name:"secretKey",type:"password",id:"secretKey",autoComplete:"current-password",disabled:K,placeholder:"Password",variant:"outlined",InputProps:{startAdornment:(0,P.jsx)(l.Z,{position:"start",className:t.iconColor,children:(0,P.jsx)(N,{})})}})})]}),(0,P.jsx)(p.ZP,{item:!0,xs:12,className:t.submitContainer,children:(0,P.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",id:"do-login",className:t.submit,disabled:""===M||""===m||K,children:"Login"})}),(0,P.jsx)(p.ZP,{item:!0,xs:12,className:t.linearPredef,children:K&&(0,P.jsx)(c.Z,{})})]})});break;case i.redirect:se=(0,P.jsx)(o.Fragment,{children:(0,P.jsx)(u.Z,{component:"a",href:R.redirect,type:"submit",variant:"contained",color:"primary",id:"sso-login",className:t.submit,children:"Login with SSO"})});break;case i.serviceAccount:se=(0,P.jsx)(o.Fragment,{children:(0,P.jsxs)("form",{className:t.form,noValidate:!0,onSubmit:oe,children:[(0,P.jsx)(p.ZP,{container:!0,spacing:2,children:(0,P.jsx)(p.ZP,{item:!0,xs:12,children:(0,P.jsx)(T,{required:!0,className:t.inputField,fullWidth:!0,id:"jwt",value:S,onChange:function(e){return E(e.target.value)},name:"jwt",autoComplete:"off",disabled:K,placeholder:"Enter JWT",variant:"outlined",InputProps:{startAdornment:(0,P.jsx)(l.Z,{position:"start",children:(0,P.jsx)(w.mB,{})})}})})}),(0,P.jsx)(p.ZP,{item:!0,xs:12,className:t.submitContainer,children:(0,P.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",id:"do-login",className:t.submit,disabled:""===S||K,children:"Login"})}),(0,P.jsx)(p.ZP,{item:!0,xs:12,className:t.linearPredef,children:K&&(0,P.jsx)(c.Z,{})})]})});break;default:se=(0,P.jsx)("div",{className:t.loaderAlignment,children:q?(0,P.jsx)(I.Z,{className:t.loadingLoginStrategy}):(0,P.jsxs)(o.Fragment,{children:[(0,P.jsx)("div",{children:(0,P.jsxs)("p",{style:{color:"#000",textAlign:"center"},children:["An error has occurred",(0,P.jsx)("br",{}),"The backend cannot be reached."]})}),(0,P.jsx)("div",{children:(0,P.jsx)(u.Z,{onClick:function(){J(!0)},endIcon:(0,P.jsx)(j.default,{}),color:"primary",variant:"outlined",id:"retry",className:t.retryButton,children:"Retry"})})]})})}var le=R.loginStrategy===i.serviceAccount?"Operator":"Console";return(0,P.jsxs)("div",{className:t.root,children:[(0,P.jsx)(y.ZP,{}),(0,P.jsx)(Z.Z,{}),(0,P.jsx)("div",{className:t.loginPage,children:(0,P.jsxs)(p.ZP,{container:!0,className:t.loginContainer,children:[(0,P.jsx)(p.ZP,{item:!0,className:"consoleTextBanner",xs:12,children:(0,P.jsxs)("div",{className:"left-items",children:[(0,P.jsx)("div",{className:"left-logo",children:(0,P.jsx)(w.BH,{})}),(0,P.jsx)("div",{className:"text-line2",children:le}),(0,P.jsx)("div",{className:"text-line3",children:"Multi-Cloud Object Storage"})]})}),(0,P.jsxs)(p.ZP,{item:!0,className:"right-items ".concat(t.loginComponentContainer),xs:12,children:[se,(0,P.jsx)("div",{className:t.learnMore,children:(0,P.jsxs)("a",{href:"https://docs.min.io/minio/baremetal/console/minio-console.html?ref=con",target:"_blank",rel:"noreferrer",children:["Learn more about Console ",(0,P.jsx)(w.LZ,{})]})})]}),(0,P.jsxs)(p.ZP,{item:!0,xs:12,className:t.linkHolder,children:[(0,P.jsxs)("div",{className:t.miniLinks,children:[(0,P.jsxs)("a",{href:"https://docs.min.io/?ref=con",target:"_blank",rel:"noreferrer",children:[(0,P.jsx)(w.cY,{})," Documentation"]}),(0,P.jsx)("span",{className:t.separator,children:"|"}),(0,P.jsxs)("a",{href:"https://github.com/minio/minio",target:"_blank",rel:"noreferrer",children:[(0,P.jsx)(A,{})," Github"]}),(0,P.jsx)("span",{className:t.separator,children:"|"}),(0,P.jsxs)("a",{href:"https://subnet.min.io/?ref=con",target:"_blank",rel:"noreferrer",children:[(0,P.jsx)(k.aw,{})," Support"]}),(0,P.jsx)("span",{className:t.separator,children:"|"}),(0,P.jsxs)("a",{href:"https://min.io/download/?ref=con",target:"_blank",rel:"noreferrer",children:[(0,P.jsx)(w._8,{})," Download"]})]}),(0,P.jsx)("div",{className:(0,C.Z)(t.miniLinks,t.miniLogo),children:(0,P.jsxs)("a",{href:"https://github.com/minio/minio/releases",target:"_blank",rel:"noreferrer",style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:20},children:[(0,P.jsx)(w.YE,{})," Latest Version"," ",!ne&&""!==Q&&(0,P.jsx)(o.Fragment,{children:Q})]})})]})]})})]})})))},63466:function(e,t,n){n.d(t,{Z:function(){return w}});var i=n(4942),a=n(63366),r=n(87462),o=n(72791),s=n(28182),l=n(90767),c=n(14036),d=n(20890),m=n(93840),h=n(52930),u=n(47630),g=n(95159);function p(e){return(0,g.Z)("MuiInputAdornment",e)}var x,f=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),v=n(93736),j=n(80184),Z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],b=(0,u.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["position".concat((0,c.Z)(n.position))],!0===n.disablePointerEvents&&t.disablePointerEvents,t[n.variant]]}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:t.palette.action.active},"filled"===n.variant&&(0,i.Z)({},"&.".concat(f.positionStart,"&:not(.").concat(f.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),w=o.forwardRef((function(e,t){var n=(0,v.Z)({props:e,name:"MuiInputAdornment"}),i=n.children,u=n.className,g=n.component,f=void 0===g?"div":g,w=n.disablePointerEvents,S=void 0!==w&&w,y=n.disableTypography,P=void 0!==y&&y,N=n.position,L=n.variant,k=(0,a.Z)(n,Z),A=(0,h.Z)()||{},C=L;L&&A.variant,A&&!C&&(C=A.variant);var I=(0,r.Z)({},n,{hiddenLabel:A.hiddenLabel,size:A.size,disablePointerEvents:S,position:N,variant:C}),E=function(e){var t=e.classes,n=e.disablePointerEvents,i=e.hiddenLabel,a=e.position,r=e.size,o=e.variant,s={root:["root",n&&"disablePointerEvents",a&&"position".concat((0,c.Z)(a)),o,i&&"hiddenLabel",r&&"size".concat((0,c.Z)(r))]};return(0,l.Z)(s,p,t)}(I);return(0,j.jsx)(m.Z.Provider,{value:null,children:(0,j.jsx)(b,(0,r.Z)({as:f,ownerState:I,className:(0,s.Z)(E.root,u),ref:t},k,{children:"string"!==typeof i||P?(0,j.jsxs)(o.Fragment,{children:["start"===N?x||(x=(0,j.jsx)("span",{className:"notranslate",children:"\u200b"})):null,i]}):(0,j.jsx)(d.Z,{color:"text.secondary",children:i})}))})}))}}]); -//# sourceMappingURL=2483.363201d7.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2483],{82483:function(e,t,n){n.r(t),n.d(t,{default:function(){return B}});var i,a=n(70885),r=n(1413),o=n(72791),s=n(60364),l=n(63466),c=n(40986),d=n(11135),m=n(72455),h=n(25787),u=n(36151),g=n(27391),p=n(61889);!function(e){e.unknown="unknown",e.form="form",e.redirect="redirect",e.serviceAccount="service-account"}(i||(i={}));var x=n(42649),f=n(81207),v=n(62666),j=n(28789),Z=n(28057),b=n(45248),w=n(13048),S=n(23814),y=n(4708),P=n(80184),N=function(e){return(0,P.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 12 12"},e),{},{children:(0,P.jsx)("path",{id:"Path_7819","data-name":"Path 7819",d:"M9.884,3.523H8.537V2.27A2.417,2.417,0,0,0,6,0,2.417,2.417,0,0,0,3.463,2.27V3.523H2.116A2.019,2.019,0,0,0,0,5.423V9.413a2.012,2.012,0,0,0,2.062,1.9L6,12l3.938-.688A2.012,2.012,0,0,0,12,9.413V5.423a2.019,2.019,0,0,0-2.116-1.9M6.5,7.658v.724a.474.474,0,0,1-.472.474H5.971A.474.474,0,0,1,5.5,8.381V7.658a.9.9,0,0,1-.394-.744h0a.894.894,0,1,1,1.4.744m.985-4.135H4.514V2.27A1.416,1.416,0,0,1,6,.94,1.416,1.416,0,0,1,7.486,2.27Z",fill:"#071d43"})}))},L=function(e){return(0,P.jsxs)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 9.008 12"},e),{},{children:[(0,P.jsx)("defs",{children:(0,P.jsx)("clipPath",{id:"clip-path",children:(0,P.jsx)("rect",{id:"Rectangle_991","data-name":"Rectangle 991",width:"9.008",height:"12",fill:"#071d43"})})}),(0,P.jsxs)("g",{id:"Group_2365","data-name":"Group 2365",clipPath:"url(#clip-path)",children:[(0,P.jsx)("path",{id:"Path_7088","data-name":"Path 7088",d:"M26.843,6.743a3.4,3.4,0,0,0,3.411-3.372,3.411,3.411,0,0,0-6.822,0,3.4,3.4,0,0,0,3.411,3.372",transform:"translate(-22.334)",fill:"#071d43"}),(0,P.jsx)("path",{id:"Path_7089","data-name":"Path 7089",d:"M8.639,157.057a5.164,5.164,0,0,0-1.957-1.538,5.438,5.438,0,0,0-1.083-.362,5.2,5.2,0,0,0-1.117-.123c-.075,0-.151,0-.225.005H4.231a4.928,4.928,0,0,0-.549.059,5.236,5.236,0,0,0-3.276,1.92c-.029.039-.059.078-.086.116h0a1.723,1.723,0,0,0-.134,1.784,1.583,1.583,0,0,0,.255.356,1.559,1.559,0,0,0,.337.267,1.613,1.613,0,0,0,.4.167,1.742,1.742,0,0,0,.449.058H7.389a1.747,1.747,0,0,0,.452-.058,1.593,1.593,0,0,0,.4-.169,1.524,1.524,0,0,0,.335-.271,1.548,1.548,0,0,0,.251-.361,1.761,1.761,0,0,0-.191-1.85",transform:"translate(0.001 -147.766)",fill:"#071d43"})]})]}))},k=n(25183),A=function(e){return(0,P.jsx)("svg",(0,r.Z)((0,r.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 7.819 7.621"},e),{},{children:(0,P.jsx)("path",{id:"github",d:"M8.543,4.917a4.146,4.146,0,0,1-.038.424,3.8,3.8,0,0,1-.8,1.816,3.982,3.982,0,0,1-.514.542,3.72,3.72,0,0,1-.8.531,4.287,4.287,0,0,1-.471.2.286.286,0,0,1-.149.02.174.174,0,0,1-.153-.163c0-.028,0-.056,0-.084V7.214A1.867,1.867,0,0,0,5.6,6.94a.794.794,0,0,0-.239-.477l.229-.035a2.168,2.168,0,0,0,.821-.291,1.347,1.347,0,0,0,.572-.691,2.291,2.291,0,0,0,.14-.592,2.689,2.689,0,0,0,.01-.488,1.44,1.44,0,0,0-.341-.824L6.747,3.49a.076.076,0,0,1-.007-.013A1.352,1.352,0,0,0,6.7,2.445a.478.478,0,0,0-.317.019,2.726,2.726,0,0,0-.62.289l-.137.086a4.467,4.467,0,0,0-.645-.114,4.047,4.047,0,0,0-.663,0,4.241,4.241,0,0,0-.651.115l-.126-.08a2.786,2.786,0,0,0-.643-.3.5.5,0,0,0-.311-.022,1.364,1.364,0,0,0-.038,1.031l-.154.206a1.392,1.392,0,0,0-.227.6,2.519,2.519,0,0,0,0,.578,2.17,2.17,0,0,0,.178.675,1.356,1.356,0,0,0,.609.65,2.294,2.294,0,0,0,.84.258l.131.02a.874.874,0,0,0-.243.515.793.793,0,0,1-.254.085c-.071.012-.141.014-.212.019a.623.623,0,0,1-.495-.2A1.545,1.545,0,0,1,2.578,6.7c-.047-.061-.084-.128-.135-.185a.8.8,0,0,0-.432-.256.347.347,0,0,0-.189.005.389.389,0,0,0-.048.025.126.126,0,0,0,.049.121.521.521,0,0,0,.112.091.712.712,0,0,1,.188.165,1.542,1.542,0,0,1,.233.41.721.721,0,0,0,.585.456,1.773,1.773,0,0,0,.424.032l.212-.022.083-.01.005.069,0,.527,0,.152a.176.176,0,0,1-.2.165.344.344,0,0,1-.1-.021,3.873,3.873,0,0,1-.74-.341,3.772,3.772,0,0,1-.838-.681,4.309,4.309,0,0,1-.445-.57A3.833,3.833,0,0,1,1,6.16a3.936,3.936,0,0,1-.216-.793L.749,5.079a4.242,4.242,0,0,1,0-.7,3.848,3.848,0,0,1,.57-1.705A3.9,3.9,0,0,1,3.053,1.159,3.716,3.716,0,0,1,4,.878,4.223,4.223,0,0,1,4.768.831a4.158,4.158,0,0,1,.523.047,3.674,3.674,0,0,1,.862.246,3.964,3.964,0,0,1,.975.59,3.793,3.793,0,0,1,.609.629,3.933,3.933,0,0,1,.585,1.066,4.2,4.2,0,0,1,.23,1.136l-.011.372h0Z",transform:"translate(-0.734 -0.829)"})}))},C=n(28182),I=n(72401),E=(0,m.Z)((function(e){return(0,d.Z)({root:{"& .MuiOutlinedInput-root":{paddingLeft:0,"& svg":{marginLeft:4,height:14,color:e.palette.primary.main},"& input":{padding:10,fontSize:14,paddingLeft:0,"&::placeholder":{fontSize:12},"@media (max-width: 900px)":{padding:10}},"& fieldset":{},"& fieldset:hover":{borderBottom:"2px solid #000000",borderRadius:0}}}})}));function T(e){var t=E();return(0,P.jsx)(g.Z,(0,r.Z)({classes:{root:t.root},variant:"standard"},e))}var B=(0,s.$j)((function(e){return{loggedIn:e.loggedIn}}),{userLoggedIn:x.nD,setErrorSnackMessage:x.Ih})((0,h.Z)((function(e){return(0,d.Z)((0,r.Z)({root:{position:"absolute",top:0,left:0,width:"100%",height:"100%",overflow:"auto"},form:{width:"100%"},submit:{margin:"30px 0px 8px",height:40,width:"100%",boxShadow:"none",padding:"16px 30px"},learnMore:{textAlign:"center",fontSize:10,"& a":{color:"#2781B0"},"& .min-icon":{marginLeft:12,marginTop:2,width:10}},separator:{marginLeft:8,marginRight:8},linkHolder:{marginTop:20},miniLinks:{margin:"auto",fontSize:10,textAlign:"center",color:"#B2DEF5","& a":{color:"#B2DEF5",textDecoration:"none"},"& .min-icon":{height:10,color:"#B2DEF5"}},miniLogo:{marginTop:8,"& .min-icon":{height:12,paddingTop:2}},loginPage:{height:"100%",margin:"auto"},loginContainer:{flexDirection:"column","& .right-items":{backgroundColor:"white",borderRadius:3,boxShadow:"6px 6px 50",padding:20},"& .consoleTextBanner":{fontWeight:300,fontSize:"calc(3vw + 3vh + 1.5vmin)",lineHeight:1.15,color:"#ffffff",flex:1,textAlign:"center",height:"100%",display:"flex",justifyContent:"flex-start",margin:"auto","& .logoLine":{display:"flex",alignItems:"center",fontSize:18,marginTop:40},"& .left-items":{margin:"auto",paddingTop:100,paddingBottom:60},"& .left-logo":{"& .min-icon":{color:"white",width:108},marginBottom:10},"& .text-line1":{font:" 100 44px 'Lato'"},"& .text-line2":{fontSize:80,fontWeight:100,textTransform:"uppercase"},"& .text-line3":{fontSize:14,fontWeight:"bold"},"& .logo-console":{display:"flex",alignItems:"center","@media (max-width: 900px)":{marginTop:20,flexFlow:"column","& svg":{width:"50%"}}}}},"@media (max-width: 900px)":{loginContainer:{display:"flex",flexFlow:"column","& .consoleTextBanner":{margin:0,flex:2,"& .left-items":{alignItems:"center",textAlign:"center"},"& .logoLine":{justifyContent:"center"}}}},loadingLoginStrategy:{textAlign:"center",width:40,height:40},headerTitle:{marginRight:"auto",marginBottom:15},submitContainer:{textAlign:"right"},linearPredef:{height:10},loaderAlignment:{display:"flex",width:"100%",height:"100%",justifyContent:"center",alignItems:"center",flexDirection:"column"},retryButton:{alignSelf:"flex-end"},loginComponentContainer:{maxWidth:360,width:"100%",alignSelf:"center"}},S.bK))}))((function(e){var t=e.classes,n=e.userLoggedIn,r=e.setErrorSnackMessage,s=(0,o.useState)(""),d=(0,a.Z)(s,2),m=d[0],h=d[1],g=(0,o.useState)(""),x=(0,a.Z)(g,2),S=x[0],E=x[1],B=(0,o.useState)(""),_=(0,a.Z)(B,2),M=_[0],F=_[1],z=(0,o.useState)({loginStrategy:i.unknown,redirect:""}),H=(0,a.Z)(z,2),R=H[0],D=H[1],V=(0,o.useState)(!1),W=(0,a.Z)(V,2),K=W[0],G=W[1],O=(0,o.useState)(!0),Y=(0,a.Z)(O,2),q=Y[0],J=Y[1],U=(0,o.useState)(""),$=(0,a.Z)(U,2),Q=$[0],X=$[1],ee=(0,o.useState)(!0),te=(0,a.Z)(ee,2),ne=te[0],ie=te[1],ae={form:"/api/v1/login","service-account":"/api/v1/login/operator"},re={form:{accessKey:m,secretKey:M},"service-account":{jwt:S}},oe=function(e){e.preventDefault(),G(!0),f.Z.invoke("POST",ae[R.loginStrategy]||"/api/v1/login",re[R.loginStrategy]).then((function(){n(!0),R.loginStrategy===i.form&&localStorage.setItem("userLoggedIn",(0,b.ug)(m));var e="/";localStorage.getItem("redirect-path")&&""!==localStorage.getItem("redirect-path")&&(e="".concat(localStorage.getItem("redirect-path")),localStorage.setItem("redirect-path","")),v.Z.push(e)})).catch((function(e){G(!1),r(e)}))};(0,o.useEffect)((function(){q&&f.Z.invoke("GET","/api/v1/login").then((function(e){D(e),J(!1)})).catch((function(e){r(e),J(!1)}))}),[q,r]),(0,o.useEffect)((function(){ne&&f.Z.invoke("GET","/api/v1/check-version").then((function(e){e.current_version;var t=e.latest_version;X(t),ie(!1)})).catch((function(e){f.Z.invoke("GET","/api/v1/check-operator-version").then((function(e){e.current_version;var t=e.latest_version;X(t),ie(!1)})).catch((function(e){ie(!1)}))}))}),[ne,ie,X]);var se=null;switch(R.loginStrategy){case i.form:se=(0,P.jsx)(o.Fragment,{children:(0,P.jsxs)("form",{className:t.form,noValidate:!0,onSubmit:oe,children:[(0,P.jsxs)(p.ZP,{container:!0,spacing:2,children:[(0,P.jsx)(p.ZP,{item:!0,xs:12,className:t.spacerBottom,children:(0,P.jsx)(T,{fullWidth:!0,id:"accessKey",className:t.inputField,value:m,onChange:function(e){return h(e.target.value)},placeholder:"Username",name:"accessKey",autoComplete:"username",disabled:K,variant:"outlined",InputProps:{startAdornment:(0,P.jsx)(l.Z,{position:"start",className:t.iconColor,children:(0,P.jsx)(L,{})})}})}),(0,P.jsx)(p.ZP,{item:!0,xs:12,children:(0,P.jsx)(T,{fullWidth:!0,className:t.inputField,value:M,onChange:function(e){return F(e.target.value)},name:"secretKey",type:"password",id:"secretKey",autoComplete:"current-password",disabled:K,placeholder:"Password",variant:"outlined",InputProps:{startAdornment:(0,P.jsx)(l.Z,{position:"start",className:t.iconColor,children:(0,P.jsx)(N,{})})}})})]}),(0,P.jsx)(p.ZP,{item:!0,xs:12,className:t.submitContainer,children:(0,P.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",id:"do-login",className:t.submit,disabled:""===M||""===m||K,children:"Login"})}),(0,P.jsx)(p.ZP,{item:!0,xs:12,className:t.linearPredef,children:K&&(0,P.jsx)(c.Z,{})})]})});break;case i.redirect:se=(0,P.jsx)(o.Fragment,{children:(0,P.jsx)(u.Z,{component:"a",href:R.redirect,type:"submit",variant:"contained",color:"primary",id:"sso-login",className:t.submit,children:"Login with SSO"})});break;case i.serviceAccount:se=(0,P.jsx)(o.Fragment,{children:(0,P.jsxs)("form",{className:t.form,noValidate:!0,onSubmit:oe,children:[(0,P.jsx)(p.ZP,{container:!0,spacing:2,children:(0,P.jsx)(p.ZP,{item:!0,xs:12,children:(0,P.jsx)(T,{required:!0,className:t.inputField,fullWidth:!0,id:"jwt",value:S,onChange:function(e){return E(e.target.value)},name:"jwt",autoComplete:"off",disabled:K,placeholder:"Enter JWT",variant:"outlined",InputProps:{startAdornment:(0,P.jsx)(l.Z,{position:"start",children:(0,P.jsx)(w.mB,{})})}})})}),(0,P.jsx)(p.ZP,{item:!0,xs:12,className:t.submitContainer,children:(0,P.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",id:"do-login",className:t.submit,disabled:""===S||K,children:"Login"})}),(0,P.jsx)(p.ZP,{item:!0,xs:12,className:t.linearPredef,children:K&&(0,P.jsx)(c.Z,{})})]})});break;default:se=(0,P.jsx)("div",{className:t.loaderAlignment,children:q?(0,P.jsx)(I.Z,{className:t.loadingLoginStrategy}):(0,P.jsxs)(o.Fragment,{children:[(0,P.jsx)("div",{children:(0,P.jsxs)("p",{style:{color:"#000",textAlign:"center"},children:["An error has occurred",(0,P.jsx)("br",{}),"The backend cannot be reached."]})}),(0,P.jsx)("div",{children:(0,P.jsx)(u.Z,{onClick:function(){J(!0)},endIcon:(0,P.jsx)(j.default,{}),color:"primary",variant:"outlined",id:"retry",className:t.retryButton,children:"Retry"})})]})})}var le=R.loginStrategy===i.serviceAccount?"Operator":"Console";return(0,P.jsxs)("div",{className:t.root,children:[(0,P.jsx)(y.ZP,{}),(0,P.jsx)(Z.Z,{}),(0,P.jsx)("div",{className:t.loginPage,children:(0,P.jsxs)(p.ZP,{container:!0,className:t.loginContainer,children:[(0,P.jsx)(p.ZP,{item:!0,className:"consoleTextBanner",xs:12,children:(0,P.jsxs)("div",{className:"left-items",children:[(0,P.jsx)("div",{className:"left-logo",children:(0,P.jsx)(w.BH,{})}),(0,P.jsx)("div",{className:"text-line2",children:le}),(0,P.jsx)("div",{className:"text-line3",children:"Multi-Cloud Object Storage"})]})}),(0,P.jsxs)(p.ZP,{item:!0,className:"right-items ".concat(t.loginComponentContainer),xs:12,children:[se,(0,P.jsx)("div",{className:t.learnMore,children:(0,P.jsxs)("a",{href:"https://docs.min.io/minio/baremetal/console/minio-console.html?ref=con",target:"_blank",rel:"noreferrer",children:["Learn more about Console ",(0,P.jsx)(w.LZ,{})]})})]}),(0,P.jsxs)(p.ZP,{item:!0,xs:12,className:t.linkHolder,children:[(0,P.jsxs)("div",{className:t.miniLinks,children:[(0,P.jsxs)("a",{href:"https://docs.min.io/?ref=con",target:"_blank",rel:"noreferrer",children:[(0,P.jsx)(w.cY,{})," Documentation"]}),(0,P.jsx)("span",{className:t.separator,children:"|"}),(0,P.jsxs)("a",{href:"https://github.com/minio/minio",target:"_blank",rel:"noreferrer",children:[(0,P.jsx)(A,{})," Github"]}),(0,P.jsx)("span",{className:t.separator,children:"|"}),(0,P.jsxs)("a",{href:"https://subnet.min.io/?ref=con",target:"_blank",rel:"noreferrer",children:[(0,P.jsx)(k.aw,{})," Support"]}),(0,P.jsx)("span",{className:t.separator,children:"|"}),(0,P.jsxs)("a",{href:"https://min.io/download/?ref=con",target:"_blank",rel:"noreferrer",children:[(0,P.jsx)(w._8,{})," Download"]})]}),(0,P.jsx)("div",{className:(0,C.Z)(t.miniLinks,t.miniLogo),children:(0,P.jsxs)("a",{href:"https://github.com/minio/minio/releases",target:"_blank",rel:"noreferrer",style:{display:"flex",alignItems:"center",justifyContent:"center",marginBottom:20},children:[(0,P.jsx)(w.YE,{})," Latest Version"," ",!ne&&""!==Q&&(0,P.jsx)(o.Fragment,{children:Q})]})})]})]})})]})})))},63466:function(e,t,n){n.d(t,{Z:function(){return w}});var i=n(4942),a=n(63366),r=n(87462),o=n(72791),s=n(28182),l=n(90767),c=n(14036),d=n(20890),m=n(93840),h=n(52930),u=n(47630),g=n(95159);function p(e){return(0,g.Z)("MuiInputAdornment",e)}var x,f=(0,n(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),v=n(93736),j=n(80184),Z=["children","className","component","disablePointerEvents","disableTypography","position","variant"],b=(0,u.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,t["position".concat((0,c.Z)(n.position))],!0===n.disablePointerEvents&&t.disablePointerEvents,t[n.variant]]}})((function(e){var t=e.theme,n=e.ownerState;return(0,r.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:t.palette.action.active},"filled"===n.variant&&(0,i.Z)({},"&.".concat(f.positionStart,"&:not(.").concat(f.hiddenLabel,")"),{marginTop:16}),"start"===n.position&&{marginRight:8},"end"===n.position&&{marginLeft:8},!0===n.disablePointerEvents&&{pointerEvents:"none"})})),w=o.forwardRef((function(e,t){var n=(0,v.Z)({props:e,name:"MuiInputAdornment"}),i=n.children,u=n.className,g=n.component,f=void 0===g?"div":g,w=n.disablePointerEvents,S=void 0!==w&&w,y=n.disableTypography,P=void 0!==y&&y,N=n.position,L=n.variant,k=(0,a.Z)(n,Z),A=(0,h.Z)()||{},C=L;L&&A.variant,A&&!C&&(C=A.variant);var I=(0,r.Z)({},n,{hiddenLabel:A.hiddenLabel,size:A.size,disablePointerEvents:S,position:N,variant:C}),E=function(e){var t=e.classes,n=e.disablePointerEvents,i=e.hiddenLabel,a=e.position,r=e.size,o=e.variant,s={root:["root",n&&"disablePointerEvents",a&&"position".concat((0,c.Z)(a)),o,i&&"hiddenLabel",r&&"size".concat((0,c.Z)(r))]};return(0,l.Z)(s,p,t)}(I);return(0,j.jsx)(m.Z.Provider,{value:null,children:(0,j.jsx)(b,(0,r.Z)({as:f,ownerState:I,className:(0,s.Z)(E.root,u),ref:t},k,{children:"string"!==typeof i||P?(0,j.jsxs)(o.Fragment,{children:["start"===N?x||(x=(0,j.jsx)("span",{className:"notranslate",children:"\u200b"})):null,i]}):(0,j.jsx)(d.Z,{color:"text.secondary",children:i})}))})}))}}]); +//# sourceMappingURL=2483.916b80fb.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2483.363201d7.chunk.js.map b/portal-ui/build/static/js/2483.916b80fb.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/2483.363201d7.chunk.js.map rename to portal-ui/build/static/js/2483.916b80fb.chunk.js.map index ede492444..37032e834 100644 --- a/portal-ui/build/static/js/2483.363201d7.chunk.js.map +++ b/portal-ui/build/static/js/2483.916b80fb.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/2483.363201d7.chunk.js","mappings":"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","sources":["screens/LoginPage/types.ts","icons/LockFilledIcon.tsx","icons/UsersFilledIcon.tsx","icons/GithubIcon.tsx","screens/LoginPage/LoginPage.tsx","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.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\nexport interface ILoginDetails {\n loginStrategy: loginStrategyType;\n redirect: string;\n}\n\nexport enum loginStrategyType {\n unknown = \"unknown\",\n form = \"form\",\n redirect = \"redirect\",\n serviceAccount = \"service-account\",\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 * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst LockFilledIcon = (props: SVGProps) => (\n \n \n \n);\n\nexport default LockFilledIcon;\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 * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst UserFilledIcon = (props: SVGProps) => (\n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default UserFilledIcon;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst GithubIcon = (props: SVGProps) => (\n \n \n \n);\n\nexport default GithubIcon;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { InputAdornment, LinearProgress, TextFieldProps } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Button from \"@mui/material/Button\";\nimport TextField from \"@mui/material/TextField\";\nimport Grid from \"@mui/material/Grid\";\nimport { ILoginDetails, loginStrategyType } from \"./types\";\nimport { SystemState } from \"../../types\";\nimport { setErrorSnackMessage, userLoggedIn } from \"../../actions\";\nimport { ErrorResponseHandler } from \"../../common/types\";\nimport api from \"../../common/api\";\nimport history from \"../../history\";\nimport RefreshIcon from \"../../icons/RefreshIcon\";\nimport MainError from \"../Console/Common/MainError/MainError\";\nimport { encodeFileName } from \"../../common/utils\";\nimport {\n ArrowRightIcon,\n DocumentationIcon,\n DownloadIcon,\n LockIcon,\n LoginMinIOLogo,\n MinIOTierIconXs,\n} from \"../../icons\";\nimport { spacingUtils } from \"../Console/Common/FormComponents/common/styleLibrary\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport LockFilledIcon from \"../../icons/LockFilledIcon\";\nimport UserFilledIcon from \"../../icons/UsersFilledIcon\";\nimport { SupportMenuIcon } from \"../../icons/SidebarMenus\";\nimport GithubIcon from \"../../icons/GithubIcon\";\nimport clsx from \"clsx\";\nimport Loader from \"../Console/Common/Loader/Loader\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n overflow: \"auto\",\n },\n form: {\n width: \"100%\", // Fix IE 11 issue.\n },\n submit: {\n margin: \"30px 0px 8px\",\n height: 40,\n width: \"100%\",\n boxShadow: \"none\",\n padding: \"16px 30px\",\n },\n learnMore: {\n textAlign: \"center\",\n fontSize: 10,\n \"& a\": {\n color: \"#2781B0\",\n },\n \"& .min-icon\": {\n marginLeft: 12,\n marginTop: 2,\n width: 10,\n },\n },\n separator: {\n marginLeft: 8,\n marginRight: 8,\n },\n linkHolder: {\n marginTop: 20,\n },\n miniLinks: {\n margin: \"auto\",\n fontSize: 10,\n textAlign: \"center\",\n color: \"#B2DEF5\",\n \"& a\": {\n color: \"#B2DEF5\",\n textDecoration: \"none\",\n },\n \"& .min-icon\": {\n height: 10,\n color: \"#B2DEF5\",\n },\n },\n miniLogo: {\n marginTop: 8,\n \"& .min-icon\": {\n height: 12,\n paddingTop: 2,\n },\n },\n loginPage: {\n height: \"100%\",\n margin: \"auto\",\n },\n loginContainer: {\n flexDirection: \"column\",\n \"& .right-items\": {\n backgroundColor: \"white\",\n borderRadius: 3,\n boxShadow: \"6px 6px 50\",\n padding: 20,\n },\n \"& .consoleTextBanner\": {\n fontWeight: 300,\n fontSize: \"calc(3vw + 3vh + 1.5vmin)\",\n lineHeight: 1.15,\n color: \"#ffffff\",\n flex: 1,\n textAlign: \"center\",\n height: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n margin: \"auto\",\n\n \"& .logoLine\": {\n display: \"flex\",\n alignItems: \"center\",\n fontSize: 18,\n marginTop: 40,\n },\n \"& .left-items\": {\n margin: \"auto\",\n paddingTop: 100,\n paddingBottom: 60,\n },\n \"& .left-logo\": {\n \"& .min-icon\": {\n color: \"white\",\n width: 108,\n },\n marginBottom: 10,\n },\n \"& .text-line1\": {\n font: \" 100 44px 'Lato'\",\n },\n \"& .text-line2\": {\n fontSize: 80,\n fontWeight: 100,\n textTransform: \"uppercase\",\n },\n \"& .text-line3\": {\n fontSize: 14,\n fontWeight: \"bold\",\n },\n \"& .logo-console\": {\n display: \"flex\",\n alignItems: \"center\",\n\n \"@media (max-width: 900px)\": {\n marginTop: 20,\n flexFlow: \"column\",\n\n \"& svg\": {\n width: \"50%\",\n },\n },\n },\n },\n },\n \"@media (max-width: 900px)\": {\n loginContainer: {\n display: \"flex\",\n flexFlow: \"column\",\n\n \"& .consoleTextBanner\": {\n margin: 0,\n flex: 2,\n\n \"& .left-items\": {\n alignItems: \"center\",\n textAlign: \"center\",\n },\n\n \"& .logoLine\": {\n justifyContent: \"center\",\n },\n },\n },\n },\n loadingLoginStrategy: {\n textAlign: \"center\",\n width: 40,\n height: 40,\n },\n headerTitle: {\n marginRight: \"auto\",\n marginBottom: 15,\n },\n submitContainer: {\n textAlign: \"right\",\n },\n linearPredef: {\n height: 10,\n },\n\n loaderAlignment: {\n display: \"flex\",\n width: \"100%\",\n height: \"100%\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n },\n retryButton: {\n alignSelf: \"flex-end\",\n },\n loginComponentContainer: {\n maxWidth: 360,\n width: \"100%\",\n alignSelf: \"center\",\n },\n ...spacingUtils,\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n \"& .MuiOutlinedInput-root\": {\n paddingLeft: 0,\n \"& svg\": {\n marginLeft: 4,\n height: 14,\n color: theme.palette.primary.main,\n },\n \"& input\": {\n padding: 10,\n fontSize: 14,\n paddingLeft: 0,\n \"&::placeholder\": {\n fontSize: 12,\n },\n \"@media (max-width: 900px)\": {\n padding: 10,\n },\n },\n \"& fieldset\": {},\n\n \"& fieldset:hover\": {\n borderBottom: \"2px solid #000000\",\n borderRadius: 0,\n },\n },\n },\n })\n);\n\nfunction LoginField(props: TextFieldProps) {\n const classes = inputStyles();\n\n return (\n \n );\n}\n\nconst mapState = (state: SystemState) => ({\n loggedIn: state.loggedIn,\n});\n\nconst connector = connect(mapState, { userLoggedIn, setErrorSnackMessage });\n\n// The inferred type will look like:\n// {isOn: boolean, toggleOn: () => void}\n\ninterface ILoginProps {\n userLoggedIn: typeof userLoggedIn;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n classes: any;\n}\n\ninterface LoginStrategyRoutes {\n [key: string]: string;\n}\n\ninterface LoginStrategyPayload {\n [key: string]: any;\n}\n\nconst Login = ({\n classes,\n userLoggedIn,\n setErrorSnackMessage,\n}: ILoginProps) => {\n const [accessKey, setAccessKey] = useState(\"\");\n const [jwt, setJwt] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n const [loginStrategy, setLoginStrategy] = useState({\n loginStrategy: loginStrategyType.unknown,\n redirect: \"\",\n });\n const [loginSending, setLoginSending] = useState(false);\n const [loadingFetchConfiguration, setLoadingFetchConfiguration] =\n useState(true);\n\n const [latestMinIOVersion, setLatestMinIOVersion] = useState(\"\");\n const [loadingVersion, setLoadingVersion] = useState(true);\n\n const loginStrategyEndpoints: LoginStrategyRoutes = {\n form: \"/api/v1/login\",\n \"service-account\": \"/api/v1/login/operator\",\n };\n const loginStrategyPayload: LoginStrategyPayload = {\n form: { accessKey, secretKey },\n \"service-account\": { jwt },\n };\n\n const fetchConfiguration = () => {\n setLoadingFetchConfiguration(true);\n };\n\n const formSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n setLoginSending(true);\n api\n .invoke(\n \"POST\",\n loginStrategyEndpoints[loginStrategy.loginStrategy] || \"/api/v1/login\",\n loginStrategyPayload[loginStrategy.loginStrategy]\n )\n .then(() => {\n // We set the state in redux\n userLoggedIn(true);\n if (loginStrategy.loginStrategy === loginStrategyType.form) {\n localStorage.setItem(\"userLoggedIn\", encodeFileName(accessKey));\n }\n let targetPath = \"/\";\n if (\n localStorage.getItem(\"redirect-path\") &&\n localStorage.getItem(\"redirect-path\") !== \"\"\n ) {\n targetPath = `${localStorage.getItem(\"redirect-path\")}`;\n localStorage.setItem(\"redirect-path\", \"\");\n }\n history.push(targetPath);\n })\n .catch((err) => {\n setLoginSending(false);\n setErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n if (loadingFetchConfiguration) {\n api\n .invoke(\"GET\", \"/api/v1/login\")\n .then((loginDetails: ILoginDetails) => {\n setLoginStrategy(loginDetails);\n setLoadingFetchConfiguration(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingFetchConfiguration(false);\n });\n }\n }, [loadingFetchConfiguration, setErrorSnackMessage]);\n\n useEffect(() => {\n if (loadingVersion) {\n api\n .invoke(\"GET\", \"/api/v1/check-version\")\n .then(\n ({\n current_version,\n latest_version,\n }: {\n current_version: string;\n latest_version: string;\n }) => {\n setLatestMinIOVersion(latest_version);\n setLoadingVersion(false);\n }\n )\n .catch((err: ErrorResponseHandler) => {\n // try the operator version\n api\n .invoke(\"GET\", \"/api/v1/check-operator-version\")\n .then(\n ({\n current_version,\n latest_version,\n }: {\n current_version: string;\n latest_version: string;\n }) => {\n setLatestMinIOVersion(latest_version);\n setLoadingVersion(false);\n }\n )\n .catch((err: ErrorResponseHandler) => {\n setLoadingVersion(false);\n });\n });\n }\n }, [loadingVersion, setLoadingVersion, setLatestMinIOVersion]);\n\n let loginComponent = null;\n\n switch (loginStrategy.loginStrategy) {\n case loginStrategyType.form: {\n loginComponent = (\n \n
    \n \n \n ) =>\n setAccessKey(e.target.value)\n }\n placeholder={\"Username\"}\n name=\"accessKey\"\n autoComplete=\"username\"\n disabled={loginSending}\n variant={\"outlined\"}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n \n \n ) =>\n setSecretKey(e.target.value)\n }\n name=\"secretKey\"\n type=\"password\"\n id=\"secretKey\"\n autoComplete=\"current-password\"\n disabled={loginSending}\n placeholder={\"Password\"}\n variant={\"outlined\"}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n \n \n \n \n Login\n \n \n \n {loginSending && }\n \n
    \n
    \n );\n break;\n }\n case loginStrategyType.redirect: {\n loginComponent = (\n \n \n Login with SSO\n \n \n );\n break;\n }\n case loginStrategyType.serviceAccount: {\n loginComponent = (\n \n
    \n \n \n ) =>\n setJwt(e.target.value)\n }\n name=\"jwt\"\n autoComplete=\"off\"\n disabled={loginSending}\n placeholder={\"Enter JWT\"}\n variant={\"outlined\"}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n \n \n \n \n Login\n \n \n \n {loginSending && }\n \n
    \n
    \n );\n break;\n }\n default:\n loginComponent = (\n
    \n {loadingFetchConfiguration ? (\n \n ) : (\n \n
    \n

    \n An error has occurred\n
    \n The backend cannot be reached.\n

    \n
    \n
    \n {\n fetchConfiguration();\n }}\n endIcon={}\n color={\"primary\"}\n variant=\"outlined\"\n id=\"retry\"\n className={classes.retryButton}\n >\n Retry\n \n
    \n
    \n )}\n
    \n );\n }\n\n const consoleText =\n loginStrategy.loginStrategy === loginStrategyType.serviceAccount\n ? \"Operator\"\n : \"Console\";\n\n return (\n
    \n \n \n
    \n \n \n
    \n
    \n \n
    \n
    {consoleText}
    \n
    Multi-Cloud Object Storage
    \n
    \n
    \n \n {loginComponent}\n
    \n \n Learn more about Console \n \n
    \n
    \n \n
    \n \n Documentation\n \n |\n \n Github\n \n |\n \n Support\n \n |\n \n Download\n \n
    \n
    \n \n Latest Version{\" \"}\n {!loadingVersion && latestMinIOVersion !== \"\" && (\n {latestMinIOVersion}\n )}\n \n
    \n
    \n \n
    \n
    \n );\n};\n\nexport default connector(withStyles(styles)(Login));\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\n\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: theme.palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ?\n /* notranslate needed while Google Translate will not fix zero-width space issue */\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;"],"names":["loginStrategyType","props","xmlns","className","fill","viewBox","id","d","width","height","clipPath","transform","inputStyles","makeStyles","theme","createStyles","root","paddingLeft","marginLeft","color","palette","primary","main","padding","fontSize","borderBottom","borderRadius","LoginField","classes","TextField","variant","connect","state","loggedIn","userLoggedIn","setErrorSnackMessage","withStyles","position","top","left","overflow","form","submit","margin","boxShadow","learnMore","textAlign","marginTop","separator","marginRight","linkHolder","miniLinks","textDecoration","miniLogo","paddingTop","loginPage","loginContainer","flexDirection","backgroundColor","fontWeight","lineHeight","flex","display","justifyContent","alignItems","paddingBottom","marginBottom","font","textTransform","flexFlow","loadingLoginStrategy","headerTitle","submitContainer","linearPredef","loaderAlignment","retryButton","alignSelf","loginComponentContainer","maxWidth","spacingUtils","useState","accessKey","setAccessKey","jwt","setJwt","secretKey","setSecretKey","loginStrategy","unknown","redirect","setLoginStrategy","loginSending","setLoginSending","loadingFetchConfiguration","setLoadingFetchConfiguration","latestMinIOVersion","setLatestMinIOVersion","loadingVersion","setLoadingVersion","loginStrategyEndpoints","loginStrategyPayload","formSubmit","e","preventDefault","api","then","localStorage","setItem","encodeFileName","targetPath","getItem","history","catch","err","useEffect","loginDetails","current_version","latest_version","loginComponent","noValidate","onSubmit","Grid","container","spacing","item","xs","spacerBottom","fullWidth","inputField","value","onChange","target","placeholder","name","autoComplete","disabled","InputProps","startAdornment","InputAdornment","iconColor","type","Button","LinearProgress","component","href","serviceAccount","required","Loader","style","onClick","endIcon","RefreshIcon","consoleText","CssBaseline","MainError","rel","clsx","getInputAdornmentUtilityClass","slot","generateUtilityClass","_span","generateUtilityClasses","_excluded","InputAdornmentRoot","styled","overridesResolver","styles","ownerState","capitalize","disablePointerEvents","_extends","maxHeight","whiteSpace","action","active","inputAdornmentClasses","pointerEvents","React","inProps","ref","useThemeProps","children","disableTypography","variantProp","other","_objectWithoutPropertiesLoose","muiFormControl","useFormControl","hiddenLabel","size","slots","composeClasses","useUtilityClasses","_jsx","FormControlContext","as","_jsxs","Typography"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/2483.916b80fb.chunk.js","mappings":"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","sources":["screens/LoginPage/types.ts","icons/LockFilledIcon.tsx","icons/UsersFilledIcon.tsx","icons/GithubIcon.tsx","screens/LoginPage/LoginPage.tsx","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.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\nexport interface ILoginDetails {\n loginStrategy: loginStrategyType;\n redirect: string;\n}\n\nexport enum loginStrategyType {\n unknown = \"unknown\",\n form = \"form\",\n redirect = \"redirect\",\n serviceAccount = \"service-account\",\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 * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst LockFilledIcon = (props: SVGProps) => (\n \n \n \n);\n\nexport default LockFilledIcon;\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 * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst UserFilledIcon = (props: SVGProps) => (\n \n \n \n \n \n \n \n \n \n \n \n);\n\nexport default UserFilledIcon;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst GithubIcon = (props: SVGProps) => (\n \n \n \n);\n\nexport default GithubIcon;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { InputAdornment, LinearProgress, TextFieldProps } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Button from \"@mui/material/Button\";\nimport TextField from \"@mui/material/TextField\";\nimport Grid from \"@mui/material/Grid\";\nimport { ILoginDetails, loginStrategyType } from \"./types\";\nimport { SystemState } from \"../../types\";\nimport { setErrorSnackMessage, userLoggedIn } from \"../../actions\";\nimport { ErrorResponseHandler } from \"../../common/types\";\nimport api from \"../../common/api\";\nimport history from \"../../history\";\nimport RefreshIcon from \"../../icons/RefreshIcon\";\nimport MainError from \"../Console/Common/MainError/MainError\";\nimport { encodeFileName } from \"../../common/utils\";\nimport {\n ArrowRightIcon,\n DocumentationIcon,\n DownloadIcon,\n LockIcon,\n LoginMinIOLogo,\n MinIOTierIconXs,\n} from \"../../icons\";\nimport { spacingUtils } from \"../Console/Common/FormComponents/common/styleLibrary\";\nimport CssBaseline from \"@mui/material/CssBaseline\";\nimport LockFilledIcon from \"../../icons/LockFilledIcon\";\nimport UserFilledIcon from \"../../icons/UsersFilledIcon\";\nimport { SupportMenuIcon } from \"../../icons/SidebarMenus\";\nimport GithubIcon from \"../../icons/GithubIcon\";\nimport clsx from \"clsx\";\nimport Loader from \"../Console/Common/Loader/Loader\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n position: \"absolute\",\n top: 0,\n left: 0,\n width: \"100%\",\n height: \"100%\",\n overflow: \"auto\",\n },\n form: {\n width: \"100%\", // Fix IE 11 issue.\n },\n submit: {\n margin: \"30px 0px 8px\",\n height: 40,\n width: \"100%\",\n boxShadow: \"none\",\n padding: \"16px 30px\",\n },\n learnMore: {\n textAlign: \"center\",\n fontSize: 10,\n \"& a\": {\n color: \"#2781B0\",\n },\n \"& .min-icon\": {\n marginLeft: 12,\n marginTop: 2,\n width: 10,\n },\n },\n separator: {\n marginLeft: 8,\n marginRight: 8,\n },\n linkHolder: {\n marginTop: 20,\n },\n miniLinks: {\n margin: \"auto\",\n fontSize: 10,\n textAlign: \"center\",\n color: \"#B2DEF5\",\n \"& a\": {\n color: \"#B2DEF5\",\n textDecoration: \"none\",\n },\n \"& .min-icon\": {\n height: 10,\n color: \"#B2DEF5\",\n },\n },\n miniLogo: {\n marginTop: 8,\n \"& .min-icon\": {\n height: 12,\n paddingTop: 2,\n },\n },\n loginPage: {\n height: \"100%\",\n margin: \"auto\",\n },\n loginContainer: {\n flexDirection: \"column\",\n \"& .right-items\": {\n backgroundColor: \"white\",\n borderRadius: 3,\n boxShadow: \"6px 6px 50\",\n padding: 20,\n },\n \"& .consoleTextBanner\": {\n fontWeight: 300,\n fontSize: \"calc(3vw + 3vh + 1.5vmin)\",\n lineHeight: 1.15,\n color: \"#ffffff\",\n flex: 1,\n textAlign: \"center\",\n height: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n margin: \"auto\",\n\n \"& .logoLine\": {\n display: \"flex\",\n alignItems: \"center\",\n fontSize: 18,\n marginTop: 40,\n },\n \"& .left-items\": {\n margin: \"auto\",\n paddingTop: 100,\n paddingBottom: 60,\n },\n \"& .left-logo\": {\n \"& .min-icon\": {\n color: \"white\",\n width: 108,\n },\n marginBottom: 10,\n },\n \"& .text-line1\": {\n font: \" 100 44px 'Lato'\",\n },\n \"& .text-line2\": {\n fontSize: 80,\n fontWeight: 100,\n textTransform: \"uppercase\",\n },\n \"& .text-line3\": {\n fontSize: 14,\n fontWeight: \"bold\",\n },\n \"& .logo-console\": {\n display: \"flex\",\n alignItems: \"center\",\n\n \"@media (max-width: 900px)\": {\n marginTop: 20,\n flexFlow: \"column\",\n\n \"& svg\": {\n width: \"50%\",\n },\n },\n },\n },\n },\n \"@media (max-width: 900px)\": {\n loginContainer: {\n display: \"flex\",\n flexFlow: \"column\",\n\n \"& .consoleTextBanner\": {\n margin: 0,\n flex: 2,\n\n \"& .left-items\": {\n alignItems: \"center\",\n textAlign: \"center\",\n },\n\n \"& .logoLine\": {\n justifyContent: \"center\",\n },\n },\n },\n },\n loadingLoginStrategy: {\n textAlign: \"center\",\n width: 40,\n height: 40,\n },\n headerTitle: {\n marginRight: \"auto\",\n marginBottom: 15,\n },\n submitContainer: {\n textAlign: \"right\",\n },\n linearPredef: {\n height: 10,\n },\n\n loaderAlignment: {\n display: \"flex\",\n width: \"100%\",\n height: \"100%\",\n justifyContent: \"center\",\n alignItems: \"center\",\n flexDirection: \"column\",\n },\n retryButton: {\n alignSelf: \"flex-end\",\n },\n loginComponentContainer: {\n maxWidth: 360,\n width: \"100%\",\n alignSelf: \"center\",\n },\n ...spacingUtils,\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n root: {\n \"& .MuiOutlinedInput-root\": {\n paddingLeft: 0,\n \"& svg\": {\n marginLeft: 4,\n height: 14,\n color: theme.palette.primary.main,\n },\n \"& input\": {\n padding: 10,\n fontSize: 14,\n paddingLeft: 0,\n \"&::placeholder\": {\n fontSize: 12,\n },\n \"@media (max-width: 900px)\": {\n padding: 10,\n },\n },\n \"& fieldset\": {},\n\n \"& fieldset:hover\": {\n borderBottom: \"2px solid #000000\",\n borderRadius: 0,\n },\n },\n },\n })\n);\n\nfunction LoginField(props: TextFieldProps) {\n const classes = inputStyles();\n\n return (\n \n );\n}\n\nconst mapState = (state: SystemState) => ({\n loggedIn: state.loggedIn,\n});\n\nconst connector = connect(mapState, { userLoggedIn, setErrorSnackMessage });\n\n// The inferred type will look like:\n// {isOn: boolean, toggleOn: () => void}\n\ninterface ILoginProps {\n userLoggedIn: typeof userLoggedIn;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n classes: any;\n}\n\ninterface LoginStrategyRoutes {\n [key: string]: string;\n}\n\ninterface LoginStrategyPayload {\n [key: string]: any;\n}\n\nconst Login = ({\n classes,\n userLoggedIn,\n setErrorSnackMessage,\n}: ILoginProps) => {\n const [accessKey, setAccessKey] = useState(\"\");\n const [jwt, setJwt] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n const [loginStrategy, setLoginStrategy] = useState({\n loginStrategy: loginStrategyType.unknown,\n redirect: \"\",\n });\n const [loginSending, setLoginSending] = useState(false);\n const [loadingFetchConfiguration, setLoadingFetchConfiguration] =\n useState(true);\n\n const [latestMinIOVersion, setLatestMinIOVersion] = useState(\"\");\n const [loadingVersion, setLoadingVersion] = useState(true);\n\n const loginStrategyEndpoints: LoginStrategyRoutes = {\n form: \"/api/v1/login\",\n \"service-account\": \"/api/v1/login/operator\",\n };\n const loginStrategyPayload: LoginStrategyPayload = {\n form: { accessKey, secretKey },\n \"service-account\": { jwt },\n };\n\n const fetchConfiguration = () => {\n setLoadingFetchConfiguration(true);\n };\n\n const formSubmit = (e: React.FormEvent) => {\n e.preventDefault();\n setLoginSending(true);\n api\n .invoke(\n \"POST\",\n loginStrategyEndpoints[loginStrategy.loginStrategy] || \"/api/v1/login\",\n loginStrategyPayload[loginStrategy.loginStrategy]\n )\n .then(() => {\n // We set the state in redux\n userLoggedIn(true);\n if (loginStrategy.loginStrategy === loginStrategyType.form) {\n localStorage.setItem(\"userLoggedIn\", encodeFileName(accessKey));\n }\n let targetPath = \"/\";\n if (\n localStorage.getItem(\"redirect-path\") &&\n localStorage.getItem(\"redirect-path\") !== \"\"\n ) {\n targetPath = `${localStorage.getItem(\"redirect-path\")}`;\n localStorage.setItem(\"redirect-path\", \"\");\n }\n history.push(targetPath);\n })\n .catch((err) => {\n setLoginSending(false);\n setErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n if (loadingFetchConfiguration) {\n api\n .invoke(\"GET\", \"/api/v1/login\")\n .then((loginDetails: ILoginDetails) => {\n setLoginStrategy(loginDetails);\n setLoadingFetchConfiguration(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingFetchConfiguration(false);\n });\n }\n }, [loadingFetchConfiguration, setErrorSnackMessage]);\n\n useEffect(() => {\n if (loadingVersion) {\n api\n .invoke(\"GET\", \"/api/v1/check-version\")\n .then(\n ({\n current_version,\n latest_version,\n }: {\n current_version: string;\n latest_version: string;\n }) => {\n setLatestMinIOVersion(latest_version);\n setLoadingVersion(false);\n }\n )\n .catch((err: ErrorResponseHandler) => {\n // try the operator version\n api\n .invoke(\"GET\", \"/api/v1/check-operator-version\")\n .then(\n ({\n current_version,\n latest_version,\n }: {\n current_version: string;\n latest_version: string;\n }) => {\n setLatestMinIOVersion(latest_version);\n setLoadingVersion(false);\n }\n )\n .catch((err: ErrorResponseHandler) => {\n setLoadingVersion(false);\n });\n });\n }\n }, [loadingVersion, setLoadingVersion, setLatestMinIOVersion]);\n\n let loginComponent = null;\n\n switch (loginStrategy.loginStrategy) {\n case loginStrategyType.form: {\n loginComponent = (\n \n
    \n \n \n ) =>\n setAccessKey(e.target.value)\n }\n placeholder={\"Username\"}\n name=\"accessKey\"\n autoComplete=\"username\"\n disabled={loginSending}\n variant={\"outlined\"}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n \n \n ) =>\n setSecretKey(e.target.value)\n }\n name=\"secretKey\"\n type=\"password\"\n id=\"secretKey\"\n autoComplete=\"current-password\"\n disabled={loginSending}\n placeholder={\"Password\"}\n variant={\"outlined\"}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n \n \n \n \n Login\n \n \n \n {loginSending && }\n \n
    \n
    \n );\n break;\n }\n case loginStrategyType.redirect: {\n loginComponent = (\n \n \n Login with SSO\n \n \n );\n break;\n }\n case loginStrategyType.serviceAccount: {\n loginComponent = (\n \n
    \n \n \n ) =>\n setJwt(e.target.value)\n }\n name=\"jwt\"\n autoComplete=\"off\"\n disabled={loginSending}\n placeholder={\"Enter JWT\"}\n variant={\"outlined\"}\n InputProps={{\n startAdornment: (\n \n \n \n ),\n }}\n />\n \n \n \n \n Login\n \n \n \n {loginSending && }\n \n
    \n
    \n );\n break;\n }\n default:\n loginComponent = (\n
    \n {loadingFetchConfiguration ? (\n \n ) : (\n \n
    \n

    \n An error has occurred\n
    \n The backend cannot be reached.\n

    \n
    \n
    \n {\n fetchConfiguration();\n }}\n endIcon={}\n color={\"primary\"}\n variant=\"outlined\"\n id=\"retry\"\n className={classes.retryButton}\n >\n Retry\n \n
    \n
    \n )}\n
    \n );\n }\n\n const consoleText =\n loginStrategy.loginStrategy === loginStrategyType.serviceAccount\n ? \"Operator\"\n : \"Console\";\n\n return (\n
    \n \n \n
    \n \n \n
    \n
    \n \n
    \n
    {consoleText}
    \n
    Multi-Cloud Object Storage
    \n
    \n
    \n \n {loginComponent}\n
    \n \n Learn more about Console \n \n
    \n
    \n \n
    \n \n Documentation\n \n |\n \n Github\n \n |\n \n Support\n \n |\n \n Download\n \n
    \n
    \n \n Latest Version{\" \"}\n {!loadingVersion && latestMinIOVersion !== \"\" && (\n {latestMinIOVersion}\n )}\n \n
    \n
    \n \n
    \n
    \n );\n};\n\nexport default connector(withStyles(styles)(Login));\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\n\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: theme.palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ?\n /* notranslate needed while Google Translate will not fix zero-width space issue */\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;"],"names":["loginStrategyType","props","xmlns","className","fill","viewBox","id","d","width","height","clipPath","transform","inputStyles","makeStyles","theme","createStyles","root","paddingLeft","marginLeft","color","palette","primary","main","padding","fontSize","borderBottom","borderRadius","LoginField","classes","TextField","variant","connect","state","loggedIn","userLoggedIn","setErrorSnackMessage","withStyles","position","top","left","overflow","form","submit","margin","boxShadow","learnMore","textAlign","marginTop","separator","marginRight","linkHolder","miniLinks","textDecoration","miniLogo","paddingTop","loginPage","loginContainer","flexDirection","backgroundColor","fontWeight","lineHeight","flex","display","justifyContent","alignItems","paddingBottom","marginBottom","font","textTransform","flexFlow","loadingLoginStrategy","headerTitle","submitContainer","linearPredef","loaderAlignment","retryButton","alignSelf","loginComponentContainer","maxWidth","spacingUtils","useState","accessKey","setAccessKey","jwt","setJwt","secretKey","setSecretKey","loginStrategy","unknown","redirect","setLoginStrategy","loginSending","setLoginSending","loadingFetchConfiguration","setLoadingFetchConfiguration","latestMinIOVersion","setLatestMinIOVersion","loadingVersion","setLoadingVersion","loginStrategyEndpoints","loginStrategyPayload","formSubmit","e","preventDefault","api","then","localStorage","setItem","encodeFileName","targetPath","getItem","history","catch","err","useEffect","loginDetails","current_version","latest_version","loginComponent","noValidate","onSubmit","Grid","container","spacing","item","xs","spacerBottom","fullWidth","inputField","value","onChange","target","placeholder","name","autoComplete","disabled","InputProps","startAdornment","InputAdornment","iconColor","type","Button","LinearProgress","component","href","serviceAccount","required","Loader","style","onClick","endIcon","RefreshIcon","consoleText","CssBaseline","MainError","rel","clsx","getInputAdornmentUtilityClass","slot","generateUtilityClass","_span","generateUtilityClasses","_excluded","InputAdornmentRoot","styled","overridesResolver","styles","ownerState","capitalize","disablePointerEvents","_extends","maxHeight","whiteSpace","action","active","inputAdornmentClasses","pointerEvents","React","inProps","ref","useThemeProps","children","disableTypography","variantProp","other","_objectWithoutPropertiesLoose","muiFormControl","useFormControl","hiddenLabel","size","slots","composeClasses","useUtilityClasses","_jsx","FormControlContext","as","_jsxs","Typography"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/255.c0b2782b.chunk.js b/portal-ui/build/static/js/255.c0b2782b.chunk.js new file mode 100644 index 000000000..c8c5b3f90 --- /dev/null +++ b/portal-ui/build/static/js/255.c0b2782b.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[255],{14917:function(e,t,n){n(72791);var i=n(61889),a=n(11135),s=n(25787),o=n(80184);t.Z=(0,s.Z)((function(e){return(0,a.Z)({headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},screenTitle:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem",borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column"}},rightItems:{display:"flex",alignItems:"center"}})}))((function(e){var t=e.classes,n=e.icon,a=e.title,s=e.subTitle,l=e.actions,r=e.className;return(0,o.jsx)(i.ZP,{container:!0,children:(0,o.jsxs)(i.ZP,{item:!0,xs:12,className:"".concat(t.screenTitle," ").concat(r||""),children:[(0,o.jsxs)("div",{className:t.leftItems,children:[n?(0,o.jsx)("div",{className:t.headerBarIcon,children:n}):null,(0,o.jsxs)("div",{className:t.titleColumn,children:[(0,o.jsx)("h1",{style:{margin:0},children:a}),(0,o.jsx)("span",{className:t.headerBarSubheader,children:s})]})]}),(0,o.jsx)("div",{className:t.rightItems,children:l})]})})}))},20255:function(e,t,n){n.r(t),n.d(t,{default:function(){return $}});var i=n(70885),a=n(1413),s=n(72791),o=n(11135),l=n(25787),r=n(23814),c=n(61889),u=n(45248),d=n(40986),f=n(32291),m=n(74794),x=n(28371),p=n(62666),v=n(26181),g=n.n(v),h=n(21435),y=n(10703),b=n(81207),j=n(90673),C=n(60364),Z=n(75460),P=n(40968),N=n(56578),S=n(80184),A=(0,C.$j)((function(e){var t=e.tenants.addPool.fields.setup;return{tenant:e.tenants.tenantDetails.tenantInfo,storageClasses:e.tenants.addPool.storageClasses,numberOfNodes:t.numberOfNodes.toString(),storageClass:t.storageClass,volumeSize:t.volumeSize.toString(),volumesPerServer:t.volumesPerServer.toString()}}),{setPoolField:Z.oo,isPoolPageValid:Z.LJ,setPoolStorageClasses:Z.TU}),_=(0,l.Z)((function(e){return(0,o.Z)((0,a.Z)((0,a.Z)({buttonContainer:{textAlign:"right"},bottomContainer:{display:"flex",flexGrow:1,alignItems:"center",margin:"auto",justifyContent:"center","& div":{width:150,"@media (max-width: 900px)":{flexFlow:"column"}}},factorElements:{display:"flex",justifyContent:"flex-start",marginLeft:30},sizeNumber:{fontSize:35,fontWeight:700,textAlign:"center"},sizeDescription:{fontSize:14,color:"#777",textAlign:"center"}},r.DF),r.AK))}))(A((function(e){var t=e.tenant,n=e.classes,a=e.storageClasses,o=e.numberOfNodes,l=e.storageClass,r=e.volumeSize,d=e.volumesPerServer,f=e.setPoolField,m=e.setPoolStorageClasses,x=e.isPoolPageValid,p=(0,s.useState)({}),v=(0,i.Z)(p,2),C=v[0],Z=v[1],A=1073741824*parseInt(r)*parseInt(d),_=A*parseInt(o);(0,s.useEffect)((function(){var e=[{fieldKey:"number_of_nodes",required:!0,value:o.toString(),customValidation:parseInt(o)<1||isNaN(parseInt(o)),customValidationMessage:"Number of servers must be at least 1"},{fieldKey:"pool_size",required:!0,value:r.toString(),customValidation:parseInt(r)<1||isNaN(parseInt(r)),customValidationMessage:"Pool Size cannot be 0"},{fieldKey:"volumes_per_server",required:!0,value:d.toString(),customValidation:parseInt(d)<1||isNaN(parseInt(d)),customValidationMessage:"1 volume or more are required"}],t=(0,P.R)(e);x("setup",0===Object.keys(t).length),Z(t)}),[x,o,r,d,l]),(0,s.useEffect)((function(){0===a.length&&t&&b.Z.invoke("GET","/api/v1/namespaces/".concat(t.namespace,"/resourcequotas/").concat(t.namespace,"-storagequota")).then((function(e){var t=g()(e,"elements",[]).map((function(e){var t=g()(e,"name","").split(".storageclass.storage.k8s.io/requests.storage")[0];return{label:t,value:t}}));f("setup","storageClass",t[0].value),m(t)})).catch((function(e){console.error(e)}))}),[t,a,m,f]);var w=function(e,t){f("setup",e,t)};return(0,S.jsxs)(y.Z,{className:n.paperWrapper,children:[(0,S.jsxs)("div",{className:n.headerElement,children:[(0,S.jsx)("h3",{className:n.h3Section,children:"New Pool Configuration"}),(0,S.jsx)("span",{className:n.descriptionText,children:"Configure a new Pool to expand MinIO storage"})]}),(0,S.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,S.jsx)(h.Z,{id:"number_of_nodes",name:"number_of_nodes",onChange:function(e){var t=parseInt(e.target.value);e.target.validity.valid&&!isNaN(t)?w("numberOfNodes",t):isNaN(t)&&w("numberOfNodes",0)},label:"Number of Servers",value:o,error:C.number_of_nodes||"",pattern:"[0-9]*"})}),(0,S.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,S.jsx)(h.Z,{id:"pool_size",name:"pool_size",onChange:function(e){var t=parseInt(e.target.value);e.target.validity.valid&&!isNaN(t)?w("volumeSize",t):isNaN(t)&&w("volumeSize",0)},label:"Volume Size",value:r,error:C.pool_size||"",pattern:"[0-9]*",overlayObject:(0,S.jsx)(N.Z,{id:"quota_unit",onUnitChange:function(){},unitSelected:"Gi",unitsList:[{label:"Gi",value:"Gi"}],disabled:!0})})}),(0,S.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,S.jsx)(h.Z,{id:"volumes_per_sever",name:"volumes_per_sever",onChange:function(e){var t=parseInt(e.target.value);e.target.validity.valid&&!isNaN(t)?w("volumesPerServer",t):isNaN(t)&&w("volumesPerServer",0)},label:"Volumes per Server",value:d,error:C.volumes_per_server||"",pattern:"[0-9]*"})}),(0,S.jsx)(c.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,S.jsx)(j.Z,{id:"storage_class",name:"storage_class",onChange:function(e){w("storageClasses",e.target.value)},label:"Storage Class",value:l,options:a,disabled:a.length<1})}),(0,S.jsx)(c.ZP,{item:!0,xs:12,className:n.bottomContainer,children:(0,S.jsxs)("div",{className:n.factorElements,children:[(0,S.jsxs)("div",{children:[(0,S.jsx)("div",{className:n.sizeNumber,children:(0,u.ae)(A.toString(10))}),(0,S.jsx)("div",{className:n.sizeDescription,children:"Instance Capacity"})]}),(0,S.jsxs)("div",{children:[(0,S.jsx)("div",{className:n.sizeNumber,children:(0,u.ae)(_.toString(10))}),(0,S.jsx)("div",{className:n.sizeDescription,children:"Total Capacity"})]})]})})]})}))),w=n(14917),I=n(88449),k=n(42982),F=n(84741),E=n(37516),z=(0,C.$j)((function(e){var t=e.tenants.addPool.fields.configuration;return{securityContextEnabled:t.securityContextEnabled,securityContext:t.securityContext}}),{setPoolField:Z.oo,isPoolPageValid:Z.LJ}),T=(0,l.Z)((function(e){return(0,o.Z)((0,a.Z)((0,a.Z)({configSectionItem:{marginRight:15,"& .multiContainer":{border:"1px solid red"}},tenantCustomizationFields:{marginLeft:30,width:"88%",margin:"auto"},containerItem:{marginRight:15},fieldGroup:(0,a.Z)((0,a.Z)({},r.QV.fieldGroup),{},{paddingTop:15,marginBottom:25}),responsiveSectionItem:{"@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start","& div > div":{marginBottom:5,marginRight:0}}},fieldSpaceTop:{marginTop:15}},r.oO),r.AK))}))(z((function(e){var t=e.classes,n=e.setPoolField,o=e.securityContextEnabled,l=e.isPoolPageValid,r=e.securityContext,u=(0,s.useState)({}),d=(0,i.Z)(u,2),f=d[0],m=d[1],x=(0,s.useCallback)((function(e,t){n("configuration",e,t)}),[n]);(0,s.useEffect)((function(){var e=[];o&&(e=[].concat((0,k.Z)(e),[{fieldKey:"pool_securityContext_runAsUser",required:!0,value:r.runAsUser,customValidation:""===r.runAsUser||parseInt(r.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"pool_securityContext_runAsGroup",required:!0,value:r.runAsGroup,customValidation:""===r.runAsGroup||parseInt(r.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"pool_securityContext_fsGroup",required:!0,value:r.fsGroup,customValidation:""===r.fsGroup||parseInt(r.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]));var t=(0,P.R)(e);l("configure",0===Object.keys(t).length),m(t)}),[l,o,r]);var p=function(e){m((0,F.h)(f,e))};return(0,S.jsxs)(y.Z,{className:t.paperWrapper,children:[(0,S.jsxs)("div",{className:t.headerElement,children:[(0,S.jsx)("h3",{className:t.h3Section,children:"Configure"}),(0,S.jsx)("span",{className:t.descriptionText,children:"Aditional Configurations for the new Pool"})]}),(0,S.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,S.jsx)(E.Z,{value:"tenantConfig",id:"pool_configuration",name:"pool_configuration",checked:o,onChange:function(e){var t=e.target.checked;x("securityContextEnabled",t)},label:"Security Context"})}),o&&(0,S.jsx)(c.ZP,{item:!0,xs:12,className:t.tenantCustomizationFields,children:(0,S.jsxs)("fieldset",{className:t.fieldGroup,children:[(0,S.jsx)("legend",{className:t.descriptionText,children:"Pool's Security Context"}),(0,S.jsx)(c.ZP,{item:!0,xs:12,className:"".concat(t.configSectionItem),children:(0,S.jsxs)("div",{className:"".concat(t.multiContainer," ").concat(t.responsiveSectionItem),children:[(0,S.jsx)("div",{className:t.containerItem,children:(0,S.jsx)(h.Z,{type:"number",id:"pool_securityContext_runAsUser",name:"pool_securityContext_runAsUser",onChange:function(e){x("securityContext",(0,a.Z)((0,a.Z)({},r),{},{runAsUser:e.target.value})),p("pool_securityContext_runAsUser")},label:"Run As User",value:r.runAsUser,required:!0,error:f.pool_securityContext_runAsUser||"",min:"0"})}),(0,S.jsx)("div",{className:t.containerItem,children:(0,S.jsx)(h.Z,{type:"number",id:"pool_securityContext_runAsGroup",name:"pool_securityContext_runAsGroup",onChange:function(e){x("securityContext",(0,a.Z)((0,a.Z)({},r),{},{runAsGroup:e.target.value})),p("pool_securityContext_runAsGroup")},label:"Run As Group",value:r.runAsGroup,required:!0,error:f.pool_securityContext_runAsGroup||"",min:"0"})}),(0,S.jsx)("div",{className:t.containerItem,children:(0,S.jsx)(h.Z,{type:"number",id:"pool_securityContext_fsGroup",name:"pool_securityContext_fsGroup",onChange:function(e){x("securityContext",(0,a.Z)((0,a.Z)({},r),{},{fsGroup:e.target.value})),p("pool_securityContext_fsGroup")},label:"FsGroup",value:r.fsGroup,required:!0,error:f.pool_securityContext_fsGroup||"",min:"0"})})]})}),(0,S.jsx)("br",{}),(0,S.jsx)(c.ZP,{item:!0,xs:12,className:t.configSectionItem,children:(0,S.jsx)("div",{className:t.multiContainer,children:(0,S.jsx)(E.Z,{value:"securityContextRunAsNonRoot",id:"pool_securityContext_runAsNonRoot",name:"pool_securityContext_runAsNonRoot",checked:r.runAsNonRoot,onChange:function(e){var t=e.target.checked;x("securityContext",(0,a.Z)((0,a.Z)({},r),{},{runAsNonRoot:t}))},label:"Do not run as Root"})})})]})})]})}))),G=n(4942),V=n(13400),L=n(42649),O=n(83679),R=n(47919),K=n(51979),q=n(45660),U=(0,C.$j)((function(e){var t=e.tenants.addPool;return{podAffinity:t.fields.affinity.podAffinity,nodeSelectorLabels:t.fields.affinity.nodeSelectorLabels,withPodAntiAffinity:t.fields.affinity.withPodAntiAffinity,keyValuePairs:t.fields.nodeSelectorPairs,tolerations:t.fields.tolerations}}),{setModalErrorSnackMessage:L.zb,setPoolField:Z.oo,isPoolPageValid:Z.LJ,setPoolKeyValuePairs:Z.bF,setPoolTolerationInfo:Z.fu,addNewPoolToleration:Z.hw,removePoolToleration:Z.GF}),B=(0,l.Z)((function(e){return(0,o.Z)((0,a.Z)((0,a.Z)({overlayAction:{marginLeft:10,display:"flex",alignItems:"center","& svg":{maxWidth:15,maxHeight:15},"& button":{background:"#EAEAEA"}},affinityConfigField:{display:"flex"},affinityFieldLabel:{display:"flex",flexFlow:"column",flex:1},radioField:{display:"flex",alignItems:"flex-start",marginTop:10,"& div:first-child":{display:"flex",flexFlow:"column",alignItems:"baseline",textAlign:"left !important"}},affinityLabelKey:{"& div:first-child":{marginBottom:0}},affinityLabelValue:{marginLeft:10,"& div:first-child":{marginBottom:0}},rowActions:{display:"flex",alignItems:"center"},fieldContainer:{marginBottom:0},affinityRow:{marginBottom:10,display:"flex"}},r.oO),r.AK))}))(U((function(e){var t=e.classes,n=e.podAffinity,o=e.nodeSelectorLabels,l=e.withPodAntiAffinity,r=e.setModalErrorSnackMessage,u=e.keyValuePairs,d=e.setPoolKeyValuePairs,f=e.setPoolField,m=e.isPoolPageValid,x=e.tolerations,p=e.setPoolTolerationInfo,v=e.removePoolToleration,g=e.addNewPoolToleration,C=(0,s.useState)({}),Z=(0,i.Z)(C,2),N=Z[0],A=Z[1],_=(0,s.useState)(!0),w=(0,i.Z)(_,2),I=w[0],F=w[1],z=(0,s.useState)({}),T=(0,i.Z)(z,2),L=T[0],U=T[1],B=(0,s.useState)([]),M=(0,i.Z)(B,2),D=M[0],W=M[1],J=(0,s.useCallback)((function(e,t){f("affinity",e,t)}),[f]);(0,s.useEffect)((function(){I&&b.Z.invoke("GET","/api/v1/nodes/labels").then((function(e){F(!1),U(e);var t=[];for(var n in e)t.push({label:n,value:n});W(t)})).catch((function(e){F(!1),r(e),U({})}))}),[r,I]),(0,s.useEffect)((function(){if(u){var e=u.filter((function(e){return""!==e.key})).map((function(e){return"".concat(e.key,"=").concat(e.value)})).filter((function(e,t,n){return n.indexOf(e)===t})).join("&");J("nodeSelectorLabels",e)}}),[u,J]),(0,s.useEffect)((function(){var e=[];if("nodeSelector"===n){var t=!0,i=o.split("&");1===i.length&&""===i[0]&&(t=!1),i.forEach((function(e,n){var a=e.split("=");2!==a.length&&(t=!1),n+1!==i.length&&(""!==a[0]&&""!==a[1]||(t=!1))})),e=[].concat((0,k.Z)(e),[{fieldKey:"labels",required:!0,value:o,customValidation:!t,customValidationMessage:"You need to add at least one label key-pair"}])}var a=(0,P.R)(e);m("affinity",0===Object.keys(a).length),A(a)}),[m,n,o]);var $=function(e,t,n){var i=(0,a.Z)((0,a.Z)({},x[e]),{},(0,G.Z)({},t,n));p(e,i)};return(0,S.jsxs)(y.Z,{className:t.paperWrapper,children:[(0,S.jsxs)("div",{className:t.headerElement,children:[(0,S.jsx)("h3",{className:t.h3Section,children:"Pod Placement"}),(0,S.jsx)("span",{className:t.descriptionText,children:"Configure how pods will be assigned to nodes"})]}),(0,S.jsx)(c.ZP,{item:!0,xs:12,className:t.affinityConfigField,children:(0,S.jsxs)(c.ZP,{item:!0,className:t.affinityFieldLabel,children:[(0,S.jsx)("div",{className:t.label,children:"Type"}),(0,S.jsx)("div",{className:"".concat(t.descriptionText," ").concat(t.affinityHelpText),children:"MinIO supports multiple configurations for Pod Affinity"}),(0,S.jsx)(c.ZP,{item:!0,className:t.radioField,children:(0,S.jsx)(O.Z,{currentSelection:n,id:"affinity-options",name:"affinity-options",label:" ",onChange:function(e){J("podAffinity",e.target.value)},selectorOptions:[{label:"None",value:"none"},{label:"Default (Pod Anti-Affinnity)",value:"default"},{label:"Node Selector",value:"nodeSelector"}]})})]})}),"nodeSelector"===n&&(0,S.jsxs)(s.Fragment,{children:[(0,S.jsx)("br",{}),(0,S.jsx)(c.ZP,{item:!0,xs:12,children:(0,S.jsx)(E.Z,{value:"with_pod_anti_affinity",id:"with_pod_anti_affinity",name:"with_pod_anti_affinity",checked:l,onChange:function(e){var t=e.target.checked;J("withPodAntiAffinity",t)},label:"With Pod Anti-Affinity"})}),(0,S.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,S.jsx)("h3",{children:"Labels"}),(0,S.jsx)("span",{className:t.error,children:N.labels}),(0,S.jsx)(c.ZP,{container:!0,children:u&&u.map((function(e,n){return(0,S.jsxs)(c.ZP,{item:!0,xs:12,className:t.affinityRow,children:[(0,S.jsxs)(c.ZP,{item:!0,xs:5,className:t.affinityLabelKey,children:[D.length>0&&(0,S.jsx)(j.Z,{onChange:function(e){var t=e.target.value,i=Object.assign([],u);i[n].key=e.target.value,i[n].value=L[t][0],d(i)},id:"select-access-policy",name:"select-access-policy",label:"",value:e.key,options:D}),0===D.length&&(0,S.jsx)(h.Z,{id:"nodeselector-key-".concat(n.toString()),label:"",name:"nodeselector-".concat(n.toString()),value:e.key,onChange:function(e){var t=Object.assign([],u);t[n].key=e.target.value,d(t)},index:n,placeholder:"Key"})]}),(0,S.jsxs)(c.ZP,{item:!0,xs:5,className:t.affinityLabelValue,children:[D.length>0&&(0,S.jsx)(j.Z,{onChange:function(e){var t=Object.assign([],u);t[n].value=e.target.value,d(t)},id:"select-access-policy",name:"select-access-policy",label:"",value:e.value,options:L[e.key]?L[e.key].map((function(e){return{label:e,value:e}})):[]}),0===D.length&&(0,S.jsx)(h.Z,{id:"nodeselector-value-".concat(n.toString()),label:"",name:"nodeselector-".concat(n.toString()),value:e.value,onChange:function(e){var t=Object.assign([],u);t[n].value=e.target.value,d(t)},index:n,placeholder:"value"})]}),(0,S.jsxs)(c.ZP,{item:!0,xs:2,className:t.rowActions,children:[(0,S.jsx)("div",{className:t.overlayAction,children:(0,S.jsx)(V.Z,{size:"small",onClick:function(){var e=Object.assign([],u);D.length>0?e.push({key:D[0].value,value:L[D[0].value][0]}):e.push({key:"",value:""}),d(e)},children:(0,S.jsx)(R.Z,{})})}),u.length>1&&(0,S.jsx)("div",{className:t.overlayAction,children:(0,S.jsx)(V.Z,{size:"small",onClick:function(){var e=u.filter((function(e,t){return t!==n}));d(e)},children:(0,S.jsx)(K.Z,{})})})]})]},"affinity-keyVal-".concat(n.toString()))}))})]})]}),(0,S.jsx)(c.ZP,{item:!0,xs:12,className:t.affinityConfigField,children:(0,S.jsxs)(c.ZP,{item:!0,className:t.affinityFieldLabel,children:[(0,S.jsx)("h3",{children:"Tolerations"}),(0,S.jsx)("span",{className:t.error,children:N.tolerations}),(0,S.jsx)(c.ZP,{container:!0,children:x&&x.map((function(e,n){var i;return(0,S.jsxs)(c.ZP,{item:!0,xs:12,className:t.affinityRow,children:[(0,S.jsx)(q.Z,{effect:e.effect,onEffectChange:function(e){$(n,"effect",e)},tolerationKey:e.key,onTolerationKeyChange:function(e){$(n,"key",e)},operator:e.operator,onOperatorChange:function(e){$(n,"operator",e)},value:e.value,onValueChange:function(e){$(n,"value",e)},tolerationSeconds:(null===(i=e.tolerationSeconds)||void 0===i?void 0:i.seconds)||0,onSecondsChange:function(e){$(n,"tolerationSeconds",{seconds:e})},index:n}),(0,S.jsx)("div",{className:t.overlayAction,children:(0,S.jsx)(V.Z,{size:"small",onClick:g,disabled:n!==x.length-1,children:(0,S.jsx)(R.Z,{})})}),(0,S.jsx)("div",{className:t.overlayAction,children:(0,S.jsx)(V.Z,{size:"small",onClick:function(){return v(n)},disabled:x.length<=1,children:(0,S.jsx)(K.Z,{})})})]},"affinity-keyVal-".concat(n.toString()))}))})]})})]})}))),M=n(76256),D=n(84669),W=["setup","affinity","configure"],J=(0,C.$j)((function(e){var t=e.tenants.addPool;return{tenant:e.tenants.tenantDetails.tenantInfo,selectedStorageClass:t.fields.setup.storageClass,validPages:t.validPages,storageClasses:t.storageClasses,numberOfNodes:t.fields.setup.numberOfNodes,volumeSize:t.fields.setup.volumeSize,volumesPerServer:t.fields.setup.volumesPerServer,affinityType:t.fields.affinity.podAffinity,nodeSelectorLabels:t.fields.affinity.nodeSelectorLabels,withPodAntiAffinity:t.fields.affinity.withPodAntiAffinity,tolerations:t.fields.tolerations,securityContextEnabled:t.fields.configuration.securityContextEnabled,securityContext:t.fields.configuration.securityContext}}),{resetPoolForm:Z.bU,setPoolField:Z.oo,isPoolPageValid:Z.LJ,setErrorSnackMessage:L.Ih,setTenantDetailsLoad:Z.V2}),$=(0,l.Z)((function(e){return(0,o.Z)((0,a.Z)((0,a.Z)({buttonContainer:{textAlign:"right"},bottomContainer:{display:"flex",flexGrow:1,alignItems:"center",margin:"auto",justifyContent:"center","& div":{width:150,"@media (max-width: 900px)":{flexFlow:"column"}}},factorElements:{display:"flex",justifyContent:"flex-start",marginLeft:30},sizeNumber:{fontSize:35,fontWeight:700,textAlign:"center"},sizeDescription:{fontSize:14,color:"#777",textAlign:"center"},pageBox:{border:"1px solid #EAEAEA",borderTop:0},addPoolTitle:{border:"1px solid #EAEAEA",borderBottom:0}},r.DF),r.ID))}))(J((function(e){var t=e.tenant,n=e.classes,o=e.resetPoolForm,l=e.selectedStorageClass,r=e.validPages,v=e.numberOfNodes,g=e.volumeSize,h=e.affinityType,y=e.nodeSelectorLabels,j=e.withPodAntiAffinity,C=e.tolerations,Z=e.securityContextEnabled,P=e.securityContext,N=e.volumesPerServer,A=e.setTenantDetailsLoad,k=(0,s.useState)(!1),F=(0,i.Z)(k,2),E=F[0],z=F[1],G="/namespaces/".concat((null===t||void 0===t?void 0:t.namespace)||"","/tenants/").concat((null===t||void 0===t?void 0:t.name)||"","/pools");(0,s.useEffect)((function(){if(E&&t){var e=(0,u.en)(t.pools),n={};switch(h){case"default":n={affinity:(0,M.P)(t.name,e)};break;case"nodeSelector":n={affinity:(0,M.q)(y,j,t.name,e)}}var i=C.filter((function(e){return""!==e.key.trim()})),s=(0,a.Z)({name:e,servers:v,volumes_per_server:N,volume_configuration:{size:1073741824*g,storage_class_name:l,labels:null},tolerations:i,securityContext:Z?P:null},n);b.Z.invoke("POST","/api/v1/namespaces/".concat(t.namespace,"/tenants/").concat(t.name,"/pools"),s).then((function(){z(!1),o(),A(!0),p.Z.push(G)})).catch((function(e){z(!1),(0,L.Ih)(e)}))}}),[E,G,o,A,h,y,v,P,Z,l,t,C,g,N,j]);var V={label:"Cancel",type:"other",enabled:!0,action:function(){o(),p.Z.push(G)}},O={label:"Create",type:"submit",enabled:!E&&""!==l&&W.every((function(e){return r.includes(e)})),action:function(){z(!0)}},R=[{label:"Setup",componentRender:(0,S.jsx)(_,{}),buttons:[V,O]},{label:"Configuration",advancedOnly:!0,componentRender:(0,S.jsx)(T,{}),buttons:[V,O]},{label:"Pod Placement",advancedOnly:!0,componentRender:(0,S.jsx)(B,{}),buttons:[V,O]}];return(0,S.jsx)(s.Fragment,{children:(0,S.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,S.jsx)(f.Z,{label:(0,S.jsx)(s.Fragment,{children:(0,S.jsx)(D.Z,{to:G,label:"Tenant Pools"})})}),(0,S.jsxs)(m.Z,{children:[(0,S.jsx)(c.ZP,{item:!0,xs:12,className:n.addPoolTitle,children:(0,S.jsx)(w.Z,{icon:(0,S.jsx)(I.Z,{}),title:"Add New Pool to ".concat((null===t||void 0===t?void 0:t.name)||""),subTitle:(0,S.jsxs)(s.Fragment,{children:["Namespace: ",(null===t||void 0===t?void 0:t.namespace)||""," / Current Capacity:"," ",(0,u.ae)(((null===t||void 0===t?void 0:t.total_size)||0).toString(10))]})})}),E&&(0,S.jsx)(c.ZP,{item:!0,xs:12,children:(0,S.jsx)(d.Z,{})}),(0,S.jsx)(c.ZP,{item:!0,xs:12,className:n.pageBox,children:(0,S.jsx)(x.Z,{wizardSteps:R})})]})]})})})))}}]); +//# sourceMappingURL=255.c0b2782b.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/255.c0b2782b.chunk.js.map b/portal-ui/build/static/js/255.c0b2782b.chunk.js.map new file mode 100644 index 000000000..d5e284d96 --- /dev/null +++ b/portal-ui/build/static/js/255.c0b2782b.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/255.c0b2782b.chunk.js","mappings":"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","sources":["screens/Console/Common/ScreenTitle/ScreenTitle.tsx","screens/Console/Tenants/TenantDetails/Pools/PoolResources.tsx","screens/Console/Tenants/TenantDetails/Pools/PoolConfiguration.tsx","screens/Console/Tenants/TenantDetails/Pools/PoolPodPlacement.tsx","screens/Console/Tenants/TenantDetails/Pools/AddPool.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IScreenTitle {\n classes: any;\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n screenTitle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n },\n });\n\nconst ScreenTitle = ({\n classes,\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n return (\n \n \n
    \n {icon ?
    {icon}
    : null}\n
    \n

    {title}

    \n {subTitle}\n
    \n
    \n\n
    {actions}
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ScreenTitle);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport { niceBytes } from \"../../../../../common/utils\";\nimport { Paper, SelectChangeEvent } from \"@mui/material\";\nimport api from \"../../../../../common/api\";\nimport { ITenant } from \"../../ListTenants/types\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { IQuotaElement, IQuotas, Opts } from \"../../ListTenants/utils\";\nimport { AppState } from \"../../../../../store\";\nimport { connect } from \"react-redux\";\nimport {\n isPoolPageValid,\n setPoolField,\n setPoolStorageClasses,\n} from \"../../actions\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport InputUnitMenu from \"../../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\ninterface IPoolResourcesProps {\n tenant: ITenant | null;\n classes: any;\n storageClasses: Opts[];\n numberOfNodes: string;\n storageClass: string;\n volumeSize: string;\n volumesPerServer: string;\n setPoolField: typeof setPoolField;\n isPoolPageValid: typeof isPoolPageValid;\n setPoolStorageClasses: typeof setPoolStorageClasses;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n bottomContainer: {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n margin: \"auto\",\n justifyContent: \"center\",\n \"& div\": {\n width: 150,\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n },\n factorElements: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n marginLeft: 30,\n },\n sizeNumber: {\n fontSize: 35,\n fontWeight: 700,\n textAlign: \"center\",\n },\n sizeDescription: {\n fontSize: 14,\n color: \"#777\",\n textAlign: \"center\",\n },\n ...formFieldStyles,\n ...wizardCommon,\n });\n\nconst PoolResources = ({\n tenant,\n classes,\n storageClasses,\n numberOfNodes,\n storageClass,\n volumeSize,\n volumesPerServer,\n setPoolField,\n setPoolStorageClasses,\n isPoolPageValid,\n}: IPoolResourcesProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n const instanceCapacity: number =\n parseInt(volumeSize) * 1073741824 * parseInt(volumesPerServer);\n const totalCapacity: number = instanceCapacity * parseInt(numberOfNodes);\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [\n {\n fieldKey: \"number_of_nodes\",\n required: true,\n value: numberOfNodes.toString(),\n customValidation:\n parseInt(numberOfNodes) < 1 || isNaN(parseInt(numberOfNodes)),\n customValidationMessage: \"Number of servers must be at least 1\",\n },\n {\n fieldKey: \"pool_size\",\n required: true,\n value: volumeSize.toString(),\n customValidation:\n parseInt(volumeSize) < 1 || isNaN(parseInt(volumeSize)),\n customValidationMessage: \"Pool Size cannot be 0\",\n },\n {\n fieldKey: \"volumes_per_server\",\n required: true,\n value: volumesPerServer.toString(),\n customValidation:\n parseInt(volumesPerServer) < 1 || isNaN(parseInt(volumesPerServer)),\n customValidationMessage: \"1 volume or more are required\",\n },\n ];\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPoolPageValid(\"setup\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n isPoolPageValid,\n numberOfNodes,\n volumeSize,\n volumesPerServer,\n storageClass,\n ]);\n\n useEffect(() => {\n if (storageClasses.length === 0 && tenant) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenant.namespace}/resourcequotas/${tenant.namespace}-storagequota`\n )\n .then((res: IQuotas) => {\n const elements: IQuotaElement[] = get(res, \"elements\", []);\n\n const newStorage = elements.map((storageClass: any) => {\n const name = get(storageClass, \"name\", \"\").split(\n \".storageclass.storage.k8s.io/requests.storage\"\n )[0];\n\n return { label: name, value: name };\n });\n\n setPoolField(\"setup\", \"storageClass\", newStorage[0].value);\n\n setPoolStorageClasses(newStorage);\n })\n .catch((err: ErrorResponseHandler) => {\n console.error(err);\n });\n }\n }, [tenant, storageClasses, setPoolStorageClasses, setPoolField]);\n\n const setFieldInfo = (fieldName: string, value: any) => {\n setPoolField(\"setup\", fieldName, value);\n };\n\n return (\n \n
    \n

    New Pool Configuration

    \n \n Configure a new Pool to expand MinIO storage\n \n
    \n\n \n ) => {\n const intValue = parseInt(e.target.value);\n\n if (e.target.validity.valid && !isNaN(intValue)) {\n setFieldInfo(\"numberOfNodes\", intValue);\n } else if (isNaN(intValue)) {\n setFieldInfo(\"numberOfNodes\", 0);\n }\n }}\n label=\"Number of Servers\"\n value={numberOfNodes}\n error={validationErrors[\"number_of_nodes\"] || \"\"}\n pattern={\"[0-9]*\"}\n />\n \n \n ) => {\n const intValue = parseInt(e.target.value);\n\n if (e.target.validity.valid && !isNaN(intValue)) {\n setFieldInfo(\"volumeSize\", intValue);\n } else if (isNaN(intValue)) {\n setFieldInfo(\"volumeSize\", 0);\n }\n }}\n label=\"Volume Size\"\n value={volumeSize}\n error={validationErrors[\"pool_size\"] || \"\"}\n pattern={\"[0-9]*\"}\n overlayObject={\n {}}\n unitSelected={\"Gi\"}\n unitsList={[{ label: \"Gi\", value: \"Gi\" }]}\n disabled={true}\n />\n }\n />\n \n \n ) => {\n const intValue = parseInt(e.target.value);\n\n if (e.target.validity.valid && !isNaN(intValue)) {\n setFieldInfo(\"volumesPerServer\", intValue);\n } else if (isNaN(intValue)) {\n setFieldInfo(\"volumesPerServer\", 0);\n }\n }}\n label=\"Volumes per Server\"\n value={volumesPerServer}\n error={validationErrors[\"volumes_per_server\"] || \"\"}\n pattern={\"[0-9]*\"}\n />\n \n \n ) => {\n setFieldInfo(\"storageClasses\", e.target.value as string);\n }}\n label=\"Storage Class\"\n value={storageClass}\n options={storageClasses}\n disabled={storageClasses.length < 1}\n />\n \n \n
    \n
    \n
    \n {niceBytes(instanceCapacity.toString(10))}\n
    \n
    Instance Capacity
    \n
    \n
    \n
    \n {niceBytes(totalCapacity.toString(10))}\n
    \n
    Total Capacity
    \n
    \n
    \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => {\n const setupFields = state.tenants.addPool.fields.setup;\n return {\n tenant: state.tenants.tenantDetails.tenantInfo,\n storageClasses: state.tenants.addPool.storageClasses,\n numberOfNodes: setupFields.numberOfNodes.toString(),\n storageClass: setupFields.storageClass,\n volumeSize: setupFields.volumeSize.toString(),\n volumesPerServer: setupFields.volumesPerServer.toString(),\n };\n};\n\nconst connector = connect(mapState, {\n setPoolField,\n isPoolPageValid,\n setPoolStorageClasses,\n});\n\nexport default withStyles(styles)(connector(PoolResources));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, Paper } from \"@mui/material\";\nimport {\n createTenantCommon,\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { isPoolPageValid, setPoolField } from \"../../actions\";\nimport { AppState } from \"../../../../../store\";\nimport { clearValidationError } from \"../../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { ISecurityContext } from \"../../types\";\n\ninterface IConfigureProps {\n setPoolField: typeof setPoolField;\n isPoolPageValid: typeof isPoolPageValid;\n classes: any;\n securityContextEnabled: boolean;\n securityContext: ISecurityContext;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n configSectionItem: {\n marginRight: 15,\n\n \"& .multiContainer\": {\n border: \"1px solid red\",\n },\n },\n tenantCustomizationFields: {\n marginLeft: 30, // 2nd Level(15+15)\n width: \"88%\",\n margin: \"auto\",\n },\n containerItem: {\n marginRight: 15,\n },\n fieldGroup: {\n ...createTenantCommon.fieldGroup,\n paddingTop: 15,\n marginBottom: 25,\n },\n responsiveSectionItem: {\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n\n \"& div > div\": {\n marginBottom: 5,\n marginRight: 0,\n },\n },\n },\n\n fieldSpaceTop: {\n marginTop: 15,\n },\n\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst PoolConfiguration = ({\n classes,\n setPoolField,\n securityContextEnabled,\n isPoolPageValid,\n securityContext,\n}: IConfigureProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n setPoolField(\"configuration\", field, value);\n },\n [setPoolField]\n );\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n if (securityContextEnabled) {\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"pool_securityContext_runAsUser\",\n required: true,\n value: securityContext.runAsUser,\n customValidation:\n securityContext.runAsUser === \"\" ||\n parseInt(securityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"pool_securityContext_runAsGroup\",\n required: true,\n value: securityContext.runAsGroup,\n customValidation:\n securityContext.runAsGroup === \"\" ||\n parseInt(securityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"pool_securityContext_fsGroup\",\n required: true,\n value: securityContext.fsGroup,\n customValidation:\n securityContext.fsGroup === \"\" ||\n parseInt(securityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPoolPageValid(\"configure\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [isPoolPageValid, securityContextEnabled, securityContext]);\n\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n\n return (\n \n
    \n

    Configure

    \n \n Aditional Configurations for the new Pool\n \n
    \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"securityContextEnabled\", checked);\n }}\n label={\"Security Context\"}\n />\n \n {securityContextEnabled && (\n \n
    \n \n Pool's Security Context\n \n \n \n
    \n ) => {\n updateField(\"securityContext\", {\n ...securityContext,\n runAsUser: e.target.value,\n });\n cleanValidation(\"pool_securityContext_runAsUser\");\n }}\n label=\"Run As User\"\n value={securityContext.runAsUser}\n required\n error={\n validationErrors[\"pool_securityContext_runAsUser\"] || \"\"\n }\n min=\"0\"\n />\n
    \n
    \n ) => {\n updateField(\"securityContext\", {\n ...securityContext,\n runAsGroup: e.target.value,\n });\n cleanValidation(\"pool_securityContext_runAsGroup\");\n }}\n label=\"Run As Group\"\n value={securityContext.runAsGroup}\n required\n error={\n validationErrors[\"pool_securityContext_runAsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n
    \n
    \n ) => {\n updateField(\"securityContext\", {\n ...securityContext,\n fsGroup: e.target.value,\n });\n cleanValidation(\"pool_securityContext_fsGroup\");\n }}\n label=\"FsGroup\"\n value={securityContext.fsGroup}\n required\n error={\n validationErrors[\"pool_securityContext_fsGroup\"] || \"\"\n }\n min=\"0\"\n />\n
    \n \n
    \n
    \n \n
    \n {\n const targetD = e.target;\n const checked = targetD.checked;\n updateField(\"securityContext\", {\n ...securityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
    \n
    \n
    \n
    \n )}\n
    \n );\n};\n\nconst mapState = (state: AppState) => {\n const configuration = state.tenants.addPool.fields.configuration;\n\n return {\n securityContextEnabled: configuration.securityContextEnabled,\n securityContext: configuration.securityContext,\n };\n};\n\nconst connector = connect(mapState, {\n setPoolField,\n isPoolPageValid,\n});\n\nexport default withStyles(styles)(connector(PoolConfiguration));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Paper, SelectChangeEvent } from \"@mui/material\";\nimport { AppState } from \"../../../../../store\";\nimport {\n isPoolPageValid,\n setPoolField,\n setPoolTolerationInfo,\n addNewPoolToleration,\n removePoolToleration,\n setPoolKeyValuePairs,\n} from \"../../actions\";\nimport { setModalErrorSnackMessage } from \"../../../../../actions\";\nimport {\n modalBasic,\n wizardCommon,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../../utils/validationFunctions\";\nimport {\n ErrorResponseHandler,\n ITolerationModel,\n} from \"../../../../../common/types\";\nimport { LabelKeyPair } from \"../../types\";\nimport RadioGroupSelector from \"../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport FormSwitchWrapper from \"../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../common/api\";\nimport InputBoxWrapper from \"../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport AddIcon from \"../../../../../icons/AddIcon\";\nimport RemoveIcon from \"../../../../../icons/RemoveIcon\";\nimport SelectWrapper from \"../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport TolerationSelector from \"../../../Common/TolerationSelector/TolerationSelector\";\n\ninterface IAffinityProps {\n classes: any;\n podAffinity: string;\n nodeSelectorLabels: string;\n withPodAntiAffinity: boolean;\n keyValuePairs: LabelKeyPair[];\n tolerations: ITolerationModel[];\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n setPoolField: typeof setPoolField;\n isPoolPageValid: typeof isPoolPageValid;\n setPoolKeyValuePairs: typeof setPoolKeyValuePairs;\n setPoolTolerationInfo: typeof setPoolTolerationInfo;\n removePoolToleration: typeof removePoolToleration;\n addNewPoolToleration: typeof addNewPoolToleration;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n overlayAction: {\n marginLeft: 10,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"& button\": {\n background: \"#EAEAEA\",\n },\n },\n affinityConfigField: {\n display: \"flex\",\n },\n affinityFieldLabel: {\n display: \"flex\",\n flexFlow: \"column\",\n flex: 1,\n },\n radioField: {\n display: \"flex\",\n alignItems: \"flex-start\",\n marginTop: 10,\n \"& div:first-child\": {\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"baseline\",\n textAlign: \"left !important\",\n },\n },\n affinityLabelKey: {\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n affinityLabelValue: {\n marginLeft: 10,\n \"& div:first-child\": {\n marginBottom: 0,\n },\n },\n rowActions: {\n display: \"flex\",\n alignItems: \"center\",\n },\n fieldContainer: {\n marginBottom: 0,\n },\n affinityRow: {\n marginBottom: 10,\n display: \"flex\",\n },\n ...modalBasic,\n ...wizardCommon,\n });\n\ninterface OptionPair {\n label: string;\n value: string;\n}\n\nconst Affinity = ({\n classes,\n podAffinity,\n nodeSelectorLabels,\n withPodAntiAffinity,\n setModalErrorSnackMessage,\n keyValuePairs,\n setPoolKeyValuePairs,\n setPoolField,\n isPoolPageValid,\n tolerations,\n setPoolTolerationInfo,\n removePoolToleration,\n addNewPoolToleration,\n}: IAffinityProps) => {\n const [validationErrors, setValidationErrors] = useState({});\n const [loading, setLoading] = useState(true);\n const [keyValueMap, setKeyValueMap] = useState<{ [key: string]: string[] }>(\n {}\n );\n const [keyOptions, setKeyOptions] = useState([]);\n\n // Common\n const updateField = useCallback(\n (field: string, value: any) => {\n setPoolField(\"affinity\", field, value);\n },\n [setPoolField]\n );\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/nodes/labels`)\n .then((res: { [key: string]: string[] }) => {\n setLoading(false);\n setKeyValueMap(res);\n let keys: OptionPair[] = [];\n for (let k in res) {\n keys.push({\n label: k,\n value: k,\n });\n }\n setKeyOptions(keys);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n setKeyValueMap({});\n });\n }\n }, [setModalErrorSnackMessage, loading]);\n\n useEffect(() => {\n if (keyValuePairs) {\n const vlr = keyValuePairs\n .filter((kvp) => kvp.key !== \"\")\n .map((kvp) => `${kvp.key}=${kvp.value}`)\n .filter((kvs, i, a) => a.indexOf(kvs) === i);\n const vl = vlr.join(\"&\");\n updateField(\"nodeSelectorLabels\", vl);\n }\n }, [keyValuePairs, updateField]);\n\n // Validation\n useEffect(() => {\n let customAccountValidation: IValidation[] = [];\n\n if (podAffinity === \"nodeSelector\") {\n let valid = true;\n\n const splittedLabels = nodeSelectorLabels.split(\"&\");\n\n if (splittedLabels.length === 1 && splittedLabels[0] === \"\") {\n valid = false;\n }\n\n splittedLabels.forEach((item: string, index: number) => {\n const splitItem = item.split(\"=\");\n\n if (splitItem.length !== 2) {\n valid = false;\n }\n\n if (index + 1 !== splittedLabels.length) {\n if (splitItem[0] === \"\" || splitItem[1] === \"\") {\n valid = false;\n }\n }\n });\n\n customAccountValidation = [\n ...customAccountValidation,\n {\n fieldKey: \"labels\",\n required: true,\n value: nodeSelectorLabels,\n customValidation: !valid,\n customValidationMessage:\n \"You need to add at least one label key-pair\",\n },\n ];\n }\n\n const commonVal = commonFormValidation(customAccountValidation);\n\n isPoolPageValid(\"affinity\", Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [isPoolPageValid, podAffinity, nodeSelectorLabels]);\n\n const updateToleration = (index: number, field: string, value: any) => {\n const alterToleration = { ...tolerations[index], [field]: value };\n\n setPoolTolerationInfo(index, alterToleration);\n };\n\n return (\n \n
    \n

    Pod Placement

    \n \n Configure how pods will be assigned to nodes\n \n
    \n \n \n
    Type
    \n \n MinIO supports multiple configurations for Pod Affinity\n \n \n {\n updateField(\"podAffinity\", e.target.value);\n }}\n selectorOptions={[\n { label: \"None\", value: \"none\" },\n { label: \"Default (Pod Anti-Affinnity)\", value: \"default\" },\n { label: \"Node Selector\", value: \"nodeSelector\" },\n ]}\n />\n \n
    \n
    \n {podAffinity === \"nodeSelector\" && (\n \n
    \n \n {\n const targetD = e.target;\n const checked = targetD.checked;\n\n updateField(\"withPodAntiAffinity\", checked);\n }}\n label={\"With Pod Anti-Affinity\"}\n />\n \n \n

    Labels

    \n {validationErrors[\"labels\"]}\n \n {keyValuePairs &&\n keyValuePairs.map((kvp, i) => {\n return (\n \n \n {keyOptions.length > 0 && (\n ) => {\n const newKey = e.target.value as string;\n const arrCp: LabelKeyPair[] = Object.assign(\n [],\n keyValuePairs\n );\n\n arrCp[i].key = e.target.value as string;\n arrCp[i].value = keyValueMap[newKey][0];\n setPoolKeyValuePairs(arrCp);\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.key}\n options={keyOptions}\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = Object.assign(\n [],\n keyValuePairs\n );\n arrCp[i].key = e.target.value;\n setPoolKeyValuePairs(arrCp);\n }}\n index={i}\n placeholder={\"Key\"}\n />\n )}\n \n \n {keyOptions.length > 0 && (\n ) => {\n const arrCp: LabelKeyPair[] = Object.assign(\n [],\n keyValuePairs\n );\n arrCp[i].value = e.target.value as string;\n setPoolKeyValuePairs(arrCp);\n }}\n id=\"select-access-policy\"\n name=\"select-access-policy\"\n label={\"\"}\n value={kvp.value}\n options={\n keyValueMap[kvp.key]\n ? keyValueMap[kvp.key].map((v) => {\n return { label: v, value: v };\n })\n : []\n }\n />\n )}\n {keyOptions.length === 0 && (\n {\n const arrCp: LabelKeyPair[] = Object.assign(\n [],\n keyValuePairs\n );\n arrCp[i].value = e.target.value;\n setPoolKeyValuePairs(arrCp);\n }}\n index={i}\n placeholder={\"value\"}\n />\n )}\n \n \n
    \n {\n const arrCp = Object.assign([], keyValuePairs);\n if (keyOptions.length > 0) {\n arrCp.push({\n key: keyOptions[0].value,\n value: keyValueMap[keyOptions[0].value][0],\n });\n } else {\n arrCp.push({ key: \"\", value: \"\" });\n }\n\n setPoolKeyValuePairs(arrCp);\n }}\n >\n \n \n
    \n {keyValuePairs.length > 1 && (\n
    \n {\n const arrCp = keyValuePairs.filter(\n (item, index) => index !== i\n );\n setPoolKeyValuePairs(arrCp);\n }}\n >\n \n \n
    \n )}\n
    \n
    \n );\n })}\n
    \n \n
    \n )}\n \n \n

    Tolerations

    \n \n {validationErrors[\"tolerations\"]}\n \n \n {tolerations &&\n tolerations.map((tol, i) => {\n return (\n \n {\n updateToleration(i, \"effect\", value);\n }}\n tolerationKey={tol.key}\n onTolerationKeyChange={(value) => {\n updateToleration(i, \"key\", value);\n }}\n operator={tol.operator}\n onOperatorChange={(value) => {\n updateToleration(i, \"operator\", value);\n }}\n value={tol.value}\n onValueChange={(value) => {\n updateToleration(i, \"value\", value);\n }}\n tolerationSeconds={tol.tolerationSeconds?.seconds || 0}\n onSecondsChange={(value) => {\n updateToleration(i, \"tolerationSeconds\", {\n seconds: value,\n });\n }}\n index={i}\n />\n
    \n \n \n \n
    \n\n
    \n removePoolToleration(i)}\n disabled={tolerations.length <= 1}\n >\n \n \n
    \n
    \n );\n })}\n
    \n
    \n \n
    \n );\n};\n\nconst mapState = (state: AppState) => {\n const addPool = state.tenants.addPool;\n\n return {\n podAffinity: addPool.fields.affinity.podAffinity,\n nodeSelectorLabels: addPool.fields.affinity.nodeSelectorLabels,\n withPodAntiAffinity: addPool.fields.affinity.withPodAntiAffinity,\n keyValuePairs: addPool.fields.nodeSelectorPairs,\n tolerations: addPool.fields.tolerations,\n };\n};\n\nconst connector = connect(mapState, {\n setModalErrorSnackMessage,\n setPoolField,\n isPoolPageValid,\n setPoolKeyValuePairs,\n setPoolTolerationInfo,\n addNewPoolToleration,\n removePoolToleration,\n});\n\nexport default withStyles(styles)(connector(Affinity));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../../Common/FormComponents/common/styleLibrary\";\nimport Grid from \"@mui/material/Grid\";\nimport { generatePoolName, niceBytes } from \"../../../../../common/utils\";\nimport { LinearProgress } from \"@mui/material\";\nimport { IAddPoolRequest, ITenant } from \"../../ListTenants/types\";\nimport PageHeader from \"../../../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../../../Common/Layout/PageLayout\";\nimport GenericWizard from \"../../../Common/GenericWizard/GenericWizard\";\nimport { IWizardElement } from \"../../../Common/GenericWizard/types\";\nimport history from \"../../../../../history\";\nimport PoolResources from \"./PoolResources\";\nimport ScreenTitle from \"../../../Common/ScreenTitle/ScreenTitle\";\nimport TenantsIcon from \"../../../../../icons/TenantsIcon\";\nimport {\n isPoolPageValid,\n resetPoolForm,\n setPoolField,\n setTenantDetailsLoad,\n} from \"../../actions\";\nimport { AppState } from \"../../../../../store\";\nimport { connect } from \"react-redux\";\nimport PoolConfiguration from \"./PoolConfiguration\";\nimport PoolPodPlacement from \"./PoolPodPlacement\";\nimport {\n ErrorResponseHandler,\n ITolerationModel,\n} from \"../../../../../common/types\";\nimport { getDefaultAffinity, getNodeSelector } from \"../utils\";\nimport api from \"../../../../../common/api\";\nimport { ISecurityContext } from \"../../types\";\nimport BackLink from \"../../../../../common/BackLink\";\nimport { setErrorSnackMessage } from \"../../../../../actions\";\n\ninterface IAddPoolProps {\n tenant: ITenant | null;\n classes: any;\n open: boolean;\n match: any;\n selectedStorageClass: string;\n validPages: string[];\n numberOfNodes: number;\n volumeSize: number;\n volumesPerServer: number;\n affinityType: string;\n nodeSelectorLabels: string;\n withPodAntiAffinity: boolean;\n securityContextEnabled: boolean;\n tolerations: ITolerationModel[];\n securityContext: ISecurityContext;\n resetPoolForm: typeof resetPoolForm;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n bottomContainer: {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n margin: \"auto\",\n justifyContent: \"center\",\n \"& div\": {\n width: 150,\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n },\n factorElements: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n marginLeft: 30,\n },\n sizeNumber: {\n fontSize: 35,\n fontWeight: 700,\n textAlign: \"center\",\n },\n sizeDescription: {\n fontSize: 14,\n color: \"#777\",\n textAlign: \"center\",\n },\n pageBox: {\n border: \"1px solid #EAEAEA\",\n borderTop: 0,\n },\n addPoolTitle: {\n border: \"1px solid #EAEAEA\",\n borderBottom: 0,\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst requiredPages = [\"setup\", \"affinity\", \"configure\"];\n\nconst AddPool = ({\n tenant,\n classes,\n resetPoolForm,\n selectedStorageClass,\n validPages,\n numberOfNodes,\n volumeSize,\n affinityType,\n nodeSelectorLabels,\n withPodAntiAffinity,\n tolerations,\n securityContextEnabled,\n securityContext,\n volumesPerServer,\n setTenantDetailsLoad,\n}: IAddPoolProps) => {\n const [addSending, setAddSending] = useState(false);\n\n const poolsURL = `/namespaces/${tenant?.namespace || \"\"}/tenants/${\n tenant?.name || \"\"\n }/pools`;\n\n useEffect(() => {\n if (addSending && tenant) {\n const poolName = generatePoolName(tenant.pools);\n\n let affinityObject = {};\n\n switch (affinityType) {\n case \"default\":\n affinityObject = {\n affinity: getDefaultAffinity(tenant.name, poolName),\n };\n break;\n case \"nodeSelector\":\n affinityObject = {\n affinity: getNodeSelector(\n nodeSelectorLabels,\n withPodAntiAffinity,\n tenant.name,\n poolName\n ),\n };\n break;\n }\n\n const tolerationValues = tolerations.filter(\n (toleration) => toleration.key.trim() !== \"\"\n );\n\n const data: IAddPoolRequest = {\n name: poolName,\n servers: numberOfNodes,\n volumes_per_server: volumesPerServer,\n volume_configuration: {\n size: volumeSize * 1073741824,\n storage_class_name: selectedStorageClass,\n labels: null,\n },\n tolerations: tolerationValues,\n securityContext: securityContextEnabled ? securityContext : null,\n ...affinityObject,\n };\n\n api\n .invoke(\n \"POST\",\n `/api/v1/namespaces/${tenant.namespace}/tenants/${tenant.name}/pools`,\n data\n )\n .then(() => {\n setAddSending(false);\n resetPoolForm();\n setTenantDetailsLoad(true);\n history.push(poolsURL);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddSending(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n addSending,\n poolsURL,\n resetPoolForm,\n setTenantDetailsLoad,\n affinityType,\n nodeSelectorLabels,\n numberOfNodes,\n securityContext,\n securityContextEnabled,\n selectedStorageClass,\n tenant,\n tolerations,\n volumeSize,\n volumesPerServer,\n withPodAntiAffinity,\n ]);\n\n const cancelButton = {\n label: \"Cancel\",\n type: \"other\",\n enabled: true,\n action: () => {\n resetPoolForm();\n history.push(poolsURL);\n },\n };\n\n const createButton = {\n label: \"Create\",\n type: \"submit\",\n enabled:\n !addSending &&\n selectedStorageClass !== \"\" &&\n requiredPages.every((v) => validPages.includes(v)),\n action: () => {\n setAddSending(true);\n },\n };\n\n const wizardSteps: IWizardElement[] = [\n {\n label: \"Setup\",\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Configuration\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n {\n label: \"Pod Placement\",\n advancedOnly: true,\n componentRender: ,\n buttons: [cancelButton, createButton],\n },\n ];\n\n return (\n \n \n \n \n \n }\n />\n \n \n }\n title={`Add New Pool to ${tenant?.name || \"\"}`}\n subTitle={\n \n Namespace: {tenant?.namespace || \"\"} / Current Capacity:{\" \"}\n {niceBytes((tenant?.total_size || 0).toString(10))}\n \n }\n />\n \n\n {addSending && (\n \n \n \n )}\n \n \n \n \n \n
    \n );\n};\n\nconst mapState = (state: AppState) => {\n const addPool = state.tenants.addPool;\n return {\n tenant: state.tenants.tenantDetails.tenantInfo,\n selectedStorageClass: addPool.fields.setup.storageClass,\n validPages: addPool.validPages,\n storageClasses: addPool.storageClasses,\n numberOfNodes: addPool.fields.setup.numberOfNodes,\n volumeSize: addPool.fields.setup.volumeSize,\n volumesPerServer: addPool.fields.setup.volumesPerServer,\n affinityType: addPool.fields.affinity.podAffinity,\n nodeSelectorLabels: addPool.fields.affinity.nodeSelectorLabels,\n withPodAntiAffinity: addPool.fields.affinity.withPodAntiAffinity,\n tolerations: addPool.fields.tolerations,\n securityContextEnabled: addPool.fields.configuration.securityContextEnabled,\n securityContext: addPool.fields.configuration.securityContext,\n };\n};\n\nconst connector = connect(mapState, {\n resetPoolForm,\n setPoolField,\n isPoolPageValid,\n setErrorSnackMessage,\n setTenantDetailsLoad,\n});\n\nexport default withStyles(styles)(connector(AddPool));\n"],"names":["withStyles","theme","createStyles","headerBarIcon","marginRight","color","palette","primary","main","width","height","headerBarSubheader","maxWidth","screenTitle","display","alignItems","justifyContent","padding","borderBottom","flexFlow","titleColumn","fontSize","leftItems","rightItems","classes","icon","title","subTitle","actions","className","container","item","xs","style","margin","connector","connect","state","setupFields","tenants","addPool","fields","setup","tenant","tenantDetails","tenantInfo","storageClasses","numberOfNodes","toString","storageClass","volumeSize","volumesPerServer","setPoolField","isPoolPageValid","setPoolStorageClasses","buttonContainer","textAlign","bottomContainer","flexGrow","factorElements","marginLeft","sizeNumber","fontWeight","sizeDescription","formFieldStyles","wizardCommon","useState","validationErrors","setValidationErrors","instanceCapacity","parseInt","totalCapacity","useEffect","customAccountValidation","fieldKey","required","value","customValidation","isNaN","customValidationMessage","commonVal","commonFormValidation","Object","keys","length","api","namespace","then","res","newStorage","get","map","name","split","label","catch","err","console","error","setFieldInfo","fieldName","Paper","paperWrapper","headerElement","h3Section","descriptionText","Grid","formFieldRow","InputBoxWrapper","id","onChange","e","intValue","target","validity","valid","pattern","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","disabled","SelectWrapper","options","niceBytes","configuration","securityContextEnabled","securityContext","configSectionItem","border","tenantCustomizationFields","containerItem","fieldGroup","createTenantCommon","paddingTop","marginBottom","responsiveSectionItem","fieldSpaceTop","marginTop","modalBasic","updateField","useCallback","field","runAsUser","runAsGroup","fsGroup","cleanValidation","clearValidationError","FormSwitchWrapper","checked","multiContainer","type","min","runAsNonRoot","podAffinity","affinity","nodeSelectorLabels","withPodAntiAffinity","keyValuePairs","nodeSelectorPairs","tolerations","setModalErrorSnackMessage","setPoolKeyValuePairs","setPoolTolerationInfo","addNewPoolToleration","removePoolToleration","overlayAction","maxHeight","background","affinityConfigField","affinityFieldLabel","flex","radioField","affinityLabelKey","affinityLabelValue","rowActions","fieldContainer","affinityRow","loading","setLoading","keyValueMap","setKeyValueMap","keyOptions","setKeyOptions","k","push","vl","filter","kvp","key","kvs","i","a","indexOf","join","splittedLabels","forEach","index","splitItem","updateToleration","alterToleration","affinityHelpText","RadioGroupSelector","currentSelection","selectorOptions","Fragment","newKey","arrCp","assign","placeholder","v","IconButton","size","onClick","AddIcon","RemoveIcon","tol","TolerationSelector","effect","onEffectChange","tolerationKey","onTolerationKeyChange","operator","onOperatorChange","onValueChange","tolerationSeconds","seconds","onSecondsChange","requiredPages","selectedStorageClass","validPages","affinityType","resetPoolForm","setErrorSnackMessage","setTenantDetailsLoad","pageBox","borderTop","addPoolTitle","modalStyleUtils","addSending","setAddSending","poolsURL","poolName","generatePoolName","pools","affinityObject","getDefaultAffinity","getNodeSelector","tolerationValues","toleration","trim","data","servers","volumes_per_server","volume_configuration","storage_class_name","labels","history","cancelButton","enabled","action","createButton","every","includes","wizardSteps","componentRender","buttons","advancedOnly","PoolPodPlacement","PageHeader","BackLink","to","PageLayout","ScreenTitle","TenantsIcon","total_size","LinearProgress","GenericWizard"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/2625.86a516d1.chunk.js b/portal-ui/build/static/js/2625.86a516d1.chunk.js deleted file mode 100644 index c17ece4cd..000000000 --- a/portal-ui/build/static/js/2625.86a516d1.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[2625],{22625:function(e,t,n){n.r(t),n.d(t,{default:function(){return nt}});var i,a=n(70885),l=n(1413),r=n(72791),o=n(60364),s=n(26181),c=n.n(s),d=n(61889),u=n(11135),x=n(25787),p=n(95193),f=n(23814);!function(e){e.singleValue="singleValue",e.linearGraph="linearGraph",e.areaGraph="areaGraph",e.barChart="barChart",e.pieChart="pieChart",e.singleRep="singleRep",e.simpleWidget="simpleWidget"}(i||(i={}));var g=n(45248),h=n(51846),m=n(82332),v=n(74833),j=n(80184),y=["#C4D4E9","#DCD1EE","#D1EEE7","#EEDED1","#AAF38F","#F9E6C5","#C83B51","#F4CECE","#D6D6D6"],b=function(e){return(0,g.v1)(e,"ns")},C=function(e){return parseInt(e).toString(10)},Z=[{id:1,title:"Uptime",data:"N/A",type:i.simpleWidget,widgetIcon:(0,j.jsx)(v.oN,{}),labelDisplayFunction:g.v1},{id:50,title:"Capacity",data:[],dataOuter:[{name:"outer",value:100}],widgetConfiguration:{outerChart:{colorList:["#9c9c9c"],innerRadius:0,outerRadius:0,startAngle:0,endAngle:0},innerChart:{colorList:y,innerRadius:20,outerRadius:50,startAngle:90,endAngle:-200}},type:i.pieChart,innerLabel:"N/A",labelDisplayFunction:g.ae},{id:68,title:"Data Usage Growth",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.areaGraph,yAxisFormatter:g.ae,xAxisFormatter:g.Ue},{id:52,title:"Object size distribution",data:[],widgetConfiguration:[{dataKey:"a",color:y[0],background:{fill:"#EEF1F4"},greatestColor:"#081C42"}],customStructure:[{originTag:"LESS_THAN_1024_B",displayTag:"Less than 1024B"},{originTag:"BETWEEN_1024_B_AND_1_MB",displayTag:"Between 1024B and 1MB"},{originTag:"BETWEEN_1_MB_AND_10_MB",displayTag:"Between 1MB and 10MB"},{originTag:"BETWEEN_10_MB_AND_64_MB",displayTag:"Between 10MB and 64MB"},{originTag:"BETWEEN_64_MB_AND_128_MB",displayTag:"Between 64MB and 128MB"},{originTag:"BETWEEN_128_MB_AND_512_MB",displayTag:"Between 128MB and 512MB"},{originTag:"GREATER_THAN_512_MB",displayTag:"Greater than 512MB"}],type:i.barChart},{id:66,title:"Buckets",data:[],innerLabel:"N/A",type:i.singleRep,color:"#0071BC",fillColor:"#ADD5E0"},{id:44,title:"Objects",data:[],innerLabel:"N/A",type:i.singleRep,color:"#0071BC",fillColor:"#ADD5E0"},{id:63,title:"API Data Received Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,xAxisFormatter:g.Ue,yAxisFormatter:g.ae},{id:61,title:"Total Open FDs",data:[],innerLabel:"N/A",type:i.singleRep,color:"#22B573",fillColor:"#A6E8C4"},{id:62,title:"Total Goroutines",data:[],innerLabel:"N/A",type:i.singleRep,color:"#F7655E",fillColor:"#F4CECE"},{id:77,title:"Node CPU Usage",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,yAxisFormatter:C,xAxisFormatter:g.Ue},{id:60,title:"API Request Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,xAxisFormatter:g.Ue},{id:70,title:"API Data Sent Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,xAxisFormatter:g.Ue,yAxisFormatter:g.ae},{id:17,title:"Internode Data Transfer",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,yAxisFormatter:g.ae,xAxisFormatter:g.Ue},{id:73,title:"Node IO",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,yAxisFormatter:g.ae,xAxisFormatter:g.Ue},{id:80,title:"Time Since Last Heal Activity",data:"N/A",type:i.simpleWidget,widgetIcon:(0,j.jsx)(h.Z,{}),labelDisplayFunction:b},{id:81,title:"Time Since Last Scan Activity",data:"N/A",type:i.simpleWidget,widgetIcon:(0,j.jsx)(m.Z,{}),labelDisplayFunction:b},{id:71,title:"API Request Error Rate",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,xAxisFormatter:g.Ue},{id:76,title:"Node Memory Usage",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,xAxisFormatter:g.Ue,yAxisFormatter:g.ae},{id:74,title:"Drive Used Capacity",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,xAxisFormatter:g.Ue,yAxisFormatter:g.ae},{id:82,title:"Drives Free Inodes",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,disableYAxis:!0,xAxisFormatter:g.Ue},{id:11,title:"Node Syscalls",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,yAxisFormatter:C,xAxisFormatter:g.Ue},{id:8,title:"Node File Descriptors",data:[],widgetConfiguration:[{dataKey:"",keyLabel:"",lineColor:"#000",fillColor:"#000"}],type:i.linearGraph,yAxisFormatter:C,xAxisFormatter:g.Ue},{id:500,mergedPanels:[{id:53,title:"Online",data:"N/A",type:i.singleValue},{id:69,title:"Offline",data:"N/A",type:i.singleValue}],title:"Servers"},{id:501,mergedPanels:[{id:9,title:"Online",data:"N/A",type:i.singleValue},{id:78,title:"Offline",data:"N/A",type:i.singleValue}],title:"Drives"},{id:502,mergedPanels:[{id:65,title:"Upload",data:"N/A",type:i.singleValue,labelDisplayFunction:g.ae},{id:64,title:"Download",data:"N/A",type:i.singleValue,labelDisplayFunction:g.ae}],title:"Network"}],w=function(e,t){if(0===e.length)return["","0"];if("mean"===t){var n=e.reduce((function(e,t){return e+parseFloat(t[1])}),0);return["",Math.floor(n/e.length).toString()]}var i=e.sort((function(e,t){return e[0]-t[0]}));return i[i.length-1]},N=function(e,t){if(!e)return t;var n=e.type;switch(t.type){case i.singleValue:case i.simpleWidget:if("stat"===n||"singlestat"===n){var a=c()(e,"targets[0].result[0].values",[]);null===a&&(a=[]);var r=c()(e,"options.reduceOptions.calcs[0]","lastNotNull"),o=w(a,r),s=t.labelDisplayFunction?t.labelDisplayFunction(o[1]):o[1];return(0,l.Z)((0,l.Z)({},t),{},{data:s})}break;case i.pieChart:if("gauge"===n){var d=c()(e,"targets[0].result",[]);null===d&&(d=[]);var u=c()(e,"options.reduceOptions.calcs[0]","lastNotNull"),x=d.length>0?d[0].values:[],p=w(x,u),f=d.map((function(e){var t=c()(e,"values",[]),n=Object.keys(e.metric),i=t.sort((function(e,t){return e[0]-t[0]})),a=e.metric[n[0]],l=i[i.length-1];return{name:a,value:parseInt(l)}})),h=t.labelDisplayFunction?t.labelDisplayFunction(p[1]):p[1];return(0,l.Z)((0,l.Z)({},t),{},{data:f,innerLabel:h})}break;case i.linearGraph:case i.areaGraph:if("graph"===n){var m=c()(e,"targets",[]);null===m&&(m=[]);var v=[],j=[];m.forEach((function(e,t){var n=c()(e,"result",[]),i=e.legendFormat;null===n&&(n=[]),n.forEach((function(e){var n=function(e,t){var n=Object.keys(e),i=new RegExp("{{(".concat(n.join("|"),")}}"),"g"),a=t.replace(i,(function(t){var n=t.replace(/({{|}})/g,"");return e[n]})),l=(a.match(/{{/g)||[]).length,r=(a.match(/}}/g)||[]).length,o=a.replace(/{{(.*?)}}/g,"");return l===r&&0!==l&&0!==r&&(n.forEach((function(t){a=a.replace(t,e[t])})),o=a),o}(e.metric,i),a="key_".concat(t).concat(n);v.push({dataKey:a,keyLabel:n,lineColor:"",fillColor:""});var l=c()(e,"values",[]);null===l&&(l=[]),l.forEach((function(e){var t=j.findIndex((function(t){return t.name===e[0]}));if(-1===t){var n={name:e[0]};n[a]=e[1],j.push(n)}else j[t][a]=e[1]}))}))}));var b=v.sort((function(e,t){return e.keyLabelt.keyLabel?1:0})).map((function(e,t){return(0,l.Z)((0,l.Z)({},e),{},{lineColor:y[t]||(0,g.C5)(e.keyLabel),fillColor:y[t]||(0,g.C5)(e.keyLabel)})})),C=j.sort((function(e,t){return e.name-t.name}));return(0,l.Z)((0,l.Z)({},t),{},{widgetConfiguration:b,data:C})}break;case i.barChart:if("bargauge"===n){var Z=c()(e,"targets[0].result",[]);null===Z&&(Z=[]);var N=function(e,t){return e[0]-t[0]},A=[];return A=t.customStructure?t.customStructure.map((function(e){var t=Z.find((function(t){var n=Object.keys(t.metric);return t.metric[n[0]]===e.originTag})),n=c()(t,"values",[]).sort(N),i=n[n.length-1]||["","0"];return{name:e.displayTag,a:parseInt(i[1])}})):Z.map((function(e){var t=Object.keys(e.metric),n=e.metric[t[0]],i=c()(e,"values",[]).sort(N),a=i[i.length-1]||["","0"];return{name:n,a:parseInt(a[1])}})),(0,l.Z)((0,l.Z)({},t),{},{data:A})}break;case i.singleRep:if("stat"===n){var E=c()(e,"targets[0].result[0].values",[]);null===E&&(E=[]);var S=c()(e,"options.reduceOptions.calcs[0]","lastNotNull"),F=w(E,S),k=E.sort((function(e,t){return e[0]-t[0]})),T=[];1===k.length&&T.push({value:0}),k.forEach((function(e){T.push({value:parseInt(e[1])})}));var L=t.labelDisplayFunction?t.labelDisplayFunction(F[1]):F[1];return(0,l.Z)((0,l.Z)({},t),{},{data:T,innerLabel:L})}}return t},A=function(e){var t=e.split(" "),n=function(){var t=e;return isNaN(parseFloat(e))||(t=(0,g.nk)(parseFloat(e))),(0,j.jsx)(r.Fragment,{children:t})};return 2!==t.length?n():g.Dl.includes(t[1])?(0,j.jsxs)("span",{className:"commonValue",children:[t[0],(0,j.jsx)("span",{className:"unitText",children:t[1]})]}):n()},E=n(19847),S=n(42649),F=n(81207),k=n(72455),T=n(18073),L=n(43896),B=(0,k.Z)({root:{backgroundColor:"transparent",paddingTop:0,paddingBottom:0,fontSize:22,textTransform:"uppercase",color:"#D0D0D0"},selected:{"& .MuiTab-wrapper":{color:"#07193E",fontWeight:"bold"}},indicator:{background:"transparent linear-gradient(90deg, #072B4E 0%, #081C42 100%) 0% 0% no-repeat padding-box;",height:4},scroller:{maxWidth:1185,position:"relative","&::after":{content:'" "',backgroundColor:"#EEF1F4",height:4,width:"100%",display:"block"}}}),I=function(e){var t=e.selectedTab,n=e.onChange,i=e.tabOptions,a=B();return(0,j.jsx)(r.Fragment,{children:(0,j.jsx)(T.Z,{indicatorColor:"primary",textColor:"primary","aria-label":"cluster-tabs",variant:"scrollable",scrollButtons:"auto",value:t,onChange:function(e,t){n(t)},classes:{indicator:a.indicator,scroller:a.scroller},children:i.map((function(e,t){var n={label:e.label};return e.value&&(n=(0,l.Z)((0,l.Z)({},n),{},{value:e.value})),e.disabled&&(n=(0,l.Z)((0,l.Z)({},n),{},{disabled:e.disabled})),(0,r.createElement)(L.Z,(0,l.Z)((0,l.Z)({},n),{},{classes:{root:a.root,selected:a.selected},id:"simple-tab-".concat(t),"aria-controls":"simple-tabpanel-".concat(t),key:"tab-".concat(t,"-").concat(e.label)}))}))})})},R=n(57621),D=n(9585),W=n(91523),M=(0,k.Z)({root:{backgroundColor:"#fff",padding:0},title:(0,l.Z)({},f.NP.titleContainer),content:{maxWidth:"100%"}}),P=(0,x.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},f.NP),{},{cardRoot:(0,l.Z)((0,l.Z)({},f.NP.singleValueContainer),{},{"&.MuiPaper-root":{borderRadius:10}}),metricText:{fontSize:70,lineHeight:1.1,color:"#07193E",fontWeight:"bold"},unitText:{fontSize:10,color:"#767676",fontWeight:"normal"},subHearderContainer:{display:"flex",flexDirection:"row",justifyContent:"space-between",alignItems:"center"},subMessage:{fontSize:10,color:"#767676","&.bold":{fontWeight:"bold"}},headerContainer:{display:"flex",justifyContent:"space-between"},viewAll:{fontSize:10,color:"#C83B51",textTransform:"capitalize","& a, & a:hover, & a:visited, & a:active":{color:"#C83B51"}},extraMargin:{margin:"10px 20px 10px 0"}}))}))((function(e){var t=e.title,n=e.metricValue,i=e.metricUnit,a=e.subMessage,l=e.moreLink,o=e.rightComponent,s=e.extraMargin,c=void 0!==s&&s,d=e.classes,u=M(),x=function(){return(0,j.jsx)(r.Fragment,{children:(0,j.jsxs)("div",{className:d.subHearderContainer,children:[(0,j.jsxs)("div",{className:d.leftSide,children:[(0,j.jsx)("div",{children:(0,j.jsxs)("span",{className:d.metricText,children:[n,(0,j.jsx)("span",{className:d.unitText,children:i})]})}),a&&(0,j.jsx)("div",{className:"".concat(d.subMessage," ").concat(a.fontWeight?a.fontWeight:""),children:a.message})]}),(0,j.jsx)("div",{className:d.rightSide,children:o})]})})},p=function(){return(0,j.jsx)(r.Fragment,{children:(0,j.jsxs)("div",{className:d.headerContainer,children:[(0,j.jsx)("span",{className:d.title,children:t}),l&&(0,j.jsx)(r.Fragment,{children:(0,j.jsx)("span",{className:d.viewAll,children:(0,j.jsx)(W.rU,{to:l,children:"View All"})})})]})})};return(0,j.jsx)(r.Fragment,{children:(0,j.jsx)(R.Z,{className:"".concat(d.cardRoot," ").concat(c?d.extraMargin:""),children:""!==n&&(0,j.jsx)(D.Z,{title:(0,j.jsx)(p,{}),subheader:(0,j.jsx)(r.Fragment,{children:(0,j.jsx)(x,{})}),classes:{root:u.root,title:u.title,content:u.content}})})})})),z=function(e){var t=e.title,n=e.leftComponent,i=e.rightComponent;return(0,j.jsx)(r.Fragment,{children:(0,j.jsx)(P,{title:t,metricValue:n,rightComponent:i})})},O=n(19913),G=n(38725),_=n(90466),U=n(12891),K=n(24714),V=n(41048),$=n(35667),H=n(64119),J=(0,x.Z)((function(e){return(0,u.Z)((0,l.Z)({},f.Rp))}))((function(e){var t=e.active,n=e.payload,i=e.label,a=e.barChartConfiguration,l=e.classes;return t?(0,j.jsxs)("div",{className:l.customTooltip,children:[(0,j.jsx)("div",{className:l.timeStampTitle,children:i}),n&&n.map((function(e,t){return(0,j.jsxs)("div",{className:l.labelContainer,children:[(0,j.jsx)("div",{className:l.labelColor,style:{backgroundColor:a[t].color}}),(0,j.jsx)("div",{className:l.itemValue,children:(0,j.jsx)("span",{className:l.valueContainer,children:e.value})})]},"pltiem-".concat(t,"-").concat(i))}))]}):null})),Y=n(72858),q=n(29598),Q=n(72401),X=function(e){var t=e.y,n=e.payload;return(0,j.jsx)("text",{width:50,fontSize:"63%",textAnchor:"start",fill:"#333",transform:"translate(5,".concat(t,")"),fontWeight:700,dy:3,children:n.value})},ee=(0,o.$j)(null,{displayErrorMessage:S.Ih,openZoomPage:Y.xG}),te=(0,x.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},f.NP),{},{loadingAlign:{width:"100%",paddingTop:"15px",textAlign:"center",margin:"auto"}}))}))(ee((function(e){var t=e.classes,n=e.title,i=e.panelItem,l=e.timeStart,o=e.timeEnd,s=e.propLoading,c=e.displayErrorMessage,d=e.apiPrefix,u=e.zoomActivated,x=void 0!==u&&u,f=e.openZoomPage,g=(0,r.useState)(!0),h=(0,a.Z)(g,2),m=h[0],v=h[1],y=(0,r.useState)([]),b=(0,a.Z)(y,2),C=b[0],Z=b[1],w=(0,r.useState)(null),A=(0,a.Z)(w,2),E=A[0],S=A[1];(0,r.useEffect)((function(){s&&v(!0)}),[s]),(0,r.useEffect)((function(){if(m){var e=0;if(null!==l&&null!==o){var t=o.unix()-l.unix(),n=Math.floor(t/60);e=n<1?15:n}F.Z.invoke("GET","/api/v1/".concat(d,"/info/widgets/").concat(i.id,"/?step=").concat(e,"&").concat(null!==l?"&start=".concat(l.unix()):"").concat(null!==l&&null!==o?"&":"").concat(null!==o?"end=".concat(o.unix()):"")).then((function(e){var t=N(e,i);Z(t.data),S(t),v(!1)})).catch((function(e){c(e),v(!1)}))}}),[m,i,o,l,c,d]);var k=E?E.widgetConfiguration:[],T=0,L=0;if(1===k.length){var B=k[0];C.forEach((function(e,t){e[B.dataKey]>L&&(L=e[B.dataKey],T=t)}))}var I=(0,q.Z)(),R=(0,p.Z)(I.breakpoints.up("md"));return(0,j.jsxs)("div",{className:x?"":t.singleValueContainer,children:[!x&&(0,j.jsxs)("div",{className:t.titleContainer,children:[n," ",(0,j.jsx)("button",{onClick:function(){f(i)},className:t.zoomChartIcon,children:(0,j.jsx)(H.Z,{})})]}),m&&(0,j.jsx)("div",{className:t.loadingAlign,children:(0,j.jsx)(Q.Z,{})}),!m&&(0,j.jsx)("div",{className:x?t.zoomChartCont:t.contentContainer,children:(0,j.jsx)(O.h,{width:"99%",children:(0,j.jsxs)(G.v,{data:C,layout:"vertical",barCategoryGap:1,children:[(0,j.jsx)(_.K,{type:"number",hide:!0}),(0,j.jsx)(U.B,{dataKey:"name",type:"category",interval:0,tick:(0,j.jsx)(X,{}),tickLine:!1,axisLine:!1,width:150,hide:!R}),k.map((function(e){return(0,j.jsx)(K.$,{dataKey:e.dataKey,fill:e.color,background:e.background,barSize:x?25:12,children:1===k.length?(0,j.jsx)(r.Fragment,{children:C.map((function(t,n){return(0,j.jsx)(V.b,{fill:n===T?e.greatestColor:e.color},"chart-bar-".concat(n.toString()))}))}):null},"bar-".concat(e.dataKey))})),(0,j.jsx)($.u,{cursor:{fill:"rgba(255, 255, 255, 0.3)"},content:(0,j.jsx)(J,{barChartConfiguration:k})})]})})})]})}))),ne=n(37762),ie=n(28265),ae=n(82839),le=n(18602),re=(0,x.Z)((function(e){return(0,u.Z)((0,l.Z)({},f.Rp))}))((function(e){var t=e.active,n=e.payload,i=e.label,a=e.linearConfiguration,l=e.yAxisFormatter,r=e.classes;return t?(0,j.jsxs)("div",{className:r.customTooltip,children:[(0,j.jsx)("div",{className:r.timeStampTitle,children:(0,g.Ue)(i,!0)}),n&&n.map((function(e,t){return(0,j.jsxs)("div",{className:r.labelContainer,children:[(0,j.jsx)("div",{className:r.labelColor,style:{backgroundColor:a[t].lineColor}}),(0,j.jsx)("div",{className:r.itemValue,children:(0,j.jsxs)("span",{className:r.valueContainer,children:[a[t].keyLabel,":"," ",l(e.value)]})})]},"lbPl-".concat(t,"-").concat(a[t].keyLabel))}))]}):null})),oe=(0,o.$j)(null,{displayErrorMessage:S.Ih,openZoomPage:Y.xG}),se=(0,x.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)({},f.NP),{},{containerElements:{display:"flex",flexDirection:"row",height:"100%",flexGrow:1},verticalAlignment:{flexDirection:"column"},chartCont:{position:"relative",height:140,width:"100%"},legendChart:{display:"flex",flexDirection:"column",flex:"0 1 auto",maxHeight:130,margin:0,overflowY:"auto",position:"relative",textAlign:"center",width:"100%",justifyContent:"flex-start",color:"#404143",fontWeight:"bold",fontSize:12},loadingAlign:{margin:"auto"}}))}))(oe((function(e){var t=e.classes,n=e.title,i=e.displayErrorMessage,l=e.timeStart,o=e.timeEnd,s=e.propLoading,c=e.panelItem,d=e.apiPrefix,u=e.hideYAxis,x=void 0!==u&&u,f=e.areaWidget,g=void 0!==f&&f,h=e.yAxisFormatter,m=void 0===h?function(e){return e}:h,v=e.xAxisFormatter,y=void 0===v?function(e){return e}:v,b=e.zoomActivated,C=void 0!==b&&b,Z=e.openZoomPage,w=(0,r.useState)(!0),A=(0,a.Z)(w,2),E=A[0],S=A[1],k=(0,r.useState)([]),T=(0,a.Z)(k,2),L=T[0],B=T[1],I=(0,r.useState)(0),R=(0,a.Z)(I,2),D=R[0],W=R[1],M=(0,r.useState)(null),P=(0,a.Z)(M,2),z=P[0],G=P[1];(0,r.useEffect)((function(){s&&S(!0)}),[s]),(0,r.useEffect)((function(){if(E){var e=0;if(null!==l&&null!==o){var t=o.unix()-l.unix(),n=Math.floor(t/60);e=n<1?15:n}F.Z.invoke("GET","/api/v1/".concat(d,"/info/widgets/").concat(c.id,"/?step=").concat(e,"&").concat(null!==l?"&start=".concat(l.unix()):"").concat(null!==l&&null!==o?"&":"").concat(null!==o?"end=".concat(o.unix()):"")).then((function(e){var t=N(e,c);B(t.data),G(t),S(!1);var n,i=0,a=(0,ne.Z)(t.data);try{for(a.s();!(n=a.n()).done;){var l=n.value;for(var r in l)if("name"!==r){var o=parseInt(l[r]);isNaN(o)&&(o=0),i5&&void 0!==arguments[5]&&arguments[5];switch(e.type){case i.singleValue:return(0,j.jsx)(ve,{title:e.title,panelItem:e,timeStart:t,timeEnd:n,propLoading:a,apiPrefix:l});case i.simpleWidget:return(0,j.jsx)(fe,{title:e.title,panelItem:e,timeStart:t,timeEnd:n,propLoading:a,apiPrefix:l,iconWidget:e.widgetIcon});case i.pieChart:return(0,j.jsx)(xe,{title:e.title,panelItem:e,timeStart:t,timeEnd:n,propLoading:a,apiPrefix:l});case i.linearGraph:case i.areaGraph:return(0,j.jsx)(se,{title:e.title,panelItem:e,timeStart:t,timeEnd:n,propLoading:a,hideYAxis:e.disableYAxis,xAxisFormatter:e.xAxisFormatter,yAxisFormatter:e.yAxisFormatter,apiPrefix:l,areaWidget:e.type===i.areaGraph,zoomActivated:r});case i.barChart:return(0,j.jsx)(te,{title:e.title,panelItem:e,timeStart:t,timeEnd:n,propLoading:a,apiPrefix:l,zoomActivated:r});case i.singleRep:var o=e.fillColor?e.fillColor:e.color;return(0,j.jsx)(he,{title:e.title,panelItem:e,timeStart:t,timeEnd:n,propLoading:a,color:e.color,fillColor:o,apiPrefix:l});default:return null}},ye=n(56028),be=(0,o.$j)(null,{onCloseAction:Y.jv})((function(e){var t=e.value,n=e.modalOpen,i=e.timeStart,a=e.timeEnd,l=e.apiPrefix,o=e.onCloseAction;return t?(0,j.jsx)(ye.Z,{title:t.title,onClose:function(){o()},modalOpen:n,wideLimit:!1,noContentPadding:!0,children:(0,j.jsx)(r.Fragment,{children:je(t,i,a,!0,l,!0)})}):null})),Ce=n(63856),Ze=(0,o.$j)((function(e){return{zoomOpen:e.dashboard.zoom.openZoom,zoomWidget:e.dashboard.zoom.widgetRender}}),{displayErrorMessage:S.Ih}),we=(0,x.Z)((function(e){return(0,u.Z)((0,l.Z)((0,l.Z)((0,l.Z)({},f.OR),f.bN),{},{dashboardRow:{display:"flex",flexDirection:"row",justifyContent:"flex-start",flexWrap:"wrap",maxWidth:1180}}))}))(Ze((function(e){var t=e.classes,n=e.displayErrorMessage,i=e.apiPrefix,l=void 0===i?"admin":i,o=e.zoomOpen,s=e.zoomWidget,c=(0,r.useState)(null),u=(0,a.Z)(c,2),x=u[0],f=u[1],g=(0,r.useState)(null),h=(0,a.Z)(g,2),m=h[0],v=h[1],y=(0,r.useState)(!0),b=(0,a.Z)(y,2),C=b[0],w=b[1],A=(0,r.useState)(Z),S=(0,a.Z)(A,2),k=S[0],T=S[1],L=(0,r.useState)(0),B=(0,a.Z)(L,2),R=B[0],D=B[1],W=(0,q.Z)(),M=(0,p.Z)(W.breakpoints.up("md")),P=(0,r.useCallback)((function(e,n){return null===n||void 0===n?void 0:n.map((function(n,i){var a=n.length,o=Math.floor(12/a);return!M&&a>=4?o=6:!M&&a>=3&&(o=12),o<1?o=1:o>12&&(o=12),(0,j.jsx)(d.ZP,{item:!0,xs:12,className:t.dashboardRow,children:n.map((function(e,n){var i=k.find((function(t){return t.id===e}));return(0,j.jsx)(d.ZP,{className:t.widgetPanelDelimiter,item:!0,xs:12,sm:o,md:o,lg:o,children:(0,j.jsx)(d.ZP,{item:!0,xs:12,children:i?(0,j.jsx)(r.Fragment,{children:i.mergedPanels?(0,j.jsx)(r.Fragment,{children:(0,j.jsx)(z,{title:i.title,leftComponent:je(i.mergedPanels[0],x,m,C,l),rightComponent:je(i.mergedPanels[1],x,m,C,l)})}):je(i,x,m,C,l)}):null})},"widget-".concat(e,"-").concat(n))}))},"line-".concat(e,"-").concat(i))}))}),[x,m,C,l,t.dashboardRow,t.widgetPanelDelimiter,k,M]),O=(0,r.useCallback)((function(){var e=0;if(null!==x&&null!==m){var t=m.unix()-x.unix(),i=Math.floor(t/60);e=i<1?15:i}F.Z.invoke("GET","/api/v1/".concat(l,"/info?step=").concat(e,"&").concat(null!==x?"&start=".concat(x.unix()):"").concat(null!==x&&null!==m?"&":"").concat(null!==m?"end=".concat(m.unix()):"")).then((function(e){if(e.widgets){var t=(i=e.widgets,Z.map((function(e){var t=i.find((function(t){return t.title.toLowerCase().trim()===e.title.toLowerCase().trim()}));return N(t,e)})));T(t)}else n({errorMessage:"Widget information could not be retrieved at this time. Please try again",detailedError:""});var i;w(!1)})).catch((function(e){n(e),w(!1)}))}),[x,m,n,l]);(0,r.useEffect)((function(){C&&O()}),[C,O]);var G=[[66,44,500,501],[80,81,1],[68,52],[63,70]];M?G.splice(1,0,[50,502]):(G.splice(1,0,[50]),G.splice(1,0,[502]));return(0,j.jsxs)(r.Fragment,{children:[o&&(0,j.jsx)(be,{modalOpen:o,timeStart:x,timeEnd:m,widgetRender:0,value:s,apiPrefix:l}),(0,j.jsx)(Ce.Z,{timeStart:x,setTimeStart:f,timeEnd:m,setTimeEnd:v,triggerSync:function(){w(!0)}}),(0,j.jsx)(d.ZP,{item:!0,xs:12,children:(0,j.jsx)(I,{selectedTab:R,onChange:function(e){D(e)},tabOptions:[{label:"Usage"},{label:"Traffic"},{label:"Resources"}]})}),(0,j.jsxs)(d.ZP,{item:!0,xs:12,className:t.widgetsContainer,children:[(0,j.jsx)(E.x,{index:0,value:R,children:P("Summary",G)}),(0,j.jsx)(E.x,{index:1,value:R,children:P("Traffic",[[60],[71,17],[73]])}),(0,j.jsx)(E.x,{index:2,value:R,children:P("Resources",[[76,77],[11,8],[82,74]])})]})]})}))),Ne=n(32291),Ae=n(40986),Ee=n(42982),Se=n(64554),Fe=n(23804),ke=function(e){var t=e.onlineCount,n=void 0===t?0:t,i=e.offlineCount,a=void 0===i?0:i,l=e.icon,r=void 0===l?null:l,o=e.label,s=void 0===o?"":o;return(0,j.jsx)(Se.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"300px",minHeight:"200px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default"},children:(0,j.jsxs)(Se.Z,{sx:{flex:1,height:"200px",display:"flex",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"}},children:[(0,j.jsxs)(Se.Z,{sx:{flex:1,display:"flex",flexFlow:"column",marginTop:"32px"},children:[(0,j.jsx)(Se.Z,{sx:{fontSize:"16px",fontWeight:600,marginBottom:"24px"},children:s}),(0,j.jsxs)(Se.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",fontSize:{lg:"50px",md:"45px",xs:"35px"},fontWeight:600,"& .stat-text":{color:"#696969",fontSize:"12px"},"& .stat-value":{textAlign:"center"},"& .min-icon":{marginRight:"8px",height:"10px",width:"10px"}},children:[(0,j.jsxs)(Se.Z,{children:[(0,j.jsxs)(Se.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{fill:"#4CCB92"}},children:[(0,j.jsx)(v.J$,{})," ",(0,j.jsx)("div",{className:"stat-text",children:"Online"})]}),(0,j.jsx)(Se.Z,{className:"stat-value",children:n})]}),(0,j.jsxs)(Se.Z,{children:[(0,j.jsxs)(Se.Z,{sx:{display:"flex",alignItems:"center","& .min-icon":{fill:"#C83B51"}},children:[(0,j.jsx)(v.J$,{})," ",(0,j.jsx)("div",{className:"stat-text",children:"Offline"})]}),(0,j.jsx)(Se.Z,{className:"stat-value",children:a})]})]})]}),(0,j.jsx)(Se.Z,{sx:{width:"20px",height:"20px",marginTop:"26px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:r})]})})},Te=n(98444),Le=n.n(Te),Be=n(79834),Ie=n(90493),Re=n(76278),De=n(56125),We=n(22885),Me=n(81131),Pe="#C83B51",ze="#4CCB92",Oe="#E7A219",Ge=function(e,t){return e<=t/2?Pe:2!==t&&e===t/2+1?Oe:e===t?ze:void 0},_e=function(e){switch(e){case"offline":return Pe;case"online":return ze;default:return Oe}},Ue=function(e,t){return e<=t/2?Pe:e===t/2+1?Oe:e===t?ze:void 0},Ke=function(e){var t=e.label,n=void 0===t?"":t,i=e.value,a=void 0===i?"":i,l=e.statusColor,r=void 0===l?"":l,o=e.hasStatus,s=void 0!==o&&o,c=e.icon,d=void 0===c?null:c;return(0,j.jsxs)(Se.Z,{sx:{alignItems:"center",padding:"5px",display:"flex",gap:"10px"},children:[(0,j.jsxs)(Se.Z,{sx:{display:"flex",alignItems:"center",flexFlow:"column",maxWidth:"40px","&:first-of-type(svg)":{fill:"#848484"}},children:[d,s?(0,j.jsx)(Se.Z,{sx:{marginRight:"0px",justifyContent:"center",alignItems:"center",textAlign:"center","& svg.min-icon":{fill:r,width:"10px",height:"10px"}},children:(0,j.jsx)(v.J$,{})}):(0,j.jsx)(Se.Z,{sx:{width:"12px",height:"12px"}})]}),(0,j.jsxs)(Se.Z,{sx:{display:"flex",alignItems:"flex-start",justifyContent:"flex-start",flexFlow:"column","& .stat-text":{color:"#5E5E5E",fontSize:"14px"},"& .stat-value":{color:"#07193E",display:"flex",fontWeight:500}},children:[(0,j.jsx)("div",{className:"stat-text",children:n}),(0,j.jsx)("div",{className:"stat-value",children:a})]})]})},Ve=(0,x.Z)((function(e){return(0,u.Z)((0,l.Z)({},f.SJ))}))((function(e){e.classes;var t=e.server,n=(e.index,Object.keys(c()(t,"network",{}))),i=n.length,a=t.drives?t.drives.length:0,l=n.reduce((function(e,n){return"online"===t.network[n]?e+1:e}),0),r=t.drives?t.drives.filter((function(e){return"ok"===e.state})).length:0;return(0,j.jsxs)(Se.Z,{sx:{display:"flex",alignItems:"flex-start",flexFlow:"column",flex:1},children:[(0,j.jsxs)(Se.Z,{sx:{display:"flex",alignItems:"center",marginBottom:"15px"},children:[(null===t||void 0===t?void 0:t.state)&&(0,j.jsx)(Se.Z,{sx:{marginRight:"8px","& .min-icon":{fill:_e(t.state),height:"14px",width:"14px"}},children:(0,j.jsx)(v.J$,{})}),(0,j.jsx)(Se.Z,{sx:{fontWeight:600,textTransform:"none"},children:t.endpoint||""})]}),(0,j.jsxs)(Se.Z,{sx:{display:"flex",alignItems:"center",padding:"3px",gap:"15px",justifyContent:"space-between",width:"100%",paddingLeft:"20px",flexFlow:{sm:"row",xs:"column"}},children:[(0,j.jsx)(Ke,{statusColor:Ge(r,a),label:"Drives",icon:(0,j.jsx)(v.FU,{}),hasStatus:!0,value:"".concat(r,"/").concat(a)}),(0,j.jsx)(Ke,{statusColor:Ue(l,i),label:"Network",icon:(0,j.jsx)(v.B7,{}),hasStatus:!0,value:"".concat(l,"/").concat(i)}),(0,j.jsx)(Ke,{statusColor:"green",label:"Up time",icon:(0,j.jsx)(v.oN,{}),value:null!==t&&void 0!==t&&t.uptime?(0,g.v1)(t.uptime):"N/A"}),(0,j.jsx)(Ke,{statusColor:"green",label:"Version",icon:(0,j.jsx)(v.Db,{}),value:(0,j.jsx)(Se.Z,{sx:{background:"rgb(235, 236, 237)",color:"#000000",paddingLeft:"10px",paddingRight:"10px",borderRadius:"16px",fontSize:"12px",marginTop:"5px"},children:t.version?t.version:"N/A"})})]})]})})),$e=function(e){switch(e){case"offline":return Pe;case"ok":return ze;default:return Oe}},He=(0,x.Z)((function(e){return(0,u.Z)((0,l.Z)({},f.SJ))}))((function(e){e.classes;var t=e.drive;return(0,j.jsxs)(Se.Z,{sx:{display:"flex",flex:1,alignItems:"center",paddingBottom:"10px",borderBottom:{xs:"1px solid #eaeaea"}},children:[(0,j.jsx)(Se.Z,{sx:{"& .min-icon":{fill:"#848484"}},children:(0,j.jsx)(v.FU,{})}),(0,j.jsxs)(Se.Z,{sx:{display:"flex",flexFlow:"column",marginLeft:"10px",flex:1},children:[(0,j.jsxs)(Se.Z,{sx:{fontSize:"14px",fontWeight:400,display:"flex",alignItems:"center","& .min-icon":{marginRight:"10px",height:"10px",width:"10px",fill:$e(t.state),flexShrink:0},"& .drive-endpoint":{overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"normal",wordBreak:"break-all",fontSize:{md:"14px",xs:"10px"}}},children:[t.state&&(0,j.jsx)(v.J$,{}),(0,j.jsx)("div",{className:"drive-endpoint",children:t.endpoint||""})]}),(0,j.jsxs)(Se.Z,{sx:{flex:1,display:"flex",alignItems:"center",justifyContent:"space-between",paddingLeft:"20px",marginTop:"10px",flexFlow:{sm:"row",xs:"column"},"& .info-label":{color:"#8399AB"},"& .info-value":{color:"#073052",fontSize:"14px",fontWeight:500}},children:[(0,j.jsxs)(Se.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,j.jsx)("label",{className:"info-label",children:"Capacity:"}),(0,j.jsx)("div",{className:"info-value",children:(0,g.ae)(t.totalSpace?t.totalSpace.toString():"0")})]}),(0,j.jsxs)(Se.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,j.jsx)("label",{className:"info-label",children:"Used:"}),(0,j.jsx)("div",{className:"info-value",children:(0,g.ae)(t.usedSpace?t.usedSpace.toString():"0")})]}),(0,j.jsxs)(Se.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,j.jsx)("label",{className:"info-label",children:"Available:"}),(0,j.jsx)("div",{className:"info-value",children:(0,g.ae)(t.availableSpace?t.availableSpace.toString():"0")})]})]})]})]})})),Je=function(e){var t=e.data,n=r.useState(t.length>1?"":t[0].endpoint+"-0"),i=(0,a.Z)(n,2),l=i[0],o=i[1],s=function(e){o(e)};return(0,j.jsx)(Ie.Z,{sx:{width:"100%",flex:1},component:"nav","aria-labelledby":"nested-list-subheader",subheader:(0,j.jsxs)(Be.Z,{component:"div",sx:{borderBottom:"1px solid #F8F8F8"},children:["Servers (",t.length,")"]}),children:t.map((function(e,t){var n="".concat(e.endpoint,"-").concat(t),i=l===n;return(0,j.jsxs)(r.Fragment,{children:[(0,j.jsxs)(Re.Z,{disableRipple:!0,onClick:function(){s(i?"":n)},className:i?"expanded":"",sx:{display:"flex",alignItems:"center",justifyContent:"space-between",borderBottom:"1px solid #eaeaea","&:hover":{background:"#F8F8F8"},"&.expanded":{borderBottom:"none"}},children:[(0,j.jsx)(Ve,{server:e,index:t}),(0,j.jsx)(Se.Z,{sx:{height:"25px",width:"25px",marginLeft:"25px",background:"#FBFAFA",borderRadius:"2px","&:hover":{background:"#fafafa"},display:{md:"block",xs:"none"}},children:i?(0,j.jsx)(We.Z,{}):(0,j.jsx)(Me.Z,{})})]}),i?(0,j.jsxs)(r.Fragment,{children:[(0,j.jsxs)(Be.Z,{component:"div",sx:{borderBottom:"1px solid #F8F8F8"},children:["Drives (",e.drives.length,")"]},"".concat(t,"-drive-details")),(0,j.jsx)(De.Z,{in:i,timeout:"auto",unmountOnExit:!0,sx:{width:"100%",flex:1,display:"flex",padding:{md:"20px 50px",xs:"15px 15px"},"& .MuiCollapse-wrapperInner":{display:"flex",flexFlow:"column",gap:"15px"}},children:e.drives.map((function(e,t){return(0,j.jsx)(He,{drive:e},"".concat(e.endpoint,"-").concat(t))}))})]},"".concat(e.endpoint,"-").concat(t)):null]},n)}))})},Ye=n(20068),qe=function(e){var t=e.counterValue,n=e.label,i=void 0===n?"":n,a=e.icon,l=void 0===a?null:a;return(0,j.jsx)(Se.Z,{sx:{fontFamily:"Lato,sans-serif",color:"#07193E",maxWidth:"300px",minHeight:"200px",display:"flex",marginLeft:"auto",marginRight:"auto",cursor:"default",position:"relative",width:"100%"},children:(0,j.jsxs)(Se.Z,{sx:{flex:1,height:"200px",display:"flex",width:"100%",padding:{sm:"0 8px 0 8px",xs:"0 10px 0 10px"},position:"absolute"},children:[(0,j.jsxs)(Se.Z,{sx:{flex:1,display:"flex",flexFlow:"column",marginTop:"32px",zIndex:10,overflow:"hidden"},children:[(0,j.jsx)(Se.Z,{sx:{fontSize:"16px",fontWeight:600},children:i}),(0,j.jsx)(Ye.Z,{title:t,placement:"bottom",enterDelay:500,children:(0,j.jsx)(Se.Z,{sx:{fontSize:{xl:"55px",lg:"40px",md:"36px",sm:"22px",xs:"14px"},fontWeight:600,overflow:"hidden",textOverflow:"ellipsis",maxWidth:{md:187,xs:200}},children:t})})]}),(0,j.jsx)(Se.Z,{sx:{width:"20px",height:"20px",marginTop:"26px",maxWidth:"26px","& .min-icon":{width:"16px",height:"16px"}},children:l})]})})},Qe=function(e){var t=e.usageValue,n=e.total,i=e.unit;return(0,j.jsxs)(Se.Z,{sx:{maxHeight:"110px",display:"flex",alignItems:"center",justifyContent:"center",fontSize:"19px",padding:"10px","& .unit-value":{fontSize:"50px",color:"#07193E"},"& .unit-type":{fontSize:"18px",color:"#5E5E5E",marginTop:"20px",marginLeft:"5px"},"& .usage-label":{display:"flex",alignItems:"center",fontSize:"16px",fontWeight:600,marginRight:"20px",marginTop:"-10px","& .min-icon":{marginLeft:"10px",height:16,width:16}}},children:[(0,j.jsxs)("div",{className:"usage-label",children:[(0,j.jsx)("span",{children:"Reported Usage"})," ",(0,j.jsx)(v.rH,{})]}),(0,j.jsx)(Ye.Z,{title:"".concat(t," Bytes"),children:(0,j.jsx)("label",{className:"unit-value",style:{fontWeight:600},children:n})}),(0,j.jsx)("label",{className:"unit-type",children:i})]})},Xe=function(e){var t=e.children,n=e.background,i=void 0===n?"#ffffff":n;return(0,j.jsx)(Se.Z,{sx:{border:"1px solid #f1f1f1",background:i,maxWidth:{sm:"100%",xs:"250px"}},children:t})},et=function(e){var t=e.usage,n=t&&t.usage?t.usage.toString():"0",i=function(e){return void 0===e?{total:"0",unit:"Mi"}:(0,g.Am)(e)}(n),a=function(e){return null!==e?e.servers.sort((function(e,t){var n=e.endpoint.toLowerCase(),i=t.endpoint.toLowerCase();return ni?1:0})):[]}(t||null),l=[];a.forEach((function(e){var t=e.drives.map((function(e){return e}));l=[].concat((0,Ee.Z)(l),(0,Ee.Z)(t))}));var o=Le()(a,"state"),s=o.offline,c=void 0===s?[]:s,d=o.online,u=void 0===d?[]:d,x=Le()(l,"state"),p=x.offline,f=void 0===p?[]:p,h=x.ok,m=void 0===h?[]:h;return(0,j.jsx)(Se.Z,{sx:{maxWidth:"1536px",margin:"auto"},children:(0,j.jsxs)(Se.Z,{sx:{display:"grid",gridTemplateRows:"1fr",gridTemplateColumns:"1fr",gap:"27px",marginBottom:"40px",marginTop:"80px",marginLeft:"60px",marginRight:"60px"},children:[(0,j.jsxs)(Se.Z,{children:[(null===t||void 0===t?void 0:t.prometheusNotReady)&&(0,j.jsx)(Fe.Z,{iconComponent:(0,j.jsx)(v.a$,{}),title:"We can't retrieve advanced metrics at this time",help:(0,j.jsxs)(r.Fragment,{children:["MinIO Dashboard will display basic metrics as we couldn't connect to Prometheus successfully.",(0,j.jsx)("br",{})," ",(0,j.jsx)("br",{}),"Please try again in a few minutes. If the problem persists, you can review your configuration and confirm that Prometheus server is up and running."]})}),!(null!==t&&void 0!==t&&t.prometheusNotReady)&&(0,j.jsx)(Fe.Z,{iconComponent:(0,j.jsx)(v.a$,{}),title:"We can\u2019t retrieve advanced metrics at this time.",help:(0,j.jsxs)(Se.Z,{children:[(0,j.jsx)(Se.Z,{sx:{fontSize:"14px"},children:"MinIO Dashboard will display basic metrics as we couldn\u2019t connect to Prometheus successfully. Please try again in a few minutes. If the problem persists, you can review your configuration and confirm that Prometheus server is up and running."}),(0,j.jsx)(Se.Z,{sx:{paddingTop:"20px",fontSize:"14px","& a":{color:function(e){return e.colors.link}}},children:(0,j.jsx)("a",{href:"https://docs.min.io/minio/baremetal/monitoring/metrics-alerts/collect-minio-metrics-using-prometheus.html?ref=con#minio-metrics-collect-using-prometheus",target:"_blank",rel:"noreferrer",children:"Read more about Prometheus on our Docs site."})})]})})]}),(0,j.jsxs)(Se.Z,{sx:{display:"grid",gridTemplateRows:"1fr .2fr auto",gridTemplateColumns:"1fr",gap:"40px"},children:[(0,j.jsxs)(Se.Z,{sx:{display:"grid",gridTemplateRows:"1fr",gridTemplateColumns:{lg:"1fr 1fr 1fr 1fr ",sm:"1fr 1fr",xs:"1fr"},gap:"40px"},children:[(0,j.jsx)(Xe,{background:"linear-gradient(-15deg, #2781b0 0%, #ffffff 30%) 0% 0% no-repeat padding-box",children:(0,j.jsx)(qe,{label:"Buckets",icon:(0,j.jsx)(v.wN,{}),counterValue:t?(0,g.nk)(t.buckets):0})}),(0,j.jsx)(Xe,{background:"linear-gradient(-15deg, #4CCB92 0%, #ffffff 30%) 0% 0% no-repeat padding-box",children:(0,j.jsx)(qe,{label:"Objects",icon:(0,j.jsx)(v.xp,{}),counterValue:t?(0,g.nk)(t.objects):0})}),(0,j.jsx)(Xe,{children:(0,j.jsx)(ke,{onlineCount:u.length,offlineCount:c.length,label:"Servers",icon:(0,j.jsx)(v.SB,{})})}),(0,j.jsx)(Xe,{children:(0,j.jsx)(ke,{offlineCount:f.length,onlineCount:m.length,label:"Drives",icon:(0,j.jsx)(v.FU,{})})})]}),(0,j.jsx)(Xe,{children:(0,j.jsx)(Qe,{usageValue:n,total:i.total,unit:i.unit})}),(0,j.jsx)(Se.Z,{sx:{display:"grid",gridTemplateRows:"auto",gridTemplateColumns:"1fr",gap:"auto"},children:(0,j.jsx)(Xe,{children:(0,j.jsx)(Je,{data:a})})})]})]})})},tt=(0,o.$j)(null,{displayErrorMessage:S.Ih}),nt=(0,x.Z)((function(e){return(0,u.Z)((0,l.Z)({},(0,f.Bz)(e.spacing(4))))}))(tt((function(e){var t=e.classes,n=e.displayErrorMessage,i=(0,r.useState)(!0),l=(0,a.Z)(i,2),o=l[0],s=l[1],u=(0,r.useState)(null),x=(0,a.Z)(u,2),p=x[0],f=x[1],g=(0,r.useCallback)((function(){F.Z.invoke("GET","/api/v1/admin/info").then((function(e){f(e),s(!1)})).catch((function(e){n(e),s(!1)}))}),[f,s,n]);(0,r.useEffect)((function(){o&&g()}),[o,g]);var h=c()(p,"widgets",null);return(0,j.jsxs)(r.Fragment,{children:[(0,j.jsx)(Ne.Z,{label:"Metrics"}),o?(0,j.jsx)(d.ZP,{container:!0,children:(0,j.jsx)(d.ZP,{item:!0,xs:12,className:t.container,children:(0,j.jsx)(Ae.Z,{})})}):(0,j.jsx)(r.Fragment,{children:null!==h?(0,j.jsx)(d.ZP,{container:!0,className:t.container,children:(0,j.jsx)(we,{})}):(0,j.jsx)(et,{usage:p})})]})})))},19847:function(e,t,n){n.d(t,{x:function(){return s}});var i=n(1413),a=n(45987),l=n(72791),r=n(80184),o=["children","value","index"],s=function(e){var t=e.children,n=e.value,s=e.index,c=(0,a.Z)(e,o);return(0,r.jsx)("div",(0,i.Z)((0,i.Z)({role:"tabpanel",hidden:n!==s,id:"simple-tabpanel-".concat(s),"aria-labelledby":"simple-tab-".concat(s),style:{marginTop:"5px"}},c),{},{children:n===s&&(0,r.jsx)(l.Fragment,{children:t})}))}}}]); -//# sourceMappingURL=2625.86a516d1.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/2625.86a516d1.chunk.js.map b/portal-ui/build/static/js/2625.86a516d1.chunk.js.map deleted file mode 100644 index ae241f355..000000000 --- a/portal-ui/build/static/js/2625.86a516d1.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/2625.86a516d1.chunk.js","mappings":"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","sources":["screens/Console/Dashboard/Prometheus/types.ts","screens/Console/Dashboard/Prometheus/utils.tsx","screens/Console/Common/TabSelector/TabSelector.tsx","screens/Console/Dashboard/CommonCard.tsx","screens/Console/Dashboard/Prometheus/MergedWidgets.tsx","screens/Console/Dashboard/Prometheus/Widgets/tooltips/BarChartTooltip.tsx","screens/Console/Dashboard/Prometheus/Widgets/BarChartWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/tooltips/LineChartTooltip.tsx","screens/Console/Dashboard/Prometheus/Widgets/LinearGraphWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/PieChartWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/SimpleWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/SingleRepWidget.tsx","screens/Console/Dashboard/Prometheus/Widgets/SingleValueWidget.tsx","screens/Console/Dashboard/Prometheus/widgetUtils.tsx","screens/Console/Dashboard/Prometheus/ZoomWidget.tsx","screens/Console/Dashboard/Prometheus/PrDashboard.tsx","screens/Console/Dashboard/BasicDashboard/StatusCountCard.tsx","screens/Console/Dashboard/BasicDashboard/Utils.tsx","screens/Console/Dashboard/BasicDashboard/ServerInfoItem.tsx","screens/Console/Dashboard/BasicDashboard/DriveInfoItem.tsx","screens/Console/Dashboard/BasicDashboard/ServersList.tsx","screens/Console/Dashboard/BasicDashboard/CounterCard.tsx","screens/Console/Dashboard/BasicDashboard/ReportedUsage.tsx","screens/Console/Dashboard/BasicDashboard/BasicDashboard.tsx","screens/Console/Dashboard/Dashboard.tsx","screens/shared/tabs.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport {\n IBarChartConfiguration,\n IBarChartRelation,\n IDataSRep,\n ILinearGraphConfiguration,\n IPieChartConfiguration,\n} from \"./Widgets/types\";\n\nexport enum widgetType {\n singleValue = \"singleValue\",\n linearGraph = \"linearGraph\",\n areaGraph = \"areaGraph\",\n barChart = \"barChart\",\n pieChart = \"pieChart\",\n singleRep = \"singleRep\",\n simpleWidget = \"simpleWidget\",\n}\n\nexport interface IDashboardPanel {\n id: number;\n mergedPanels?: IDashboardPanel[];\n title: string;\n data?: string | object[] | IDataSRep[];\n dataOuter?: string | object[];\n type?: widgetType;\n widgetIcon?: any;\n widgetConfiguration?:\n | ILinearGraphConfiguration[]\n | IBarChartConfiguration[]\n | IPieChartConfiguration;\n color?: string;\n fillColor?: string;\n innerLabel?: string;\n labelDisplayFunction?: (value: string) => any;\n disableYAxis?: boolean;\n xAxisFormatter?: (item: string) => string;\n yAxisFormatter?: (item: string) => string;\n customStructure?: IBarChartRelation[];\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { IDashboardPanel, widgetType } from \"./types\";\nimport {\n getTimeFromTimestamp,\n niceBytes,\n niceDays,\n representationNumber,\n textToRGBColor,\n units,\n} from \"../../../../common/utils\";\nimport HealIcon from \"../../../../icons/HealIcon\";\nimport DiagnosticsIcon from \"../../../../icons/DiagnosticsIcon\";\nimport { UptimeIcon } from \"../../../../icons\";\n\nconst colorsMain = [\n \"#C4D4E9\",\n \"#DCD1EE\",\n \"#D1EEE7\",\n \"#EEDED1\",\n \"#AAF38F\",\n \"#F9E6C5\",\n \"#C83B51\",\n \"#F4CECE\",\n \"#D6D6D6\",\n];\n\nconst niceDaysFromNS = (seconds: string) => {\n return niceDays(seconds, \"ns\");\n};\n\nconst roundNumber = (value: string) => {\n return parseInt(value).toString(10);\n};\n\nexport const panelsConfiguration: IDashboardPanel[] = [\n {\n id: 1,\n title: \"Uptime\",\n data: \"N/A\",\n type: widgetType.simpleWidget,\n widgetIcon: ,\n labelDisplayFunction: niceDays,\n },\n {\n id: 50,\n title: \"Capacity\",\n data: [],\n dataOuter: [{ name: \"outer\", value: 100 }],\n widgetConfiguration: {\n outerChart: {\n colorList: [\"#9c9c9c\"],\n innerRadius: 0,\n outerRadius: 0,\n startAngle: 0,\n endAngle: 0,\n },\n innerChart: {\n colorList: colorsMain,\n innerRadius: 20,\n outerRadius: 50,\n startAngle: 90,\n endAngle: -200,\n },\n },\n type: widgetType.pieChart,\n innerLabel: \"N/A\",\n labelDisplayFunction: niceBytes,\n },\n {\n id: 68,\n title: \"Data Usage Growth\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.areaGraph,\n yAxisFormatter: niceBytes,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 52,\n title: \"Object size distribution\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"a\",\n color: colorsMain[0],\n background: {\n fill: \"#EEF1F4\",\n },\n greatestColor: \"#081C42\",\n },\n ],\n customStructure: [\n { originTag: \"LESS_THAN_1024_B\", displayTag: \"Less than 1024B\" },\n {\n originTag: \"BETWEEN_1024_B_AND_1_MB\",\n displayTag: \"Between 1024B and 1MB\",\n },\n {\n originTag: \"BETWEEN_1_MB_AND_10_MB\",\n displayTag: \"Between 1MB and 10MB\",\n },\n {\n originTag: \"BETWEEN_10_MB_AND_64_MB\",\n displayTag: \"Between 10MB and 64MB\",\n },\n {\n originTag: \"BETWEEN_64_MB_AND_128_MB\",\n displayTag: \"Between 64MB and 128MB\",\n },\n {\n originTag: \"BETWEEN_128_MB_AND_512_MB\",\n displayTag: \"Between 128MB and 512MB\",\n },\n {\n originTag: \"GREATER_THAN_512_MB\",\n displayTag: \"Greater than 512MB\",\n },\n ],\n type: widgetType.barChart,\n },\n {\n id: 66,\n title: \"Buckets\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#0071BC\",\n fillColor: \"#ADD5E0\",\n },\n {\n id: 44,\n title: \"Objects\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#0071BC\",\n fillColor: \"#ADD5E0\",\n },\n {\n id: 63,\n title: \"API Data Received Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 61,\n title: \"Total Open FDs\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#22B573\",\n fillColor: \"#A6E8C4\",\n },\n {\n id: 62,\n title: \"Total Goroutines\",\n data: [],\n innerLabel: \"N/A\",\n type: widgetType.singleRep,\n color: \"#F7655E\",\n fillColor: \"#F4CECE\",\n },\n {\n id: 77,\n title: \"Node CPU Usage\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 60,\n title: \"API Request Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 70,\n title: \"API Data Sent Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 17,\n title: \"Internode Data Transfer\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n yAxisFormatter: niceBytes,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 73,\n title: \"Node IO\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n yAxisFormatter: niceBytes,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 80,\n title: \"Time Since Last Heal Activity\",\n data: \"N/A\",\n type: widgetType.simpleWidget,\n widgetIcon: ,\n labelDisplayFunction: niceDaysFromNS,\n },\n {\n id: 81,\n title: \"Time Since Last Scan Activity\",\n data: \"N/A\",\n type: widgetType.simpleWidget,\n widgetIcon: ,\n labelDisplayFunction: niceDaysFromNS,\n },\n {\n id: 71,\n title: \"API Request Error Rate\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 76,\n title: \"Node Memory Usage\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 74,\n title: \"Drive Used Capacity\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n xAxisFormatter: getTimeFromTimestamp,\n yAxisFormatter: niceBytes,\n },\n {\n id: 82,\n title: \"Drives Free Inodes\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n\n disableYAxis: true,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 11,\n title: \"Node Syscalls\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 8,\n title: \"Node File Descriptors\",\n data: [],\n widgetConfiguration: [\n {\n dataKey: \"\",\n keyLabel: \"\",\n lineColor: \"#000\",\n fillColor: \"#000\",\n },\n ],\n type: widgetType.linearGraph,\n yAxisFormatter: roundNumber,\n xAxisFormatter: getTimeFromTimestamp,\n },\n {\n id: 500,\n mergedPanels: [\n {\n id: 53,\n title: \"Online\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n {\n id: 69,\n title: \"Offline\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n ],\n title: \"Servers\",\n },\n {\n id: 501,\n mergedPanels: [\n {\n id: 9,\n title: \"Online\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n {\n id: 78,\n title: \"Offline\",\n data: \"N/A\",\n type: widgetType.singleValue,\n },\n ],\n title: \"Drives\",\n },\n {\n id: 502,\n mergedPanels: [\n {\n id: 65,\n title: \"Upload\",\n data: \"N/A\",\n type: widgetType.singleValue,\n\n labelDisplayFunction: niceBytes,\n },\n {\n id: 64,\n title: \"Download\",\n data: \"N/A\",\n type: widgetType.singleValue,\n\n labelDisplayFunction: niceBytes,\n },\n ],\n title: \"Network\",\n },\n];\n\nconst calculateMainValue = (elements: any[], metricCalc: string) => {\n if (elements.length === 0) {\n return [\"\", \"0\"];\n }\n\n switch (metricCalc) {\n case \"mean\":\n const sumValues = elements.reduce((accumulator, currValue) => {\n return accumulator + parseFloat(currValue[1]);\n }, 0);\n\n const mean = Math.floor(sumValues / elements.length);\n\n return [\"\", mean.toString()];\n default:\n const sortResult = elements.sort(\n (value1: any[], value2: any[]) => value1[0] - value2[0]\n );\n\n return sortResult[sortResult.length - 1];\n }\n};\n\nconst constructLabelNames = (metrics: any, legendFormat: string) => {\n const keysToReplace = Object.keys(metrics);\n const expToReplace = new RegExp(`{{(${keysToReplace.join(\"|\")})}}`, \"g\");\n\n let replacedLegend = legendFormat.replace(expToReplace, (matchItem) => {\n const nwMatchItem = matchItem.replace(/({{|}})/g, \"\");\n return metrics[nwMatchItem];\n });\n\n const countVarsOpen = (replacedLegend.match(/{{/g) || []).length;\n const countVarsClose = (replacedLegend.match(/}}/g) || []).length;\n\n let cleanLegend = replacedLegend.replace(/{{(.*?)}}/g, \"\");\n\n if (\n countVarsOpen === countVarsClose &&\n countVarsOpen !== 0 &&\n countVarsClose !== 0\n ) {\n keysToReplace.forEach((element) => {\n replacedLegend = replacedLegend.replace(element, metrics[element]);\n });\n\n cleanLegend = replacedLegend;\n }\n\n // In case not all the legends were replaced, we remove the placeholders.\n return cleanLegend;\n};\n\nexport const getWidgetsWithValue = (payload: any[]): IDashboardPanel[] => {\n return panelsConfiguration.map((panelItem: IDashboardPanel) => {\n const payloadData = payload.find(\n (panelT) =>\n panelT.title.toLowerCase().trim() ===\n panelItem.title.toLowerCase().trim()\n );\n return widgetDetailsToPanel(payloadData, panelItem);\n });\n};\n\nexport const widgetDetailsToPanel = (\n payloadData: any,\n panelItem: IDashboardPanel\n) => {\n if (!payloadData) {\n return panelItem;\n }\n\n const typeOfPayload = payloadData.type;\n\n switch (panelItem.type) {\n case widgetType.singleValue:\n case widgetType.simpleWidget:\n if (typeOfPayload === \"stat\" || typeOfPayload === \"singlestat\") {\n // We sort values & get the last value\n let elements = get(payloadData, \"targets[0].result[0].values\", []);\n\n if (elements === null) {\n elements = [];\n }\n\n const metricCalc = get(\n payloadData,\n \"options.reduceOptions.calcs[0]\",\n \"lastNotNull\"\n );\n\n const valueDisplay = calculateMainValue(elements, metricCalc);\n\n const data = panelItem.labelDisplayFunction\n ? panelItem.labelDisplayFunction(valueDisplay[1])\n : valueDisplay[1];\n\n return {\n ...panelItem,\n data,\n };\n }\n break;\n case widgetType.pieChart:\n if (typeOfPayload === \"gauge\") {\n let chartSeries = get(payloadData, \"targets[0].result\", []);\n\n if (chartSeries === null) {\n chartSeries = [];\n }\n\n const metricCalc = get(\n payloadData,\n \"options.reduceOptions.calcs[0]\",\n \"lastNotNull\"\n );\n\n const valuesArray = chartSeries.length > 0 ? chartSeries[0].values : [];\n\n const totalValues = calculateMainValue(valuesArray, metricCalc);\n\n const values = chartSeries.map((elementValue: any) => {\n const values = get(elementValue, \"values\", []);\n const metricKeyItem = Object.keys(elementValue.metric);\n\n const sortResult = values.sort(\n (value1: any[], value2: any[]) => value1[0] - value2[0]\n );\n\n const metricName = elementValue.metric[metricKeyItem[0]];\n const value = sortResult[sortResult.length - 1];\n return { name: metricName, value: parseInt(value) };\n });\n\n const innerLabel = panelItem.labelDisplayFunction\n ? panelItem.labelDisplayFunction(totalValues[1])\n : totalValues[1];\n\n return {\n ...panelItem,\n data: values,\n innerLabel,\n };\n }\n break;\n case widgetType.linearGraph:\n case widgetType.areaGraph:\n if (typeOfPayload === \"graph\") {\n let targets = get(payloadData, \"targets\", []);\n if (targets === null) {\n targets = [];\n }\n\n const series: any[] = [];\n const plotValues: any[] = [];\n\n targets.forEach(\n (\n targetMaster: { legendFormat: string; result: any[] },\n index: number\n ) => {\n // Add a new serie to plot variables in case it is not from multiple values\n let results = get(targetMaster, \"result\", []);\n const legendFormat = targetMaster.legendFormat;\n if (results === null) {\n results = [];\n }\n\n results.forEach((itemVals: { metric: object; values: any[] }) => {\n // Label Creation\n const labelName = constructLabelNames(\n itemVals.metric,\n legendFormat\n );\n const keyName = `key_${index}${labelName}`;\n\n // series creation with recently created label\n series.push({\n dataKey: keyName,\n keyLabel: labelName,\n lineColor: \"\",\n fillColor: \"\",\n });\n\n // we iterate over values and create elements\n let values = get(itemVals, \"values\", []);\n if (values === null) {\n values = [];\n }\n\n values.forEach((valInfo: any[]) => {\n const itemIndex = plotValues.findIndex(\n (element) => element.name === valInfo[0]\n );\n\n // Element not exists yet\n if (itemIndex === -1) {\n let itemToPush: any = { name: valInfo[0] };\n itemToPush[keyName] = valInfo[1];\n\n plotValues.push(itemToPush);\n } else {\n plotValues[itemIndex][keyName] = valInfo[1];\n }\n });\n });\n }\n );\n\n const sortedSeries = series.sort((series1: any, series2: any) => {\n if (series1.keyLabel < series2.keyLabel) {\n return -1;\n }\n if (series1.keyLabel > series2.keyLabel) {\n return 1;\n }\n return 0;\n });\n\n const seriesWithColors = sortedSeries.map(\n (serialC: any, index: number) => {\n return {\n ...serialC,\n lineColor: colorsMain[index] || textToRGBColor(serialC.keyLabel),\n fillColor: colorsMain[index] || textToRGBColor(serialC.keyLabel),\n };\n }\n );\n\n const sortedVals = plotValues.sort(\n (value1: any, value2: any) => value1.name - value2.name\n );\n\n return {\n ...panelItem,\n widgetConfiguration: seriesWithColors,\n data: sortedVals,\n };\n }\n break;\n case widgetType.barChart:\n if (typeOfPayload === \"bargauge\") {\n let chartBars = get(payloadData, \"targets[0].result\", []);\n\n if (chartBars === null) {\n chartBars = [];\n }\n\n const sortFunction = (value1: any[], value2: any[]) =>\n value1[0] - value2[0];\n\n let values = [];\n if (panelItem.customStructure) {\n values = panelItem.customStructure.map((structureItem) => {\n const metricTake = chartBars.find((element: any) => {\n const metricKeyItem = Object.keys(element.metric);\n\n const metricName = element.metric[metricKeyItem[0]];\n\n return metricName === structureItem.originTag;\n });\n\n const elements = get(metricTake, \"values\", []);\n\n const sortResult = elements.sort(sortFunction);\n const lastValue = sortResult[sortResult.length - 1] || [\"\", \"0\"];\n\n return {\n name: structureItem.displayTag,\n a: parseInt(lastValue[1]),\n };\n });\n } else {\n // If no configuration is set, we construct the series for bar chart and return the element\n values = chartBars.map((elementValue: any) => {\n const metricKeyItem = Object.keys(elementValue.metric);\n\n const metricName = elementValue.metric[metricKeyItem[0]];\n\n const elements = get(elementValue, \"values\", []);\n\n const sortResult = elements.sort(sortFunction);\n const lastValue = sortResult[sortResult.length - 1] || [\"\", \"0\"];\n return { name: metricName, a: parseInt(lastValue[1]) };\n });\n }\n\n return {\n ...panelItem,\n data: values,\n };\n }\n break;\n case widgetType.singleRep:\n if (typeOfPayload === \"stat\") {\n // We sort values & get the last value\n let elements = get(payloadData, \"targets[0].result[0].values\", []);\n if (elements === null) {\n elements = [];\n }\n const metricCalc = get(\n payloadData,\n \"options.reduceOptions.calcs[0]\",\n \"lastNotNull\"\n );\n\n const valueDisplay = calculateMainValue(elements, metricCalc);\n\n const sortResult = elements.sort(\n (value1: any[], value2: any[]) => value1[0] - value2[0]\n );\n\n let valuesForBackground = [];\n\n if (sortResult.length === 1) {\n valuesForBackground.push({ value: 0 });\n }\n\n sortResult.forEach((eachVal: any) => {\n valuesForBackground.push({ value: parseInt(eachVal[1]) });\n });\n\n const innerLabel = panelItem.labelDisplayFunction\n ? panelItem.labelDisplayFunction(valueDisplay[1])\n : valueDisplay[1];\n\n return {\n ...panelItem,\n data: valuesForBackground,\n innerLabel,\n };\n }\n break;\n }\n\n return panelItem;\n};\n\nconst verifyNumeric = (item: string) => {\n return !isNaN(parseFloat(item));\n};\n\nexport const splitSizeMetric = (val: string) => {\n const splittedText = val.split(\" \");\n // Value is not a size metric, we return as common string\n\n const singleValue = () => {\n let vl = val;\n\n if (verifyNumeric(val)) {\n vl = representationNumber(parseFloat(val));\n }\n return {vl};\n };\n\n if (splittedText.length !== 2) {\n return singleValue();\n }\n\n if (!units.includes(splittedText[1])) {\n return singleValue();\n }\n\n return (\n \n {splittedText[0]}\n {splittedText[1]}\n \n );\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport { ITabOption } from \"./types\";\n\ninterface ITabSelector {\n selectedTab: number;\n onChange: (newValue: number) => void;\n tabOptions: ITabOption[];\n}\n\nconst tabSubStyles = makeStyles({\n root: {\n backgroundColor: \"transparent\",\n paddingTop: 0,\n paddingBottom: 0,\n fontSize: 22,\n textTransform: \"uppercase\",\n color: \"#D0D0D0\",\n },\n selected: { \"& .MuiTab-wrapper\": { color: \"#07193E\", fontWeight: \"bold\" } },\n indicator: {\n background:\n \"transparent linear-gradient(90deg, #072B4E 0%, #081C42 100%) 0% 0% no-repeat padding-box;\",\n height: 4,\n },\n scroller: {\n maxWidth: 1185,\n position: \"relative\",\n \"&::after\": {\n content: '\" \"',\n backgroundColor: \"#EEF1F4\",\n height: 4,\n width: \"100%\",\n display: \"block\",\n },\n },\n});\n\nconst TabSelector = ({ selectedTab, onChange, tabOptions }: ITabSelector) => {\n const subStyles = tabSubStyles();\n\n return (\n \n , newValue: number) => {\n onChange(newValue);\n }}\n classes={{\n indicator: subStyles.indicator,\n scroller: subStyles.scroller,\n }}\n >\n {tabOptions.map((option, index) => {\n let tabOptions: ITabOption = {\n label: option.label,\n };\n\n if (option.value) {\n tabOptions = { ...tabOptions, value: option.value };\n }\n\n if (option.disabled) {\n tabOptions = { ...tabOptions, disabled: option.disabled };\n }\n\n return (\n \n );\n })}\n \n \n );\n};\n\nexport default TabSelector;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Card, CardHeader } from \"@mui/material\";\nimport { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport React, { Fragment } from \"react\";\nimport { widgetCommon } from \"../Common/FormComponents/common/styleLibrary\";\n\nexport interface ISubInterface {\n message: string;\n fontWeight?: \"normal\" | \"bold\";\n}\n\ninterface ICommonCard {\n title: string;\n metricValue: any;\n metricUnit?: string;\n subMessage?: ISubInterface;\n moreLink?: string;\n rightComponent?: any;\n extraMargin?: boolean;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n cardRoot: {\n ...widgetCommon.singleValueContainer,\n \"&.MuiPaper-root\": {\n borderRadius: 10,\n },\n },\n metricText: {\n fontSize: 70,\n lineHeight: 1.1,\n color: \"#07193E\",\n fontWeight: \"bold\",\n },\n unitText: {\n fontSize: 10,\n color: \"#767676\",\n fontWeight: \"normal\",\n },\n subHearderContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n },\n subMessage: {\n fontSize: 10,\n color: \"#767676\",\n \"&.bold\": {\n fontWeight: \"bold\",\n },\n },\n headerContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n },\n viewAll: {\n fontSize: 10,\n color: \"#C83B51\",\n textTransform: \"capitalize\",\n\n \"& a, & a:hover, & a:visited, & a:active\": {\n color: \"#C83B51\",\n },\n },\n extraMargin: {\n margin: \"10px 20px 10px 0\",\n },\n });\n\nconst cardSubStyles = makeStyles({\n root: { backgroundColor: \"#fff\", padding: 0 },\n title: {\n ...widgetCommon.titleContainer,\n },\n content: {\n maxWidth: \"100%\",\n },\n});\n\nconst CommonCard = ({\n title,\n metricValue,\n metricUnit,\n subMessage,\n moreLink,\n rightComponent,\n extraMargin = false,\n classes,\n}: ICommonCard) => {\n const subStyles = cardSubStyles();\n const SubHeader = () => {\n return (\n \n
    \n
    \n
    \n \n {metricValue}\n {metricUnit}\n \n
    \n {subMessage && (\n \n {subMessage.message}\n
    \n )}\n
    \n
    {rightComponent}
    \n \n
    \n );\n };\n\n const Header = () => {\n return (\n \n
    \n {title}\n {moreLink && (\n \n \n View All\n \n \n )}\n
    \n
    \n );\n };\n\n return (\n \n \n {metricValue !== \"\" && (\n }\n subheader={\n \n \n \n }\n classes={{\n root: subStyles.root,\n title: subStyles.title,\n content: subStyles.content,\n }}\n />\n )}\n \n \n );\n};\n\nexport default withStyles(styles)(CommonCard);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport CommonCard from \"../CommonCard\";\n\ninterface IMergedWidgets {\n title: string;\n leftComponent: any;\n rightComponent: any;\n}\n\nconst MergedWidgets = ({\n title,\n leftComponent,\n rightComponent,\n}: IMergedWidgets) => {\n return (\n \n \n \n );\n};\n\nexport default MergedWidgets;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { tooltipCommon } from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tooltipCommon,\n });\n\nconst BarChartTooltip = ({\n active,\n payload,\n label,\n barChartConfiguration,\n classes,\n}: any) => {\n if (active) {\n return (\n
    \n
    {label}
    \n {payload &&\n payload.map((pl: any, index: number) => {\n return (\n \n \n
    \n {pl.value}\n
    \n
    \n );\n })}\n \n );\n }\n\n return null;\n};\n\nexport default withStyles(styles)(BarChartTooltip);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n Bar,\n BarChart,\n Cell,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { useMediaQuery } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ZoomOutMapIcon from \"@mui/icons-material/ZoomOutMap\";\nimport { IBarChartConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport BarChartTooltip from \"./tooltips/BarChartTooltip\";\nimport { setErrorSnackMessage } from \"../../../../../actions\";\nimport { IDashboardPanel } from \"../types\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport api from \"../../../../../common/api\";\nimport { openZoomPage } from \"../../actions\";\nimport { useTheme } from \"@mui/styles\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\ninterface IBarChartWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n displayErrorMessage: any;\n apiPrefix: string;\n zoomActivated?: boolean;\n openZoomPage: typeof openZoomPage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n paddingTop: \"15px\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n });\n\nconst CustomizedAxisTick = ({ y, payload }: any) => {\n return (\n \n {payload.value}\n \n );\n};\n\nconst BarChartWidget = ({\n classes,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n displayErrorMessage,\n apiPrefix,\n zoomActivated = false,\n openZoomPage,\n}: IBarChartWidget) => {\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState([]);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setResult(widgetsWithValue);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, displayErrorMessage, apiPrefix]);\n\n const barChartConfiguration = result\n ? (result.widgetConfiguration as IBarChartConfiguration[])\n : [];\n\n let greatestIndex = 0;\n let currentValue = 0;\n\n if (barChartConfiguration.length === 1) {\n const dataGraph = barChartConfiguration[0];\n data.forEach((item: any, index: number) => {\n if (item[dataGraph.dataKey] > currentValue) {\n currentValue = item[dataGraph.dataKey];\n greatestIndex = index;\n }\n });\n }\n\n const theme = useTheme();\n const biggerThanMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n return (\n
    \n {!zoomActivated && (\n
    \n {title}{\" \"}\n {\n openZoomPage(panelItem);\n }}\n className={classes.zoomChartIcon}\n >\n \n \n
    \n )}\n {loading && (\n
    \n \n
    \n )}\n {!loading && (\n \n \n \n \n }\n tickLine={false}\n axisLine={false}\n width={150}\n hide={!biggerThanMd}\n />\n {barChartConfiguration.map((bar) => (\n \n {barChartConfiguration.length === 1 ? (\n \n {data.map((_: any, index: number) => (\n \n ))}\n \n ) : null}\n \n ))}\n \n }\n />\n \n \n
    \n )}\n \n );\n};\n\nconst connector = connect(null, {\n displayErrorMessage: setErrorSnackMessage,\n openZoomPage: openZoomPage,\n});\n\nexport default withStyles(styles)(connector(BarChartWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { getTimeFromTimestamp } from \"../../../../../../common/utils\";\nimport { tooltipCommon } from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tooltipCommon,\n });\n\nconst LineChartTooltip = ({\n active,\n payload,\n label,\n linearConfiguration,\n yAxisFormatter,\n classes,\n}: any) => {\n if (active) {\n return (\n
    \n
    \n {getTimeFromTimestamp(label, true)}\n
    \n {payload &&\n payload.map((pl: any, index: number) => {\n return (\n \n \n
    \n \n {linearConfiguration[index].keyLabel}:{\" \"}\n {yAxisFormatter(pl.value)}\n \n
    \n
    \n );\n })}\n \n );\n }\n\n return null;\n};\n\nexport default withStyles(styles)(LineChartTooltip);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport {\n Area,\n AreaChart,\n CartesianGrid,\n ResponsiveContainer,\n Tooltip,\n XAxis,\n YAxis,\n} from \"recharts\";\nimport { useMediaQuery } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ZoomOutMapIcon from \"@mui/icons-material/ZoomOutMap\";\nimport { ILinearGraphConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { IDashboardPanel } from \"../types\";\nimport { setErrorSnackMessage } from \"../../../../../actions\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport api from \"../../../../../common/api\";\nimport LineChartTooltip from \"./tooltips/LineChartTooltip\";\nimport { openZoomPage } from \"../../actions\";\nimport { useTheme } from \"@mui/styles\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\ninterface ILinearGraphWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n displayErrorMessage: any;\n apiPrefix: string;\n hideYAxis?: boolean;\n yAxisFormatter?: (item: string) => string;\n xAxisFormatter?: (item: string) => string;\n areaWidget?: boolean;\n zoomActivated?: boolean;\n openZoomPage: typeof openZoomPage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n containerElements: {\n display: \"flex\",\n flexDirection: \"row\",\n height: \"100%\",\n flexGrow: 1,\n },\n verticalAlignment: {\n flexDirection: \"column\",\n },\n chartCont: {\n position: \"relative\",\n height: 140,\n width: \"100%\",\n },\n legendChart: {\n display: \"flex\",\n flexDirection: \"column\",\n flex: \"0 1 auto\",\n maxHeight: 130,\n margin: 0,\n overflowY: \"auto\",\n position: \"relative\",\n textAlign: \"center\",\n width: \"100%\",\n justifyContent: \"flex-start\",\n color: \"#404143\",\n fontWeight: \"bold\",\n fontSize: 12,\n },\n loadingAlign: {\n margin: \"auto\",\n },\n });\n\nconst LinearGraphWidget = ({\n classes,\n title,\n displayErrorMessage,\n timeStart,\n timeEnd,\n propLoading,\n panelItem,\n apiPrefix,\n hideYAxis = false,\n areaWidget = false,\n yAxisFormatter = (item: string) => item,\n xAxisFormatter = (item: string) => item,\n zoomActivated = false,\n openZoomPage,\n}: ILinearGraphWidget) => {\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState([]);\n const [dataMax, setDataMax] = useState(0);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setResult(widgetsWithValue);\n setLoading(false);\n let maxVal = 0;\n for (const dp of widgetsWithValue.data) {\n for (const key in dp) {\n if (key === \"name\") {\n continue;\n }\n let val = parseInt(dp[key]);\n\n if (isNaN(val)) {\n val = 0;\n }\n\n if (maxVal < val) {\n maxVal = val;\n }\n }\n }\n setDataMax(maxVal);\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, displayErrorMessage, apiPrefix]);\n\n let intervalCount = Math.floor(data.length / 5);\n\n const linearConfiguration = result\n ? (result?.widgetConfiguration as ILinearGraphConfiguration[])\n : [];\n\n const CustomizedDot = (prop: any) => {\n const { cx, cy, index } = prop;\n\n if (index % 3 !== 0) {\n return null;\n }\n return ;\n };\n\n const theme = useTheme();\n const biggerThanMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n return (\n
    \n {!zoomActivated && (\n
    \n {title}{\" \"}\n {\n openZoomPage(panelItem);\n }}\n className={classes.zoomChartIcon}\n >\n \n \n
    \n )}\n \n {loading && }\n {!loading && (\n \n \n \n \n {areaWidget && (\n \n \n \n \n \n \n )}\n \n xAxisFormatter(value)}\n interval={intervalCount}\n tick={{\n fontSize: \"70%\",\n fontWeight: \"bold\",\n color: \"#404143\",\n }}\n tickCount={10}\n stroke={\"#082045\"}\n />\n yAxisFormatter(value)}\n tick={{\n fontSize: \"70%\",\n fontWeight: \"bold\",\n color: \"#404143\",\n }}\n stroke={\"#082045\"}\n />\n {linearConfiguration.map((section, index) => {\n return (\n : false}\n />\n );\n })}\n \n }\n wrapperStyle={{\n zIndex: 5000,\n }}\n />\n \n \n
    \n {!areaWidget && (\n \n {zoomActivated && (\n \n Series\n
    \n
    \n
    \n )}\n {biggerThanMd && (\n
    \n {linearConfiguration.map((section, index) => {\n return (\n \n \n
    \n {section.keyLabel}\n
    \n
    \n );\n })}\n \n )}\n
    \n )}\n \n )}\n \n \n );\n};\n\nconst connector = connect(null, {\n displayErrorMessage: setErrorSnackMessage,\n openZoomPage: openZoomPage,\n});\n\nexport default withStyles(styles)(connector(LinearGraphWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Cell, Pie, PieChart, ResponsiveContainer } from \"recharts\";\nimport { IPieChartConfiguration } from \"./types\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../../actions\";\nimport { IDashboardPanel } from \"../types\";\nimport { splitSizeMetric, widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport get from \"lodash/get\";\nimport api from \"../../../../../common/api\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\ninterface IPieChartWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n displayErrorMessage: any;\n apiPrefix: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n paddingTop: \"15px\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n pieChartLabel: {\n fontSize: 60,\n color: \"#07193E\",\n fontWeight: \"bold\",\n width: \"100%\",\n \"& .unitText\": {\n color: \"#767676\",\n fontSize: 12,\n },\n },\n chartContainer: {\n width: \"100%\",\n height: 140,\n },\n });\n\nconst PieChartWidget = ({\n classes,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n displayErrorMessage,\n apiPrefix,\n}: IPieChartWidget) => {\n const [loading, setLoading] = useState(true);\n const [dataInner, setDataInner] = useState([]);\n const [dataOuter, setDataOuter] = useState([]);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setDataInner(widgetsWithValue.data);\n setDataOuter(widgetsWithValue.dataOuter as object[]);\n setResult(widgetsWithValue);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, displayErrorMessage, apiPrefix]);\n\n const pieChartConfiguration = result\n ? (result.widgetConfiguration as IPieChartConfiguration)\n : [];\n const middleLabel = result?.innerLabel;\n\n const innerColors = get(pieChartConfiguration, \"innerChart.colorList\", []);\n const outerColors = get(pieChartConfiguration, \"outerChart.colorList\", []);\n\n return (\n
    \n
    {title}
    \n {loading && (\n
    \n \n
    \n )}\n {!loading && (\n
    \n \n {middleLabel && splitSizeMetric(middleLabel)}\n \n
    \n \n \n {dataOuter && (\n \n {dataOuter.map((entry, index) => (\n \n ))}\n \n )}\n {dataInner && (\n \n {dataInner.map((entry, index) => {\n return (\n \n );\n })}\n \n )}\n \n \n
    \n
    \n )}\n
    \n );\n};\n\nconst connector = connect(null, {\n displayErrorMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(PieChartWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../../../common/api\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { IDashboardPanel } from \"../types\";\nimport { setErrorSnackMessage } from \"../../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\ninterface ISimpleWidget {\n classes: any;\n iconWidget: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n displayErrorMessage: any;\n apiPrefix: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n mainWidgetContainer: {\n display: \"inline-flex\",\n color: \"#072A4D\",\n alignItems: \"center\",\n },\n icon: {\n color: \"#072A4D\",\n fill: \"#072A4D\",\n marginRight: 5,\n marginLeft: 12,\n },\n widgetLabel: {\n fontWeight: \"bold\",\n textTransform: \"uppercase\",\n marginRight: 10,\n },\n widgetValue: {\n marginRight: 25,\n },\n });\n\nconst SimpleWidget = ({\n classes,\n iconWidget,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n displayErrorMessage,\n apiPrefix,\n}: ISimpleWidget) => {\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(\"\");\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, displayErrorMessage, apiPrefix]);\n\n return (\n \n {loading && (\n
    \n \n
    \n )}\n {!loading && (\n \n {iconWidget ? iconWidget : null}\n {title}: \n {data}\n \n )}\n
    \n );\n};\n\nconst connector = connect(null, {\n displayErrorMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(SimpleWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { Area, AreaChart, ResponsiveContainer, YAxis } from \"recharts\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { IDataSRep } from \"./types\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../../actions\";\nimport { IDashboardPanel } from \"../types\";\nimport { widgetDetailsToPanel } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\nimport { representationNumber } from \"../../../../../common/utils\";\nimport api from \"../../../../../common/api\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\ninterface ISingleRepWidget {\n classes: any;\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n displayErrorMessage: any;\n color: string;\n fillColor: string;\n apiPrefix: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n paddingTop: \"5px\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n });\n\nconst SingleRepWidget = ({\n classes,\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n displayErrorMessage,\n color,\n fillColor,\n apiPrefix,\n}: ISingleRepWidget) => {\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState([]);\n const [result, setResult] = useState(null);\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setResult(widgetsWithValue);\n setData(widgetsWithValue.data);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, displayErrorMessage, apiPrefix]);\n const gradientID = `colorGradient-${title.split(\" \").join(\"-\")}`;\n\n let repNumber = \"\";\n\n if (result) {\n const resultRep = parseInt(result.innerLabel || \"0\");\n\n if (!isNaN(resultRep)) {\n repNumber = representationNumber(resultRep);\n } else {\n repNumber = \"0\";\n }\n }\n\n return (\n
    \n
    {title}
    \n {loading && (\n
    \n \n
    \n )}\n {!loading && (\n
    \n \n \n \n \n \n \n \n \n dataMax * 2]}\n hide={true}\n />\n \n \n {result ? repNumber : \"\"}\n \n \n \n
    \n )}\n
    \n );\n};\n\nconst connector = connect(null, {\n displayErrorMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(SingleRepWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport api from \"../../../../../common/api\";\nimport Loader from \"../../../Common/Loader/Loader\";\nimport { widgetCommon } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport { splitSizeMetric, widgetDetailsToPanel } from \"../utils\";\nimport { IDashboardPanel } from \"../types\";\nimport { setErrorSnackMessage } from \"../../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../../common/types\";\n\ninterface ISingleValueWidget {\n title: string;\n panelItem: IDashboardPanel;\n timeStart: any;\n timeEnd: any;\n propLoading: boolean;\n displayErrorMessage: any;\n classes: any;\n apiPrefix: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...widgetCommon,\n loadingAlign: {\n width: \"100%\",\n textAlign: \"center\",\n margin: \"auto\",\n },\n metric: {\n fontSize: 60,\n lineHeight: 1,\n color: \"#07193E\",\n fontWeight: 700,\n },\n titleElement: {\n fontSize: 10,\n color: \"#767676\",\n fontWeight: 700,\n },\n containerAlignment: {\n display: \"flex\",\n height: 140,\n flexDirection: \"column\",\n justifyContent: \"center\",\n \"& .unitText\": {\n color: \"#767676\",\n fontSize: 12,\n },\n },\n });\n\nconst SingleValueWidget = ({\n title,\n panelItem,\n timeStart,\n timeEnd,\n propLoading,\n displayErrorMessage,\n classes,\n apiPrefix,\n}: ISingleValueWidget) => {\n const [loading, setLoading] = useState(true);\n const [data, setData] = useState(\"\");\n\n useEffect(() => {\n if (propLoading) {\n setLoading(true);\n }\n }, [propLoading]);\n\n useEffect(() => {\n if (loading) {\n let stepCalc = 0;\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info/widgets/${\n panelItem.id\n }/?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n const widgetsWithValue = widgetDetailsToPanel(res, panelItem);\n setData(widgetsWithValue.data);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n });\n }\n }, [loading, panelItem, timeEnd, timeStart, displayErrorMessage, apiPrefix]);\n return (\n
    \n {loading && (\n
    \n \n
    \n )}\n {!loading && (\n \n
    {splitSizeMetric(data)}
    \n
    {title}
    \n
    \n )}\n
    \n );\n};\n\nconst connector = connect(null, {\n displayErrorMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(SingleValueWidget));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { IDashboardPanel, widgetType } from \"./types\";\nimport BarChartWidget from \"./Widgets/BarChartWidget\";\nimport LinearGraphWidget from \"./Widgets/LinearGraphWidget\";\nimport PieChartWidget from \"./Widgets/PieChartWidget\";\nimport SimpleWidget from \"./Widgets/SimpleWidget\";\nimport SingleRepWidget from \"./Widgets/SingleRepWidget\";\nimport SingleValueWidget from \"./Widgets/SingleValueWidget\";\n\nexport const componentToUse = (\n value: IDashboardPanel,\n timeStart: any,\n timeEnd: any,\n loading: boolean,\n apiPrefix: string,\n zoomActivated: boolean = false\n) => {\n switch (value.type) {\n case widgetType.singleValue:\n return (\n \n );\n case widgetType.simpleWidget:\n return (\n \n );\n case widgetType.pieChart:\n return (\n \n );\n case widgetType.linearGraph:\n case widgetType.areaGraph:\n return (\n \n );\n case widgetType.barChart:\n return (\n \n );\n case widgetType.singleRep:\n const fillColor = value.fillColor ? value.fillColor : value.color;\n return (\n \n );\n default:\n return null;\n }\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { IDashboardPanel } from \"./types\";\nimport { componentToUse } from \"./widgetUtils\";\nimport { closeZoomPage } from \"../actions\";\n\ninterface IZoomWidget {\n widgetRender: number;\n value: IDashboardPanel | null;\n modalOpen: boolean;\n timeStart: any;\n timeEnd: any;\n apiPrefix: string;\n onCloseAction: typeof closeZoomPage;\n}\nconst ZoomWidget = ({\n value,\n modalOpen,\n timeStart,\n timeEnd,\n apiPrefix,\n onCloseAction,\n}: IZoomWidget) => {\n if (!value) {\n return null;\n }\n\n return (\n {\n onCloseAction();\n }}\n modalOpen={modalOpen}\n wideLimit={false}\n noContentPadding\n >\n \n {componentToUse(value, timeStart, timeEnd, true, apiPrefix, true)}\n \n \n );\n};\n\nconst connector = connect(null, {\n onCloseAction: closeZoomPage,\n});\n\nexport default connector(ZoomWidget);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\n\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { GridSize, useMediaQuery } from \"@mui/material\";\nimport {\n actionsTray,\n widgetContainerCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { IDashboardPanel } from \"./types\";\nimport { getWidgetsWithValue, panelsConfiguration } from \"./utils\";\nimport { TabPanel } from \"../../../shared/tabs\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport api from \"../../../../common/api\";\n\nimport TabSelector from \"../../Common/TabSelector/TabSelector\";\nimport MergedWidgets from \"./MergedWidgets\";\nimport { componentToUse } from \"./widgetUtils\";\nimport ZoomWidget from \"./ZoomWidget\";\nimport { AppState } from \"../../../../store\";\nimport DateRangeSelector from \"../../Common/FormComponents/DateRangeSelector/DateRangeSelector\";\nimport { useTheme } from \"@mui/styles\";\n\ninterface IPrDashboard {\n classes: any;\n displayErrorMessage: typeof setErrorSnackMessage;\n apiPrefix?: string;\n zoomOpen: boolean;\n zoomWidget: null | IDashboardPanel;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...widgetContainerCommon,\n dashboardRow: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\",\n flexWrap: \"wrap\",\n maxWidth: 1180,\n },\n });\n\nconst PrDashboard = ({\n classes,\n displayErrorMessage,\n apiPrefix = \"admin\",\n zoomOpen,\n zoomWidget,\n}: IPrDashboard) => {\n const [timeStart, setTimeStart] = useState(null);\n const [timeEnd, setTimeEnd] = useState(null);\n const [loading, setLoading] = useState(true);\n const [panelInformation, setPanelInformation] =\n useState(panelsConfiguration);\n const [curTab, setCurTab] = useState(0);\n\n const theme = useTheme();\n const biggerThanMd = useMediaQuery(theme.breakpoints.up(\"md\"));\n\n const panels = useCallback(\n (tabName: string, filterPanels?: number[][] | null) => {\n return filterPanels?.map((panelLine, indexLine) => {\n const totalPanelsContained = panelLine.length;\n\n let perc = Math.floor(12 / totalPanelsContained);\n\n if (!biggerThanMd && totalPanelsContained >= 4) {\n perc = 6;\n } else if (!biggerThanMd && totalPanelsContained >= 3) {\n perc = 12;\n }\n\n if (perc < 1) {\n perc = 1;\n } else if (perc > 12) {\n perc = 12;\n }\n\n return (\n \n {panelLine.map((panelInline, indexPanel) => {\n const panelInfo = panelInformation.find(\n (panel) => panel.id === panelInline\n );\n\n return (\n \n \n {panelInfo ? (\n \n {panelInfo.mergedPanels ? (\n \n \n \n ) : (\n componentToUse(\n panelInfo,\n timeStart,\n timeEnd,\n loading,\n apiPrefix\n )\n )}\n \n ) : null}\n \n \n );\n })}\n \n );\n });\n },\n [\n timeStart,\n timeEnd,\n loading,\n apiPrefix,\n classes.dashboardRow,\n classes.widgetPanelDelimiter,\n panelInformation,\n biggerThanMd,\n ]\n );\n\n const fetchUsage = useCallback(() => {\n let stepCalc = 0;\n\n if (timeStart !== null && timeEnd !== null) {\n const secondsInPeriod = timeEnd.unix() - timeStart.unix();\n const periods = Math.floor(secondsInPeriod / 60);\n\n stepCalc = periods < 1 ? 15 : periods;\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/${apiPrefix}/info?step=${stepCalc}&${\n timeStart !== null ? `&start=${timeStart.unix()}` : \"\"\n }${timeStart !== null && timeEnd !== null ? \"&\" : \"\"}${\n timeEnd !== null ? `end=${timeEnd.unix()}` : \"\"\n }`\n )\n .then((res: any) => {\n if (res.widgets) {\n const widgetsWithValue = getWidgetsWithValue(res.widgets);\n setPanelInformation(widgetsWithValue);\n } else {\n displayErrorMessage({\n errorMessage:\n \"Widget information could not be retrieved at this time. Please try again\",\n detailedError: \"\",\n });\n }\n\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n });\n }, [timeStart, timeEnd, displayErrorMessage, apiPrefix]);\n\n const triggerLoad = () => {\n setLoading(true);\n };\n\n useEffect(() => {\n if (loading) {\n fetchUsage();\n }\n }, [loading, fetchUsage]);\n\n const summaryPanels = [\n [66, 44, 500, 501],\n [80, 81, 1],\n [68, 52],\n [63, 70],\n ];\n\n if (biggerThanMd) {\n summaryPanels.splice(1, 0, [50, 502]);\n } else {\n summaryPanels.splice(1, 0, [50]);\n summaryPanels.splice(1, 0, [502]);\n }\n\n const resourcesPanels = [\n [76, 77],\n [11, 8],\n [82, 74],\n ];\n const requestsPanels = [[60], [71, 17], [73]];\n\n return (\n \n {zoomOpen && (\n \n )}\n \n \n {\n setCurTab(newValue);\n }}\n tabOptions={[\n { label: \"Usage\" },\n { label: \"Traffic\" },\n { label: \"Resources\" },\n ]}\n />\n \n \n \n {panels(\"Summary\", summaryPanels)}\n \n \n {panels(\"Traffic\", requestsPanels)}\n \n \n {panels(\"Resources\", resourcesPanels)}\n \n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n zoomOpen: state.dashboard.zoom.openZoom,\n zoomWidget: state.dashboard.zoom.widgetRender,\n});\n\nconst connector = connect(mapState, {\n displayErrorMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(PrDashboard));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box } from \"@mui/material\";\nimport { CircleIcon } from \"../../../../icons\";\n\nexport const StatusCountCard = ({\n onlineCount = 0,\n offlineCount = 0,\n icon = null,\n label = \"\",\n}: {\n icon: any;\n onlineCount: number;\n offlineCount: number;\n label: string;\n}) => {\n return (\n \n \n \n \n {label}\n \n\n \n \n \n
    Online
    \n
    \n {onlineCount}\n \n\n \n \n
    Offline
    \n
    \n {offlineCount}\n \n \n \n \n {icon}\n \n \n \n );\n};\n\nexport default StatusCountCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const STATUS_COLORS = {\n RED: \"#C83B51\",\n GREEN: \"#4CCB92\",\n YELLOW: \"#E7A219\",\n};\n\nexport const getDriveStatusColor = (\n activeDisks: number,\n totalDrives: number\n) => {\n if (activeDisks <= totalDrives / 2) {\n return STATUS_COLORS.RED;\n }\n if (totalDrives !== 2 && activeDisks === totalDrives / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeDisks === totalDrives) {\n return STATUS_COLORS.GREEN;\n }\n};\n\nexport const serverStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return STATUS_COLORS.RED;\n case \"online\":\n return STATUS_COLORS.GREEN;\n default:\n return STATUS_COLORS.YELLOW;\n }\n};\nexport const getNetworkStatusColor = (\n activeNetwork: number,\n networkTotal: number\n) => {\n if (activeNetwork <= networkTotal / 2) {\n return STATUS_COLORS.RED;\n }\n if (activeNetwork === networkTotal / 2 + 1) {\n return STATUS_COLORS.YELLOW;\n }\n if (activeNetwork === networkTotal) {\n return STATUS_COLORS.GREEN;\n }\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ServerInfo } from \"../types\";\nimport { niceDays } from \"../../../../common/utils\";\nimport { Box } from \"@mui/material\";\nimport {\n CircleIcon,\n DrivesIcon,\n UptimeIcon,\n VersionIcon,\n WarpIcon,\n} from \"../../../../icons\";\nimport get from \"lodash/get\";\nimport { commonDashboardInfocard } from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n getDriveStatusColor,\n getNetworkStatusColor,\n serverStatusColor,\n} from \"./Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...commonDashboardInfocard,\n });\n\ninterface ICardProps {\n classes?: any;\n server: ServerInfo;\n index: number;\n}\n\nconst ServerStatItem = ({\n label = \"\",\n value = \"\",\n statusColor = \"\",\n hasStatus = false,\n icon = null,\n}: {\n label?: string;\n value?: any;\n hasStatus?: boolean;\n statusColor: string | undefined;\n icon?: any;\n}) => {\n return (\n \n \n {icon}\n {hasStatus ? (\n \n \n \n ) : (\n \n )}\n \n \n
    {label}
    \n
    {value}
    \n \n \n );\n};\n\nconst ServerInfoItem = ({ classes = {}, server, index }: ICardProps) => {\n const networkKeys = Object.keys(get(server, \"network\", {}));\n const networkTotal = networkKeys.length;\n const totalDrives = server.drives ? server.drives.length : 0;\n const activeNetwork = networkKeys.reduce((acc: number, currValue: string) => {\n const item = server.network[currValue];\n if (item === \"online\") {\n return acc + 1;\n }\n return acc;\n }, 0);\n const activeDisks = server.drives\n ? server.drives.filter((element) => element.state === \"ok\").length\n : 0;\n return (\n \n \n {server?.state && (\n \n \n \n )}\n \n {server.endpoint || \"\"}\n \n \n \n }\n hasStatus={true}\n value={`${activeDisks}/${totalDrives}`}\n />\n }\n hasStatus={true}\n value={`${activeNetwork}/${networkTotal}`}\n />\n\n }\n value={server?.uptime ? niceDays(server.uptime) : \"N/A\"}\n />\n\n }\n value={\n \n {server.version ? server.version : \"N/A\"}\n \n }\n />\n \n \n );\n};\nexport default withStyles(styles)(ServerInfoItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IDriveInfo } from \"../types\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport { Box } from \"@mui/material\";\nimport { CircleIcon, DrivesIcon } from \"../../../../icons\";\nimport { commonDashboardInfocard } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { STATUS_COLORS } from \"./Utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...commonDashboardInfocard,\n });\n\ninterface ICardProps {\n classes?: any;\n drive: IDriveInfo;\n}\n\nconst driveStatusColor = (health_status: string) => {\n switch (health_status) {\n case \"offline\":\n return STATUS_COLORS.RED;\n case \"ok\":\n return STATUS_COLORS.GREEN;\n default:\n return STATUS_COLORS.YELLOW;\n }\n};\n\nconst DriveInfoItem = ({ classes, drive }: ICardProps) => {\n return (\n \n \n \n \n\n \n \n {drive.state && }\n
    {drive.endpoint || \"\"}
    \n \n\n \n \n \n
    \n {niceBytes(drive.totalSpace ? drive.totalSpace.toString() : \"0\")}\n
    \n \n\n \n \n
    \n {niceBytes(drive.usedSpace ? drive.usedSpace.toString() : \"0\")}\n
    \n \n \n \n
    \n {niceBytes(\n drive.availableSpace ? drive.availableSpace.toString() : \"0\"\n )}\n
    \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(DriveInfoItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport ListSubheader from \"@mui/material/ListSubheader\";\nimport List from \"@mui/material/List\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport Collapse from \"@mui/material/Collapse\";\nimport ExpandLess from \"@mui/icons-material/ExpandLess\";\nimport ExpandMore from \"@mui/icons-material/ExpandMore\";\nimport { ServerInfo } from \"../types\";\nimport ServerInfoItem from \"./ServerInfoItem\";\nimport { Box } from \"@mui/material\";\nimport DriveInfoItem from \"./DriveInfoItem\";\n\nconst ServersList = ({ data }: { data: ServerInfo[] }) => {\n const [expanded, setExpanded] = React.useState(\n data.length > 1 ? \"\" : data[0].endpoint + \"-0\"\n );\n\n const handleClick = (key: string) => {\n setExpanded(key);\n };\n\n return (\n \n Servers ({data.length})\n \n }\n >\n {data.map((serverInfo, index) => {\n const key = `${serverInfo.endpoint}-${index}`;\n const isExpanded = expanded === key;\n return (\n \n {\n if (!isExpanded) {\n handleClick(key);\n } else {\n handleClick(\"\");\n }\n }}\n className={isExpanded ? \"expanded\" : \"\"}\n sx={{\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n borderBottom: \"1px solid #eaeaea\",\n \"&:hover\": {\n background: \"#F8F8F8\",\n },\n \"&.expanded\": {\n borderBottom: \"none\",\n },\n }}\n >\n \n \n {isExpanded ? : }\n \n \n {isExpanded ? (\n \n \n Drives ({serverInfo.drives.length})\n \n\n \n {serverInfo.drives.map((driveInfo, index) => {\n return (\n \n );\n })}\n \n \n ) : null}\n \n );\n })}\n \n );\n};\n\nexport default ServersList;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box, Tooltip } from \"@mui/material\";\nimport React from \"react\";\n\nconst CounterCard = ({\n counterValue,\n label = \"\",\n icon = null,\n}: {\n counterValue: string | number;\n label?: any;\n icon?: any;\n}) => {\n return (\n \n \n \n \n {label}\n \n\n \n \n {counterValue}\n \n \n \n \n {icon}\n \n \n \n );\n};\n\nexport default CounterCard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { ReportedUsageIcon } from \"../../../../icons\";\nimport { Box, Tooltip } from \"@mui/material\";\nimport React from \"react\";\n\nconst ReportedUsage = ({\n usageValue,\n total,\n unit,\n}: {\n usageValue: string;\n total: number | string;\n unit: string;\n}) => {\n return (\n \n
    \n Reported Usage \n
    \n\n \n \n {total}\n \n \n \n \n );\n};\n\nexport default ReportedUsage;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Box } from \"@mui/material\";\nimport {\n BucketsIcon,\n DrivesIcon,\n PrometheusErrorIcon,\n ServersIcon,\n TotalObjectsIcon,\n} from \"../../../../icons\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport { calculateBytes, representationNumber } from \"../../../../common/utils\";\nimport { IDriveInfo, Usage } from \"../types\";\nimport StatusCountCard from \"./StatusCountCard\";\nimport groupBy from \"lodash/groupBy\";\nimport ServersList from \"./ServersList\";\nimport CounterCard from \"./CounterCard\";\nimport ReportedUsage from \"./ReportedUsage\";\n\nconst BoxItem = ({\n children,\n background = \"#ffffff\",\n}: {\n children: any;\n background?: string;\n}) => {\n return (\n \n {children}\n \n );\n};\n\ninterface IDashboardProps {\n usage: Usage | null;\n}\n\nconst getServersList = (usage: Usage | null) => {\n if (usage !== null) {\n return usage.servers.sort(function (a, b) {\n const nameA = a.endpoint.toLowerCase();\n const nameB = b.endpoint.toLowerCase();\n if (nameA < nameB) {\n return -1;\n }\n if (nameA > nameB) {\n return 1;\n }\n return 0;\n });\n }\n\n return [];\n};\n\nconst prettyUsage = (usage: string | undefined) => {\n if (usage === undefined) {\n return { total: \"0\", unit: \"Mi\" };\n }\n\n return calculateBytes(usage);\n};\n\nconst BasicDashboard = ({ usage }: IDashboardProps) => {\n const usageValue = usage && usage.usage ? usage.usage.toString() : \"0\";\n const usageToRepresent = prettyUsage(usageValue);\n\n const serverList = getServersList(usage || null);\n\n let allDrivesArray: IDriveInfo[] = [];\n\n serverList.forEach((server) => {\n const drivesInput = server.drives.map((drive) => {\n return drive;\n });\n\n allDrivesArray = [...allDrivesArray, ...drivesInput];\n });\n\n const serversGroup = groupBy(serverList, \"state\");\n const { offline: offlineServers = [], online: onlineServers = [] } =\n serversGroup;\n const drivesGroup = groupBy(allDrivesArray, \"state\");\n const { offline: offlineDrives = [], ok: onlineDrives = [] } = drivesGroup;\n\n return (\n \n \n \n {usage?.prometheusNotReady && (\n }\n title={\"We can't retrieve advanced metrics at this time\"}\n help={\n \n MinIO Dashboard will display basic metrics as we couldn't\n connect to Prometheus successfully.\n

    \n Please try again in a few minutes. If the problem persists,\n you can review your configuration and confirm that Prometheus\n server is up and running.\n
    \n }\n />\n )}\n\n {!usage?.prometheusNotReady && (\n }\n title={\"We can’t retrieve advanced metrics at this time.\"}\n help={\n \n \n MinIO Dashboard will display basic metrics as we couldn’t\n connect to Prometheus successfully. Please try again in a\n few minutes. If the problem persists, you can review your\n configuration and confirm that Prometheus server is up and\n running.\n \n theme.colors.link,\n },\n }}\n >\n \n Read more about Prometheus on our Docs site.\n \n
    \n \n }\n />\n )}\n \n\n \n \n \n }\n counterValue={usage ? representationNumber(usage.buckets) : 0}\n />\n \n \n }\n counterValue={usage ? representationNumber(usage.objects) : 0}\n />\n \n \n }\n />\n \n \n }\n />\n \n \n\n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default BasicDashboard;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport PrDashboard from \"./Prometheus/PrDashboard\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport Grid from \"@mui/material/Grid\";\nimport { containerForHeader } from \"../Common/FormComponents/common/styleLibrary\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport api from \"../../../common/api\";\nimport { Usage } from \"./types\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport BasicDashboard from \"./BasicDashboard/BasicDashboard\";\n\ninterface IDashboardSimple {\n classes: any;\n displayErrorMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst Dashboard = ({ classes, displayErrorMessage }: IDashboardSimple) => {\n const [loading, setLoading] = useState(true);\n const [basicResult, setBasicResult] = useState(null);\n\n const fetchUsage = useCallback(() => {\n api\n .invoke(\"GET\", `/api/v1/admin/info`)\n .then((res: Usage) => {\n setBasicResult(res);\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n });\n }, [setBasicResult, setLoading, displayErrorMessage]);\n\n useEffect(() => {\n if (loading) {\n fetchUsage();\n }\n }, [loading, fetchUsage]);\n\n const widgets = get(basicResult, \"widgets\", null);\n\n return (\n \n \n {loading ? (\n \n \n \n \n \n ) : (\n \n {widgets !== null ? (\n \n \n \n ) : (\n \n )}\n \n )}\n \n );\n};\n\nconst connector = connect(null, {\n displayErrorMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(Dashboard));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\n\ninterface TabPanelProps {\n children?: React.ReactNode;\n index: any;\n value: any;\n}\n\nexport const TabPanel = (props: TabPanelProps) => {\n const { children, value, index, ...other } = props;\n\n return (\n
    \n }\n />\n \n \n );\n};\n\nexport default MissingIntegration;\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 { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, Grid } from \"@mui/material\";\nimport {\n advancedFilterToggleStyles,\n containerForHeader,\n logsCommon,\n tableStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { IReqInfoSearchResults, ISearchResponse } from \"./types\";\nimport { niceBytes, nsToSeconds } from \"../../../../common/utils\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport FilterInputWrapper from \"../../Common/FormComponents/FilterInputWrapper/FilterInputWrapper\";\nimport LogSearchFullModal from \"./LogSearchFullModal\";\nimport { LogSearchColumnLabels } from \"./utils\";\nimport DateRangeSelector from \"../../Common/FormComponents/DateRangeSelector/DateRangeSelector\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../common/SecureComponent\";\nimport { SearchIcon } from \"../../../../icons\";\nimport MissingIntegration from \"../../Common/MissingIntegration/MissingIntegration\";\n\ninterface ILogSearchProps {\n classes: any;\n features: string[] | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n blockCollapsed: {\n display: \"none\",\n overflowY: \"hidden\",\n },\n filterOpen: {\n display: \"block\",\n marginBottom: 12,\n },\n endLineAction: {\n marginBottom: 15,\n padding: \"0 15px 0 15px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n },\n filtersContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: 12,\n },\n innerContainer: {\n backgroundColor: \"#fff\",\n },\n noticeLabel: {\n marginLeft: 15,\n marginBottom: 15,\n fontSize: 12,\n color: \"#9C9C9C\",\n },\n\n tableFOpen: {\n height: \"calc(100vh - 520px)\",\n },\n tableFClosed: {\n height: \"calc(100vh - 320px)\",\n },\n ...tableStyles,\n ...advancedFilterToggleStyles,\n\n searchOptions: {\n display: \"flex\",\n padding: 15,\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n formBox: {\n border: \"1px solid #EAEAEA\",\n marginBottom: 15,\n },\n dateRangePicker: {\n \"& div\": {\n marginBottom: 0,\n },\n },\n advancedButton: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n },\n ...logsCommon,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst LogsSearchMain = ({\n classes,\n features,\n setErrorSnackMessage,\n}: ILogSearchProps) => {\n const [loading, setLoading] = useState(true);\n const [timeStart, setTimeStart] = useState(null);\n const [timeEnd, setTimeEnd] = useState(null);\n const [filterOpen, setFilterOpen] = useState(false);\n const [records, setRecords] = useState([]);\n const [bucket, setBucket] = useState(\"\");\n const [apiName, setApiName] = useState(\"\");\n const [accessKey, setAccessKey] = useState(\"\");\n const [userAgent, setUserAgent] = useState(\"\");\n const [object, setObject] = useState(\"\");\n const [requestID, setRequestID] = useState(\"\");\n const [responseStatus, setResponseStatus] = useState(\"\");\n const [sortOrder, setSortOrder] = useState<\"ASC\" | \"DESC\" | undefined>(\n \"DESC\"\n );\n const [columnsShown, setColumnsShown] = useState([\n \"time\",\n \"api_name\",\n \"access_key\",\n \"bucket\",\n \"object\",\n \"remote_host\",\n \"request_id\",\n \"user_agent\",\n \"response_status\",\n ]);\n const [nextPage, setNextPage] = useState(0);\n const [alreadyFetching, setAlreadyFetching] = useState(false);\n const [logSearchExtrasOpen, setLogSearchExtrasOpen] =\n useState(false);\n const [selectedItem, setSelectedItem] =\n useState(null);\n\n let recordsResp: any = null;\n const logSearchEnabled = features && features.includes(\"log-search\");\n\n const fetchRecords = useCallback(() => {\n if (!alreadyFetching && logSearchEnabled) {\n setAlreadyFetching(true);\n let queryParams = `${bucket !== \"\" ? `&fp=bucket:${bucket}` : \"\"}${\n object !== \"\" ? `&fp=object:${object}` : \"\"\n }${apiName !== \"\" ? `&fp=api_name:${apiName}` : \"\"}${\n accessKey !== \"\" ? `&fp=access_key:${accessKey}` : \"\"\n }${requestID !== \"\" ? `&fp=request_id:${requestID}` : \"\"}${\n userAgent !== \"\" ? `&fp=user_agent:${userAgent}` : \"\"\n }${responseStatus !== \"\" ? `&fp=response_status:${responseStatus}` : \"\"}`;\n\n queryParams = queryParams.trim();\n\n if (queryParams.endsWith(\",\")) {\n queryParams = queryParams.slice(0, -1);\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/logs/search?q=reqinfo${\n queryParams !== \"\" ? `${queryParams}` : \"\"\n }&pageSize=100&pageNo=${nextPage}&order=${\n sortOrder === \"DESC\" ? \"timeDesc\" : \"timeAsc\"\n }${\n timeStart !== null ? `&timeStart=${timeStart.toISOString()}` : \"\"\n }${timeEnd !== null ? `&timeEnd=${timeEnd.toISOString()}` : \"\"}`\n )\n .then((res: ISearchResponse) => {\n const fetchedResults = res.results || [];\n\n setLoading(false);\n setAlreadyFetching(false);\n setRecords(fetchedResults);\n setNextPage(nextPage + 1);\n\n if (recordsResp !== null) {\n recordsResp();\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setAlreadyFetching(false);\n setErrorSnackMessage(err);\n });\n } else {\n setLoading(false);\n setAlreadyFetching(false);\n }\n }, [\n alreadyFetching,\n logSearchEnabled,\n bucket,\n object,\n apiName,\n accessKey,\n requestID,\n userAgent,\n responseStatus,\n nextPage,\n sortOrder,\n timeStart,\n timeEnd,\n recordsResp,\n setErrorSnackMessage,\n ]);\n\n useEffect(() => {\n if (loading) {\n setRecords([]);\n fetchRecords();\n }\n }, [loading, sortOrder, fetchRecords]);\n\n const triggerLoad = () => {\n setNextPage(0);\n setLoading(true);\n };\n\n const selectColumn = (colName: string, active: boolean) => {\n let newArray = [...columnsShown];\n\n if (!active) {\n newArray = columnsShown.filter((element) => element !== colName);\n } else {\n if (!newArray.includes(colName)) {\n newArray.push(colName);\n }\n }\n setColumnsShown(newArray);\n };\n\n const sortChange = (sortData: any) => {\n const newSortDirection = get(sortData, \"sortDirection\", \"DESC\");\n setSortOrder(newSortDirection);\n setNextPage(0);\n setLoading(true);\n };\n\n const loadMoreRecords = (_: { startIndex: number; stopIndex: number }) => {\n fetchRecords();\n return new Promise((resolve) => {\n recordsResp = resolve;\n });\n };\n\n const openExtraInformation = (item: IReqInfoSearchResults) => {\n setSelectedItem(item);\n setLogSearchExtrasOpen(true);\n };\n\n const closeViewExtraInformation = () => {\n setSelectedItem(null);\n setLogSearchExtrasOpen(false);\n };\n\n return (\n \n {logSearchExtrasOpen && selectedItem !== null && (\n \n )}\n\n \n \n {!logSearchEnabled ? (\n }\n documentationLink=\"https://github.com/minio/operator/tree/master/logsearchapi\"\n />\n ) : (\n \n {\" \"}\n \n \n
    \n \n
    \n\n \n {\n setFilterOpen(!filterOpen);\n }}\n className={classes.advancedConfiguration}\n >\n {filterOpen ? \"Hide\" : \"Show\"} advanced Filters{\" \"}\n \n \n \n \n \n
    \n \n
    \n
    \n Enable your preferred options to get filtered records.\n
    \n You can use '*' to match any character, '.' to signify a\n single character or '\\' to scape an special character (E.g.\n mybucket-*)\n
    \n
    \n \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n Get Information\n \n \n \n \n \n (\n \n \n {element.response_status_code} (\n {element.response_status})\n \n \n ),\n renderFullObject: true,\n },\n {\n label: LogSearchColumnLabels.request_content_length,\n elementKey: \"request_content_length\",\n renderFunction: niceBytes,\n },\n {\n label: LogSearchColumnLabels.response_content_length,\n elementKey: \"response_content_length\",\n renderFunction: niceBytes,\n },\n {\n label: LogSearchColumnLabels.time_to_response_ns,\n elementKey: \"time_to_response_ns\",\n renderFunction: nsToSeconds,\n contentTextAlign: \"right\",\n },\n ]}\n isLoading={loading}\n records={records}\n entityName=\"Logs\"\n customEmptyMessage={\n \"There is no information with this criteria\"\n }\n idField=\"request_id\"\n columnsSelector\n columnsShown={columnsShown}\n onColumnChange={selectColumn}\n customPaperHeight={\n filterOpen ? classes.tableFOpen : classes.tableFClosed\n }\n sortConfig={{\n currentSort: \"time\",\n currentDirection: sortOrder,\n triggerSort: sortChange,\n }}\n infiniteScrollConfig={{\n recordsCount: 1000000,\n loadMoreRecords: loadMoreRecords,\n }}\n itemActions={[\n {\n type: \"view\",\n onClick: openExtraInformation,\n },\n ]}\n textSelectable\n />\n \n \n
    \n )}\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(LogsSearchMain));\n"],"names":["withStyles","theme","createStyles","pageContentStyles","classes","className","children","contentSpacer","container","item","xs","searchField","height","padding","fontSize","fontWeight","color","borderColor","backgroundColor","labelStyle","marginBottom","buttonKit","display","alignItems","fieldContainer","flexGrow","margin","label","onChange","value","placeholder","id","name","Fragment","TextField","val","target","InputProps","disableUnderline","LogSearchColumnLabels","time","api_name","access_key","bucket","object","remote_host","request_id","user_agent","response_status","response_status_code","request_content_length","response_content_length","time_to_response_ns","buttonContainer","textAlign","objectKeyCol","paddingRight","modalBasic","modalOpen","logSearchElement","onClose","jsonItems","Object","keys","ModalWrapper","title","Grid","map","objectKey","index","get","toString","Button","type","variant","onClick","iconComponent","entity","documentationLink","justifyContent","alignContent","HelpBox","help","href","rel","mapDispatchToProps","setErrorSnackMessage","connector","connect","state","features","console","session","blockCollapsed","overflowY","filterOpen","endLineAction","filtersContainer","innerContainer","noticeLabel","marginLeft","tableFOpen","tableFClosed","tableStyles","advancedFilterToggleStyles","searchOptions","flexFlow","formBox","border","dateRangePicker","advancedButton","logsCommon","containerForHeader","spacing","useState","loading","setLoading","timeStart","setTimeStart","timeEnd","setTimeEnd","setFilterOpen","records","setRecords","setBucket","apiName","setApiName","accessKey","setAccessKey","userAgent","setUserAgent","setObject","requestID","setRequestID","responseStatus","setResponseStatus","sortOrder","setSortOrder","columnsShown","setColumnsShown","nextPage","setNextPage","alreadyFetching","setAlreadyFetching","logSearchExtrasOpen","setLogSearchExtrasOpen","selectedItem","setSelectedItem","recordsResp","logSearchEnabled","includes","fetchRecords","useCallback","queryParams","trim","endsWith","slice","api","toISOString","then","res","fetchedResults","results","catch","err","useEffect","PageHeader","PageLayout","DateRangeSelector","advancedConfiguration","advancedOpen","advancedClosed","ArrowForwardIos","tableBlock","SecureComponent","scopes","IAM_SCOPES","resource","CONSOLE_UI_RESOURCE","errorProps","disabled","TableWrapper","columns","elementKey","enableSort","renderFunction","element","renderFullObject","niceBytes","nsToSeconds","contentTextAlign","isLoading","entityName","customEmptyMessage","idField","columnsSelector","onColumnChange","colName","active","newArray","push","filter","customPaperHeight","sortConfig","currentSort","currentDirection","triggerSort","sortData","newSortDirection","infiniteScrollConfig","recordsCount","loadMoreRecords","_","Promise","resolve","itemActions","textSelectable"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/3543.8ebcd154.chunk.js","mappings":"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","sources":["screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/FormComponents/FilterInputWrapper/FilterInputWrapper.tsx","screens/Console/Logs/LogSearch/utils.ts","screens/Console/Logs/LogSearch/LogSearchFullModal.tsx","screens/Console/Common/MissingIntegration/MissingIntegration.tsx","screens/Console/Logs/LogSearch/LogsSearchMain.tsx"],"sourcesContent":["import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport TextField from \"@mui/material/TextField\";\nimport { searchField } from \"../common/styleLibrary\";\n\ninterface IFilterInputWrapper {\n classes: any;\n value: string;\n onChange: (txtVar: string) => any;\n label: string;\n placeholder?: string;\n id: string;\n name: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n height: 30,\n padding: 0,\n \"& input\": {\n padding: \"0 12px\",\n height: 28,\n fontSize: 12,\n fontWeight: 600,\n color: \"#393939\",\n },\n \"&.isDisabled\": {\n \"&:hover\": {\n borderColor: \"#EAEDEE\",\n },\n },\n \"& input.Mui-disabled\": {\n backgroundColor: \"#EAEAEA\",\n },\n },\n labelStyle: {\n color: \"#393939\",\n fontSize: 12,\n marginBottom: 4,\n },\n buttonKit: {\n display: \"flex\",\n alignItems: \"center\",\n },\n fieldContainer: {\n flexGrow: 1,\n margin: \"0 15px\",\n },\n });\n\nconst FilterInputWrapper = ({\n classes,\n label,\n onChange,\n value,\n placeholder = \"\",\n id,\n name,\n}: IFilterInputWrapper) => {\n return (\n \n
    \n
    {label}
    \n
    \n {\n onChange(val.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n }}\n className={classes.searchField}\n value={value}\n />\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(FilterInputWrapper);\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 LogSearchColumnLabels = {\n time: \"Timestamp\",\n api_name: \"API Name\",\n access_key: \"Access Key\",\n bucket: \"Bucket\",\n object: \"Object\",\n remote_host: \"Remote Host\",\n request_id: \"Request ID\",\n user_agent: \"User Agent\",\n response_status: \"Response Status\",\n response_status_code: \"Response Status Code\",\n request_content_length: \"Request Content Length\",\n response_content_length: \"Response Content Length\",\n time_to_response_ns: \"Time to Response NS\",\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { Button, Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { modalBasic } from \"../../Common/FormComponents/common/styleLibrary\";\nimport { IReqInfoSearchResults } from \"./types\";\nimport { LogSearchColumnLabels } from \"./utils\";\n\ninterface ILogSearchFullModal {\n modalOpen: boolean;\n logSearchElement: IReqInfoSearchResults;\n onClose: () => void;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n objectKeyCol: {\n fontWeight: 700,\n paddingRight: \"10px\",\n textAlign: \"left\",\n },\n ...modalBasic,\n });\n\nconst LogSearchFullModal = ({\n modalOpen,\n logSearchElement,\n onClose,\n classes,\n}: ILogSearchFullModal) => {\n const jsonItems = Object.keys(logSearchElement);\n\n return (\n \n {\n onClose();\n }}\n >\n \n \n \n \n {jsonItems.map((objectKey: string, index: number) => (\n \n \n \n \n ))}\n \n
    \n {get(LogSearchColumnLabels, objectKey, `${objectKey}`)}\n {get(logSearchElement, objectKey, \"\")}
    \n
    \n \n \n Close\n \n \n
    \n \n
    \n );\n};\n\nexport default withStyles(styles)(LogSearchFullModal);\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 { Grid } from \"@mui/material\";\nimport HelpBox from \"../../../../common/HelpBox\";\n\ninterface IMissingIntegration {\n iconComponent: any;\n entity: string;\n documentationLink: string;\n}\n\nconst MissingIntegration = ({\n iconComponent,\n entity,\n documentationLink,\n}: IMissingIntegration) => {\n return (\n \n \n \n This feature is not available.\n
    \n Please configure{\" \"}\n \n {entity}\n {\" \"}\n first to use this feature.\n
    \n }\n />\n \n \n );\n};\n\nexport default MissingIntegration;\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 { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, Grid } from \"@mui/material\";\nimport {\n advancedFilterToggleStyles,\n containerForHeader,\n logsCommon,\n tableStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { IReqInfoSearchResults, ISearchResponse } from \"./types\";\nimport { niceBytes, nsToSeconds } from \"../../../../common/utils\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport FilterInputWrapper from \"../../Common/FormComponents/FilterInputWrapper/FilterInputWrapper\";\nimport LogSearchFullModal from \"./LogSearchFullModal\";\nimport { LogSearchColumnLabels } from \"./utils\";\nimport DateRangeSelector from \"../../Common/FormComponents/DateRangeSelector/DateRangeSelector\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../common/SecureComponent\";\nimport { SearchIcon } from \"../../../../icons\";\nimport MissingIntegration from \"../../Common/MissingIntegration/MissingIntegration\";\n\ninterface ILogSearchProps {\n classes: any;\n features: string[] | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n blockCollapsed: {\n display: \"none\",\n overflowY: \"hidden\",\n },\n filterOpen: {\n display: \"block\",\n marginBottom: 12,\n },\n endLineAction: {\n marginBottom: 15,\n padding: \"0 15px 0 15px\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n },\n filtersContainer: {\n display: \"flex\",\n justifyContent: \"space-between\",\n marginBottom: 12,\n },\n innerContainer: {\n backgroundColor: \"#fff\",\n },\n noticeLabel: {\n marginLeft: 15,\n marginBottom: 15,\n fontSize: 12,\n color: \"#9C9C9C\",\n },\n\n tableFOpen: {\n height: \"calc(100vh - 520px)\",\n },\n tableFClosed: {\n height: \"calc(100vh - 320px)\",\n },\n ...tableStyles,\n ...advancedFilterToggleStyles,\n\n searchOptions: {\n display: \"flex\",\n padding: 15,\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n formBox: {\n border: \"1px solid #EAEAEA\",\n marginBottom: 15,\n },\n dateRangePicker: {\n \"& div\": {\n marginBottom: 0,\n },\n },\n advancedButton: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n },\n ...logsCommon,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst LogsSearchMain = ({\n classes,\n features,\n setErrorSnackMessage,\n}: ILogSearchProps) => {\n const [loading, setLoading] = useState(true);\n const [timeStart, setTimeStart] = useState(null);\n const [timeEnd, setTimeEnd] = useState(null);\n const [filterOpen, setFilterOpen] = useState(false);\n const [records, setRecords] = useState([]);\n const [bucket, setBucket] = useState(\"\");\n const [apiName, setApiName] = useState(\"\");\n const [accessKey, setAccessKey] = useState(\"\");\n const [userAgent, setUserAgent] = useState(\"\");\n const [object, setObject] = useState(\"\");\n const [requestID, setRequestID] = useState(\"\");\n const [responseStatus, setResponseStatus] = useState(\"\");\n const [sortOrder, setSortOrder] = useState<\"ASC\" | \"DESC\" | undefined>(\n \"DESC\"\n );\n const [columnsShown, setColumnsShown] = useState([\n \"time\",\n \"api_name\",\n \"access_key\",\n \"bucket\",\n \"object\",\n \"remote_host\",\n \"request_id\",\n \"user_agent\",\n \"response_status\",\n ]);\n const [nextPage, setNextPage] = useState(0);\n const [alreadyFetching, setAlreadyFetching] = useState(false);\n const [logSearchExtrasOpen, setLogSearchExtrasOpen] =\n useState(false);\n const [selectedItem, setSelectedItem] =\n useState(null);\n\n let recordsResp: any = null;\n const logSearchEnabled = features && features.includes(\"log-search\");\n\n const fetchRecords = useCallback(() => {\n if (!alreadyFetching && logSearchEnabled) {\n setAlreadyFetching(true);\n let queryParams = `${bucket !== \"\" ? `&fp=bucket:${bucket}` : \"\"}${\n object !== \"\" ? `&fp=object:${object}` : \"\"\n }${apiName !== \"\" ? `&fp=api_name:${apiName}` : \"\"}${\n accessKey !== \"\" ? `&fp=access_key:${accessKey}` : \"\"\n }${requestID !== \"\" ? `&fp=request_id:${requestID}` : \"\"}${\n userAgent !== \"\" ? `&fp=user_agent:${userAgent}` : \"\"\n }${responseStatus !== \"\" ? `&fp=response_status:${responseStatus}` : \"\"}`;\n\n queryParams = queryParams.trim();\n\n if (queryParams.endsWith(\",\")) {\n queryParams = queryParams.slice(0, -1);\n }\n\n api\n .invoke(\n \"GET\",\n `/api/v1/logs/search?q=reqinfo${\n queryParams !== \"\" ? `${queryParams}` : \"\"\n }&pageSize=100&pageNo=${nextPage}&order=${\n sortOrder === \"DESC\" ? \"timeDesc\" : \"timeAsc\"\n }${\n timeStart !== null ? `&timeStart=${timeStart.toISOString()}` : \"\"\n }${timeEnd !== null ? `&timeEnd=${timeEnd.toISOString()}` : \"\"}`\n )\n .then((res: ISearchResponse) => {\n const fetchedResults = res.results || [];\n\n setLoading(false);\n setAlreadyFetching(false);\n setRecords(fetchedResults);\n setNextPage(nextPage + 1);\n\n if (recordsResp !== null) {\n recordsResp();\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setAlreadyFetching(false);\n setErrorSnackMessage(err);\n });\n } else {\n setLoading(false);\n setAlreadyFetching(false);\n }\n }, [\n alreadyFetching,\n logSearchEnabled,\n bucket,\n object,\n apiName,\n accessKey,\n requestID,\n userAgent,\n responseStatus,\n nextPage,\n sortOrder,\n timeStart,\n timeEnd,\n recordsResp,\n setErrorSnackMessage,\n ]);\n\n useEffect(() => {\n if (loading) {\n setRecords([]);\n fetchRecords();\n }\n }, [loading, sortOrder, fetchRecords]);\n\n const triggerLoad = () => {\n setNextPage(0);\n setLoading(true);\n };\n\n const selectColumn = (colName: string, active: boolean) => {\n let newArray = [...columnsShown];\n\n if (!active) {\n newArray = columnsShown.filter((element) => element !== colName);\n } else {\n if (!newArray.includes(colName)) {\n newArray.push(colName);\n }\n }\n setColumnsShown(newArray);\n };\n\n const sortChange = (sortData: any) => {\n const newSortDirection = get(sortData, \"sortDirection\", \"DESC\");\n setSortOrder(newSortDirection);\n setNextPage(0);\n setLoading(true);\n };\n\n const loadMoreRecords = (_: { startIndex: number; stopIndex: number }) => {\n fetchRecords();\n return new Promise((resolve) => {\n recordsResp = resolve;\n });\n };\n\n const openExtraInformation = (item: IReqInfoSearchResults) => {\n setSelectedItem(item);\n setLogSearchExtrasOpen(true);\n };\n\n const closeViewExtraInformation = () => {\n setSelectedItem(null);\n setLogSearchExtrasOpen(false);\n };\n\n return (\n \n {logSearchExtrasOpen && selectedItem !== null && (\n \n )}\n\n \n \n {!logSearchEnabled ? (\n }\n documentationLink=\"https://github.com/minio/operator/tree/master/logsearchapi\"\n />\n ) : (\n \n {\" \"}\n \n \n
    \n \n
    \n\n \n {\n setFilterOpen(!filterOpen);\n }}\n className={classes.advancedConfiguration}\n >\n {filterOpen ? \"Hide\" : \"Show\"} advanced Filters{\" \"}\n \n \n \n \n \n
    \n \n
    \n
    \n Enable your preferred options to get filtered records.\n
    \n You can use '*' to match any character, '.' to signify a\n single character or '\\' to scape an special character (E.g.\n mybucket-*)\n
    \n
    \n \n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n \n \n Get Information\n \n \n \n \n \n (\n \n \n {element.response_status_code} (\n {element.response_status})\n \n \n ),\n renderFullObject: true,\n },\n {\n label: LogSearchColumnLabels.request_content_length,\n elementKey: \"request_content_length\",\n renderFunction: niceBytes,\n },\n {\n label: LogSearchColumnLabels.response_content_length,\n elementKey: \"response_content_length\",\n renderFunction: niceBytes,\n },\n {\n label: LogSearchColumnLabels.time_to_response_ns,\n elementKey: \"time_to_response_ns\",\n renderFunction: nsToSeconds,\n contentTextAlign: \"right\",\n },\n ]}\n isLoading={loading}\n records={records}\n entityName=\"Logs\"\n customEmptyMessage={\n \"There is no information with this criteria\"\n }\n idField=\"request_id\"\n columnsSelector\n columnsShown={columnsShown}\n onColumnChange={selectColumn}\n customPaperHeight={\n filterOpen ? classes.tableFOpen : classes.tableFClosed\n }\n sortConfig={{\n currentSort: \"time\",\n currentDirection: sortOrder,\n triggerSort: sortChange,\n }}\n infiniteScrollConfig={{\n recordsCount: 1000000,\n loadMoreRecords: loadMoreRecords,\n }}\n itemActions={[\n {\n type: \"view\",\n onClick: openExtraInformation,\n },\n ]}\n textSelectable\n />\n \n \n
    \n )}\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(LogsSearchMain));\n"],"names":["withStyles","theme","createStyles","pageContentStyles","classes","className","children","contentSpacer","container","item","xs","searchField","height","padding","fontSize","fontWeight","color","borderColor","backgroundColor","labelStyle","marginBottom","buttonKit","display","alignItems","fieldContainer","flexGrow","margin","label","onChange","value","placeholder","id","name","Fragment","TextField","val","target","InputProps","disableUnderline","LogSearchColumnLabels","time","api_name","access_key","bucket","object","remote_host","request_id","user_agent","response_status","response_status_code","request_content_length","response_content_length","time_to_response_ns","buttonContainer","textAlign","objectKeyCol","paddingRight","modalBasic","modalOpen","logSearchElement","onClose","jsonItems","Object","keys","ModalWrapper","title","Grid","map","objectKey","index","get","toString","Button","type","variant","onClick","iconComponent","entity","documentationLink","justifyContent","alignContent","HelpBox","help","href","rel","mapDispatchToProps","setErrorSnackMessage","connector","connect","state","features","console","session","blockCollapsed","overflowY","filterOpen","endLineAction","filtersContainer","innerContainer","noticeLabel","marginLeft","tableFOpen","tableFClosed","tableStyles","advancedFilterToggleStyles","searchOptions","flexFlow","formBox","border","dateRangePicker","advancedButton","logsCommon","containerForHeader","spacing","useState","loading","setLoading","timeStart","setTimeStart","timeEnd","setTimeEnd","setFilterOpen","records","setRecords","setBucket","apiName","setApiName","accessKey","setAccessKey","userAgent","setUserAgent","setObject","requestID","setRequestID","responseStatus","setResponseStatus","sortOrder","setSortOrder","columnsShown","setColumnsShown","nextPage","setNextPage","alreadyFetching","setAlreadyFetching","logSearchExtrasOpen","setLogSearchExtrasOpen","selectedItem","setSelectedItem","recordsResp","logSearchEnabled","includes","fetchRecords","useCallback","queryParams","trim","endsWith","slice","api","toISOString","then","res","fetchedResults","results","catch","err","useEffect","PageHeader","PageLayout","DateRangeSelector","advancedConfiguration","advancedOpen","advancedClosed","ArrowForwardIos","tableBlock","SecureComponent","scopes","IAM_SCOPES","resource","CONSOLE_UI_RESOURCE","errorProps","disabled","TableWrapper","columns","elementKey","enableSort","renderFunction","element","renderFullObject","niceBytes","nsToSeconds","contentTextAlign","isLoading","entityName","customEmptyMessage","idField","columnsSelector","onColumnChange","colName","active","newArray","push","filter","customPaperHeight","sortConfig","currentSort","currentDirection","triggerSort","sortData","newSortDirection","infiniteScrollConfig","recordsCount","loadMoreRecords","_","Promise","resolve","itemActions","textSelectable"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3631.23cb1b6a.chunk.js b/portal-ui/build/static/js/3631.8dc2431a.chunk.js similarity index 97% rename from portal-ui/build/static/js/3631.23cb1b6a.chunk.js rename to portal-ui/build/static/js/3631.8dc2431a.chunk.js index 4aa1b1814..1ba9d9a14 100644 --- a/portal-ui/build/static/js/3631.23cb1b6a.chunk.js +++ b/portal-ui/build/static/js/3631.8dc2431a.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3631],{33690:function(e,o,t){t.r(o);var n=t(70885),r=t(1413),c=t(72791),i=t(60364),a=t(36151),l=t(11135),s=t(25787),u=t(61889),d=t(23814),f=t(42649),m=t(81207),p=t(56028),x=t(90673),b=t(74833),g=t(92217),h=t(80184);(0,l.Z)((0,r.Z)((0,r.Z)({},d.ID),d.bK));var Z=(0,i.$j)(null,{setModalErrorSnackMessage:f.zb});o.default=(0,s.Z)((function(e){return(0,l.Z)((0,r.Z)((0,r.Z)((0,r.Z)({codeMirrorContainer:{marginBottom:20,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},d.DF),d.ID),d.bK))}))(Z((function(e){var o=e.classes,t=e.open,r=e.bucketName,i=e.actualPolicy,l=e.actualDefinition,s=e.closeModalAndRefresh,d=e.setModalErrorSnackMessage,f=(0,c.useState)(!1),Z=(0,n.Z)(f,2),j=Z[0],y=Z[1],v=(0,c.useState)(""),C=(0,n.Z)(v,2),k=C[0],S=C[1],B=(0,c.useState)(""),P=(0,n.Z)(B,2),M=P[0],N=P[1];return(0,c.useEffect)((function(){S(i),N(l?JSON.stringify(JSON.parse(l),null,4):"")}),[S,i,N,l]),(0,h.jsx)(p.Z,{title:"Change Access Policy",modalOpen:t,onClose:function(){s()},titleIcon:(0,h.jsx)(b.QX,{}),children:(0,h.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),j||(y(!0),m.Z.invoke("PUT","/api/v1/buckets/".concat(r,"/set-policy"),{access:k,definition:M}).then((function(e){y(!1),s()})).catch((function(e){y(!1),d(e)})))},children:(0,h.jsxs)(u.ZP,{container:!0,children:[(0,h.jsxs)(u.ZP,{item:!0,xs:12,className:o.modalFormScrollable,children:[(0,h.jsx)(u.ZP,{item:!0,xs:12,className:o.formFieldRow,children:(0,h.jsx)(x.Z,{value:k,label:"Access Policy",id:"select-access-policy",name:"select-access-policy",onChange:function(e){S(e.target.value)},options:[{value:"PRIVATE",label:"Private"},{value:"PUBLIC",label:"Public"},{value:"CUSTOM",label:"Custom"}]})}),"CUSTOM"===k&&(0,h.jsx)(u.ZP,{item:!0,xs:12,className:o.codeMirrorContainer,children:(0,h.jsx)(g.Z,{label:"Write Policy",value:M,onBeforeChange:function(e,o,t){N(t)},editorHeight:"350px"})})]}),(0,h.jsxs)(u.ZP,{item:!0,xs:12,className:o.modalButtonBar,children:[(0,h.jsx)(a.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){s()},disabled:j,children:"Cancel"}),(0,h.jsx)(a.Z,{type:"submit",variant:"contained",color:"primary",disabled:j||"CUSTOM"===k&&!M,children:"Set"})]})]})})})})))},92217:function(e,o,t){var n=t(42982),r=t(70885),c=t(1413),i=t(72791),a=t(61889),l=(t(2574),t(69874)),s=t(9461),u=t(73975),d=t(80745),f=t(30829),m=t(20068),p=t(64554),x=t(11135),b=t(25787),g=t(84570),h=t(23814),Z=t(74833),j=t(40603),y=t(78029),v=t.n(y),C=t(64294),k=t(80184),S={json:u.AV,yaml:function(){return s.i.define(d.r)}},B=C.tk.theme({"&":{backgroundColor:"#FBFAFA"},".cm-content":{caretColor:"#05122B"},"&.cm-focused .cm-cursor":{borderLeftColor:"#05122B"},".cm-gutters":{backgroundColor:"#FBFAFA",color:"#000000",border:"none"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px",color:"#2781B0","& .\u037cc":{color:"#C83B51"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#dde1f1"},".cm-matchingBracket":{backgroundColor:"#05122B",color:"#ffffff"},".cm-selectionMatch":{backgroundColor:"#ebe7f1"},".cm-selectionLayer":{fontWeight:500}," .cm-selectionBackground":{backgroundColor:"#a180c7",color:"#ffffff"}},{dark:!1}),P=C.tk.theme({"&":{backgroundColor:"#282a36",color:"#ffb86c"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px","& .\u037cd, & .\u037cc":{color:"#8e6cef"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#44475a"},".cm-matchingBracket":{backgroundColor:"#842de5",color:"#ff79c6"},".cm-selectionLayer .cm-selectionBackground":{backgroundColor:"green"}},{dark:!0});o.Z=(0,b.Z)((function(e){return(0,x.Z)((0,c.Z)((0,c.Z)({},h.YI),{},{inputLabel:(0,c.Z)((0,c.Z)({},h.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var o=e.value,t=e.label,c=void 0===t?"":t,s=e.tooltip,u=void 0===s?"":s,d=e.mode,x=void 0===d?"json":d,b=e.classes,h=e.onBeforeChange,y=e.readOnly,C=void 0!==y&&y,M=e.editorHeight,N=void 0===M?"250px":M,O=(0,i.useState)(!1),E=(0,r.Z)(O,2),w=E[0],L=E[1],F=[];return S[x]&&(F=[].concat((0,n.Z)(F),[S[x]()])),(0,k.jsxs)(i.Fragment,{children:[(0,k.jsxs)(f.Z,{className:b.inputLabel,children:[(0,k.jsx)("span",{children:c}),""!==u&&(0,k.jsx)("div",{className:b.tooltipContainer,children:(0,k.jsx)(m.Z,{title:u,placement:"top-start",children:(0,k.jsx)("div",{className:b.tooltip,children:(0,k.jsx)(g.Z,{})})})})]}),(0,k.jsx)(a.ZP,{item:!0,xs:12,children:(0,k.jsx)("br",{})}),(0,k.jsxs)(a.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,k.jsx)(a.ZP,{item:!0,xs:12,children:(0,k.jsx)(l.ZP,{value:o,theme:w?P:B,extensions:F,editable:!C,basicSetup:!0,height:N,onChange:function(e,o){h(null,null,e)}})}),(0,k.jsx)(a.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:w?"#282c34":"#f7f7f7"},children:(0,k.jsxs)(p.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:[(0,k.jsx)(j.Z,{tooltip:"Change theme",onClick:function(){L(!w)},text:"",icon:(0,k.jsx)(Z.EO,{}),color:"primary",variant:"outlined"}),(0,k.jsx)(v(),{text:o,children:(0,k.jsx)(j.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,k.jsx)(Z.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},56028:function(e,o,t){var n=t(70885),r=t(1413),c=t(72791),i=t(60364),a=t(13400),l=t(55646),s=t(5574),u=t(65661),d=t(39157),f=t(11135),m=t(25787),p=t(23814),x=t(42649),b=t(29823),g=t(28057),h=t(80184),Z=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});o.Z=(0,m.Z)((function(e){return(0,f.Z)((0,r.Z)((0,r.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))(Z((function(e){var o=e.onClose,t=e.modalOpen,i=e.title,f=e.children,m=e.classes,p=e.wideLimit,x=void 0===p||p,Z=e.modalSnackMessage,j=e.noContentPadding,y=e.setModalSnackMessage,v=e.titleIcon,C=void 0===v?null:v,k=(0,c.useState)(!1),S=(0,n.Z)(k,2),B=S[0],P=S[1];(0,c.useEffect)((function(){y("")}),[y]),(0,c.useEffect)((function(){if(Z){if(""===Z.message)return void P(!1);"error"!==Z.type&&P(!0)}}),[Z]);var M=x?{classes:{paper:m.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},N="";return Z&&(N=Z.detailedErrorMsg,(""===Z.detailedErrorMsg||Z.detailedErrorMsg.length<5)&&(N=Z.message)),(0,h.jsxs)(s.Z,(0,r.Z)((0,r.Z)({open:t,classes:m},M),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&o()},className:m.root,children:[(0,h.jsxs)(u.Z,{className:m.title,children:[(0,h.jsxs)("div",{className:m.titleText,children:[C," ",i]}),(0,h.jsx)("div",{className:m.closeContainer,children:(0,h.jsx)(a.Z,{"aria-label":"close",id:"close",className:m.closeButton,onClick:o,disableRipple:!0,size:"small",children:(0,h.jsx)(b.Z,{})})})]}),(0,h.jsx)(g.Z,{isModal:!0}),(0,h.jsx)(l.Z,{open:B,className:m.snackBarModal,onClose:function(){P(!1),y("")},message:N,ContentProps:{className:"".concat(m.snackBar," ").concat(Z&&"error"===Z.type?m.errorSnackBar:"")},autoHideDuration:Z&&"error"===Z.type?1e4:5e3}),(0,h.jsx)(d.Z,{className:j?"":m.content,children:f})]}))})))},29823:function(e,o,t){var n=t(95318);o.Z=void 0;var r=n(t(45649)),c=t(80184),i=(0,r.default)((0,c.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");o.Z=i},61120:function(e,o,t){function n(e){return n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(e)}t.d(o,{Z:function(){return n}})},60136:function(e,o,t){t.d(o,{Z:function(){return r}});var n=t(89611);function r(e,o){if("function"!==typeof o&&null!==o)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(o&&o.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),o&&(0,n.Z)(e,o)}},6215:function(e,o,t){function n(e){return n="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},n(e)}t.d(o,{Z:function(){return c}});var r=t(97326);function c(e,o){if(o&&("object"===n(o)||"function"===typeof o))return o;if(void 0!==o)throw new TypeError("Derived constructors may only return object or undefined");return(0,r.Z)(e)}}}]); -//# sourceMappingURL=3631.23cb1b6a.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3631],{33690:function(e,o,t){t.r(o);var n=t(70885),r=t(1413),c=t(72791),i=t(60364),a=t(36151),l=t(11135),s=t(25787),u=t(61889),d=t(23814),f=t(42649),m=t(81207),p=t(56028),x=t(90673),b=t(13048),g=t(92217),h=t(80184);(0,l.Z)((0,r.Z)((0,r.Z)({},d.ID),d.bK));var Z=(0,i.$j)(null,{setModalErrorSnackMessage:f.zb});o.default=(0,s.Z)((function(e){return(0,l.Z)((0,r.Z)((0,r.Z)((0,r.Z)({codeMirrorContainer:{marginBottom:20,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},d.DF),d.ID),d.bK))}))(Z((function(e){var o=e.classes,t=e.open,r=e.bucketName,i=e.actualPolicy,l=e.actualDefinition,s=e.closeModalAndRefresh,d=e.setModalErrorSnackMessage,f=(0,c.useState)(!1),Z=(0,n.Z)(f,2),j=Z[0],y=Z[1],v=(0,c.useState)(""),C=(0,n.Z)(v,2),k=C[0],S=C[1],B=(0,c.useState)(""),P=(0,n.Z)(B,2),M=P[0],N=P[1];return(0,c.useEffect)((function(){S(i),N(l?JSON.stringify(JSON.parse(l),null,4):"")}),[S,i,N,l]),(0,h.jsx)(p.Z,{title:"Change Access Policy",modalOpen:t,onClose:function(){s()},titleIcon:(0,h.jsx)(b.QX,{}),children:(0,h.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),j||(y(!0),m.Z.invoke("PUT","/api/v1/buckets/".concat(r,"/set-policy"),{access:k,definition:M}).then((function(e){y(!1),s()})).catch((function(e){y(!1),d(e)})))},children:(0,h.jsxs)(u.ZP,{container:!0,children:[(0,h.jsxs)(u.ZP,{item:!0,xs:12,className:o.modalFormScrollable,children:[(0,h.jsx)(u.ZP,{item:!0,xs:12,className:o.formFieldRow,children:(0,h.jsx)(x.Z,{value:k,label:"Access Policy",id:"select-access-policy",name:"select-access-policy",onChange:function(e){S(e.target.value)},options:[{value:"PRIVATE",label:"Private"},{value:"PUBLIC",label:"Public"},{value:"CUSTOM",label:"Custom"}]})}),"CUSTOM"===k&&(0,h.jsx)(u.ZP,{item:!0,xs:12,className:o.codeMirrorContainer,children:(0,h.jsx)(g.Z,{label:"Write Policy",value:M,onBeforeChange:function(e,o,t){N(t)},editorHeight:"350px"})})]}),(0,h.jsxs)(u.ZP,{item:!0,xs:12,className:o.modalButtonBar,children:[(0,h.jsx)(a.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){s()},disabled:j,children:"Cancel"}),(0,h.jsx)(a.Z,{type:"submit",variant:"contained",color:"primary",disabled:j||"CUSTOM"===k&&!M,children:"Set"})]})]})})})})))},92217:function(e,o,t){var n=t(42982),r=t(70885),c=t(1413),i=t(72791),a=t(61889),l=(t(2574),t(69874)),s=t(9461),u=t(73975),d=t(80745),f=t(30829),m=t(20068),p=t(64554),x=t(11135),b=t(25787),g=t(84570),h=t(23814),Z=t(13048),j=t(40603),y=t(78029),v=t.n(y),C=t(64294),k=t(80184),S={json:u.AV,yaml:function(){return s.i.define(d.r)}},B=C.tk.theme({"&":{backgroundColor:"#FBFAFA"},".cm-content":{caretColor:"#05122B"},"&.cm-focused .cm-cursor":{borderLeftColor:"#05122B"},".cm-gutters":{backgroundColor:"#FBFAFA",color:"#000000",border:"none"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px",color:"#2781B0","& .\u037cc":{color:"#C83B51"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#dde1f1"},".cm-matchingBracket":{backgroundColor:"#05122B",color:"#ffffff"},".cm-selectionMatch":{backgroundColor:"#ebe7f1"},".cm-selectionLayer":{fontWeight:500}," .cm-selectionBackground":{backgroundColor:"#a180c7",color:"#ffffff"}},{dark:!1}),P=C.tk.theme({"&":{backgroundColor:"#282a36",color:"#ffb86c"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px","& .\u037cd, & .\u037cc":{color:"#8e6cef"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#44475a"},".cm-matchingBracket":{backgroundColor:"#842de5",color:"#ff79c6"},".cm-selectionLayer .cm-selectionBackground":{backgroundColor:"green"}},{dark:!0});o.Z=(0,b.Z)((function(e){return(0,x.Z)((0,c.Z)((0,c.Z)({},h.YI),{},{inputLabel:(0,c.Z)((0,c.Z)({},h.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var o=e.value,t=e.label,c=void 0===t?"":t,s=e.tooltip,u=void 0===s?"":s,d=e.mode,x=void 0===d?"json":d,b=e.classes,h=e.onBeforeChange,y=e.readOnly,C=void 0!==y&&y,M=e.editorHeight,N=void 0===M?"250px":M,O=(0,i.useState)(!1),E=(0,r.Z)(O,2),w=E[0],L=E[1],F=[];return S[x]&&(F=[].concat((0,n.Z)(F),[S[x]()])),(0,k.jsxs)(i.Fragment,{children:[(0,k.jsxs)(f.Z,{className:b.inputLabel,children:[(0,k.jsx)("span",{children:c}),""!==u&&(0,k.jsx)("div",{className:b.tooltipContainer,children:(0,k.jsx)(m.Z,{title:u,placement:"top-start",children:(0,k.jsx)("div",{className:b.tooltip,children:(0,k.jsx)(g.Z,{})})})})]}),(0,k.jsx)(a.ZP,{item:!0,xs:12,children:(0,k.jsx)("br",{})}),(0,k.jsxs)(a.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,k.jsx)(a.ZP,{item:!0,xs:12,children:(0,k.jsx)(l.ZP,{value:o,theme:w?P:B,extensions:F,editable:!C,basicSetup:!0,height:N,onChange:function(e,o){h(null,null,e)}})}),(0,k.jsx)(a.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:w?"#282c34":"#f7f7f7"},children:(0,k.jsxs)(p.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:[(0,k.jsx)(j.Z,{tooltip:"Change theme",onClick:function(){L(!w)},text:"",icon:(0,k.jsx)(Z.EO,{}),color:"primary",variant:"outlined"}),(0,k.jsx)(v(),{text:o,children:(0,k.jsx)(j.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,k.jsx)(Z.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},56028:function(e,o,t){var n=t(70885),r=t(1413),c=t(72791),i=t(60364),a=t(13400),l=t(55646),s=t(5574),u=t(65661),d=t(39157),f=t(11135),m=t(25787),p=t(23814),x=t(42649),b=t(29823),g=t(28057),h=t(80184),Z=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});o.Z=(0,m.Z)((function(e){return(0,f.Z)((0,r.Z)((0,r.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))(Z((function(e){var o=e.onClose,t=e.modalOpen,i=e.title,f=e.children,m=e.classes,p=e.wideLimit,x=void 0===p||p,Z=e.modalSnackMessage,j=e.noContentPadding,y=e.setModalSnackMessage,v=e.titleIcon,C=void 0===v?null:v,k=(0,c.useState)(!1),S=(0,n.Z)(k,2),B=S[0],P=S[1];(0,c.useEffect)((function(){y("")}),[y]),(0,c.useEffect)((function(){if(Z){if(""===Z.message)return void P(!1);"error"!==Z.type&&P(!0)}}),[Z]);var M=x?{classes:{paper:m.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},N="";return Z&&(N=Z.detailedErrorMsg,(""===Z.detailedErrorMsg||Z.detailedErrorMsg.length<5)&&(N=Z.message)),(0,h.jsxs)(s.Z,(0,r.Z)((0,r.Z)({open:t,classes:m},M),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&o()},className:m.root,children:[(0,h.jsxs)(u.Z,{className:m.title,children:[(0,h.jsxs)("div",{className:m.titleText,children:[C," ",i]}),(0,h.jsx)("div",{className:m.closeContainer,children:(0,h.jsx)(a.Z,{"aria-label":"close",id:"close",className:m.closeButton,onClick:o,disableRipple:!0,size:"small",children:(0,h.jsx)(b.Z,{})})})]}),(0,h.jsx)(g.Z,{isModal:!0}),(0,h.jsx)(l.Z,{open:B,className:m.snackBarModal,onClose:function(){P(!1),y("")},message:N,ContentProps:{className:"".concat(m.snackBar," ").concat(Z&&"error"===Z.type?m.errorSnackBar:"")},autoHideDuration:Z&&"error"===Z.type?1e4:5e3}),(0,h.jsx)(d.Z,{className:j?"":m.content,children:f})]}))})))},29823:function(e,o,t){var n=t(95318);o.Z=void 0;var r=n(t(45649)),c=t(80184),i=(0,r.default)((0,c.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");o.Z=i},61120:function(e,o,t){function n(e){return n=Object.setPrototypeOf?Object.getPrototypeOf:function(e){return e.__proto__||Object.getPrototypeOf(e)},n(e)}t.d(o,{Z:function(){return n}})},60136:function(e,o,t){t.d(o,{Z:function(){return r}});var n=t(89611);function r(e,o){if("function"!==typeof o&&null!==o)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(o&&o.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),o&&(0,n.Z)(e,o)}},6215:function(e,o,t){function n(e){return n="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},n(e)}t.d(o,{Z:function(){return c}});var r=t(97326);function c(e,o){if(o&&("object"===n(o)||"function"===typeof o))return o;if(void 0!==o)throw new TypeError("Derived constructors may only return object or undefined");return(0,r.Z)(e)}}}]); +//# sourceMappingURL=3631.8dc2431a.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3631.23cb1b6a.chunk.js.map b/portal-ui/build/static/js/3631.8dc2431a.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/3631.23cb1b6a.chunk.js.map rename to portal-ui/build/static/js/3631.8dc2431a.chunk.js.map index d534cade7..57fd59a14 100644 --- a/portal-ui/build/static/js/3631.23cb1b6a.chunk.js.map +++ b/portal-ui/build/static/js/3631.8dc2431a.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/3631.23cb1b6a.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SetAccessPolicy.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","../node_modules/@mui/icons-material/Close.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, SelectChangeEvent } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { ChangeAccessPolicyIcon } from \"../../../../icons\";\nimport CodeMirrorWrapper from \"../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n codeMirrorContainer: {\n marginBottom: 20,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\ncreateStyles({\n ...modalStyleUtils,\n ...spacingUtils,\n});\n\ninterface ISetAccessPolicyProps {\n classes: any;\n open: boolean;\n bucketName: string;\n actualPolicy: string;\n actualDefinition: string;\n closeModalAndRefresh: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst SetAccessPolicy = ({\n classes,\n open,\n bucketName,\n actualPolicy,\n actualDefinition,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n}: ISetAccessPolicyProps) => {\n const [addLoading, setAddLoading] = useState(false);\n const [accessPolicy, setAccessPolicy] = useState(\"\");\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n const addRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api\n .invoke(\"PUT\", `/api/v1/buckets/${bucketName}/set-policy`, {\n access: accessPolicy,\n definition: policyDefinition,\n })\n .then((res) => {\n setAddLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n setAccessPolicy(actualPolicy);\n setPolicyDefinition(\n actualDefinition\n ? JSON.stringify(JSON.parse(actualDefinition), null, 4)\n : \"\"\n );\n }, [setAccessPolicy, actualPolicy, setPolicyDefinition, actualDefinition]);\n\n return (\n {\n closeModalAndRefresh();\n }}\n titleIcon={}\n >\n ) => {\n addRecord(e);\n }}\n >\n \n \n \n ) => {\n setAccessPolicy(e.target.value as string);\n }}\n options={[\n { value: \"PRIVATE\", label: \"Private\" },\n { value: \"PUBLIC\", label: \"Public\" },\n { value: \"CUSTOM\", label: \"Custom\" },\n ]}\n />\n \n {accessPolicy === \"CUSTOM\" && (\n \n {\n setPolicyDefinition(value);\n }}\n editorHeight={\"350px\"}\n />\n \n )}\n \n \n {\n closeModalAndRefresh();\n }}\n disabled={addLoading}\n >\n Cancel\n \n \n Set\n \n \n \n \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(SetAccessPolicy));\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 Grid from \"@mui/material/Grid\";\nimport \"codemirror/theme/dracula.css\";\n/** Code mirror */\nimport CodeMirror, { Extension } from \"@uiw/react-codemirror\";\nimport { StreamLanguage } from \"@codemirror/stream-parser\";\nimport { json } from \"@codemirror/lang-json\";\nimport { yaml } from \"@codemirror/legacy-modes/mode/yaml\";\n\n/** Code mirror */\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon, EditorThemeSwitchIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { EditorView } from \"@codemirror/view\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst langHighlight: Record = {\n json,\n yaml: () => StreamLanguage.define(yaml),\n};\n\nconst lightTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#FBFAFA\",\n },\n \".cm-content\": {\n caretColor: \"#05122B\",\n },\n \"&.cm-focused .cm-cursor\": {\n borderLeftColor: \"#05122B\",\n },\n \".cm-gutters\": {\n backgroundColor: \"#FBFAFA\",\n color: \"#000000\",\n border: \"none\",\n },\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n color: \"#2781B0\",\n \"& .ͼc\": {\n color: \"#C83B51\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#dde1f1\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#05122B\",\n color: \"#ffffff\",\n },\n \".cm-selectionMatch\": {\n backgroundColor: \"#ebe7f1\",\n },\n \".cm-selectionLayer\": {\n fontWeight: 500,\n },\n \" .cm-selectionBackground\": {\n backgroundColor: \"#a180c7\",\n color: \"#ffffff\",\n },\n },\n {\n dark: false,\n }\n);\n\nconst darkTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#282a36\",\n color: \"#ffb86c\",\n },\n\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n \"& .ͼd, & .ͼc\": {\n color: \"#8e6cef\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#44475a\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#842de5\",\n color: \"#ff79c6\",\n },\n \".cm-selectionLayer .cm-selectionBackground\": {\n backgroundColor: \"green\",\n },\n },\n {\n dark: true,\n }\n);\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n const [isDarkTheme, setIsDarkTheme] = useState(false);\n\n //based on the language mode pick . default to json\n let extensionList: Extension[] = [];\n if (langHighlight[mode]) {\n extensionList = [...extensionList, langHighlight[mode]()];\n }\n\n return (\n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n \n
    \n
    \n\n \n \n {\n onBeforeChange(null, null, v);\n }}\n />\n \n \n \n {\n setIsDarkTheme(!isDarkTheme);\n }}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n {}}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n
    \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["createStyles","modalStyleUtils","spacingUtils","connector","connect","setModalErrorSnackMessage","withStyles","theme","codeMirrorContainer","marginBottom","display","formFieldStyles","classes","open","bucketName","actualPolicy","actualDefinition","closeModalAndRefresh","useState","addLoading","setAddLoading","accessPolicy","setAccessPolicy","policyDefinition","setPolicyDefinition","useEffect","JSON","stringify","parse","title","modalOpen","onClose","titleIcon","noValidate","autoComplete","onSubmit","e","preventDefault","api","access","definition","then","res","catch","err","container","item","xs","className","modalFormScrollable","formFieldRow","value","label","id","name","onChange","target","options","onBeforeChange","editor","data","editorHeight","modalButtonBar","type","variant","color","onClick","disabled","langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","backgroundColor","caretColor","borderLeftColor","border","borderRight","fontSize","fontWeight","dark","darkTheme","fieldBasic","inputLabel","tooltip","mode","readOnly","isDarkTheme","setIsDarkTheme","extensionList","tooltipContainer","placement","sx","extensions","editable","basicSetup","height","v","vu","borderTop","background","alignItems","padding","paddingRight","justifyContent","width","marginLeft","text","icon","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","paddingBottom","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","event","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","defineProperty","_typeof","obj","Symbol","iterator","_possibleConstructorReturn","self","call","assertThisInitialized"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/3631.8dc2431a.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SetAccessPolicy.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","../node_modules/@mui/icons-material/Close.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button, SelectChangeEvent } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { ChangeAccessPolicyIcon } from \"../../../../icons\";\nimport CodeMirrorWrapper from \"../../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n codeMirrorContainer: {\n marginBottom: 20,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\ncreateStyles({\n ...modalStyleUtils,\n ...spacingUtils,\n});\n\ninterface ISetAccessPolicyProps {\n classes: any;\n open: boolean;\n bucketName: string;\n actualPolicy: string;\n actualDefinition: string;\n closeModalAndRefresh: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst SetAccessPolicy = ({\n classes,\n open,\n bucketName,\n actualPolicy,\n actualDefinition,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n}: ISetAccessPolicyProps) => {\n const [addLoading, setAddLoading] = useState(false);\n const [accessPolicy, setAccessPolicy] = useState(\"\");\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n const addRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n api\n .invoke(\"PUT\", `/api/v1/buckets/${bucketName}/set-policy`, {\n access: accessPolicy,\n definition: policyDefinition,\n })\n .then((res) => {\n setAddLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n useEffect(() => {\n setAccessPolicy(actualPolicy);\n setPolicyDefinition(\n actualDefinition\n ? JSON.stringify(JSON.parse(actualDefinition), null, 4)\n : \"\"\n );\n }, [setAccessPolicy, actualPolicy, setPolicyDefinition, actualDefinition]);\n\n return (\n {\n closeModalAndRefresh();\n }}\n titleIcon={}\n >\n ) => {\n addRecord(e);\n }}\n >\n \n \n \n ) => {\n setAccessPolicy(e.target.value as string);\n }}\n options={[\n { value: \"PRIVATE\", label: \"Private\" },\n { value: \"PUBLIC\", label: \"Public\" },\n { value: \"CUSTOM\", label: \"Custom\" },\n ]}\n />\n \n {accessPolicy === \"CUSTOM\" && (\n \n {\n setPolicyDefinition(value);\n }}\n editorHeight={\"350px\"}\n />\n \n )}\n \n \n {\n closeModalAndRefresh();\n }}\n disabled={addLoading}\n >\n Cancel\n \n \n Set\n \n \n \n \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(SetAccessPolicy));\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 Grid from \"@mui/material/Grid\";\nimport \"codemirror/theme/dracula.css\";\n/** Code mirror */\nimport CodeMirror, { Extension } from \"@uiw/react-codemirror\";\nimport { StreamLanguage } from \"@codemirror/stream-parser\";\nimport { json } from \"@codemirror/lang-json\";\nimport { yaml } from \"@codemirror/legacy-modes/mode/yaml\";\n\n/** Code mirror */\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon, EditorThemeSwitchIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { EditorView } from \"@codemirror/view\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst langHighlight: Record = {\n json,\n yaml: () => StreamLanguage.define(yaml),\n};\n\nconst lightTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#FBFAFA\",\n },\n \".cm-content\": {\n caretColor: \"#05122B\",\n },\n \"&.cm-focused .cm-cursor\": {\n borderLeftColor: \"#05122B\",\n },\n \".cm-gutters\": {\n backgroundColor: \"#FBFAFA\",\n color: \"#000000\",\n border: \"none\",\n },\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n color: \"#2781B0\",\n \"& .ͼc\": {\n color: \"#C83B51\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#dde1f1\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#05122B\",\n color: \"#ffffff\",\n },\n \".cm-selectionMatch\": {\n backgroundColor: \"#ebe7f1\",\n },\n \".cm-selectionLayer\": {\n fontWeight: 500,\n },\n \" .cm-selectionBackground\": {\n backgroundColor: \"#a180c7\",\n color: \"#ffffff\",\n },\n },\n {\n dark: false,\n }\n);\n\nconst darkTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#282a36\",\n color: \"#ffb86c\",\n },\n\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n \"& .ͼd, & .ͼc\": {\n color: \"#8e6cef\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#44475a\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#842de5\",\n color: \"#ff79c6\",\n },\n \".cm-selectionLayer .cm-selectionBackground\": {\n backgroundColor: \"green\",\n },\n },\n {\n dark: true,\n }\n);\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n const [isDarkTheme, setIsDarkTheme] = useState(false);\n\n //based on the language mode pick . default to json\n let extensionList: Extension[] = [];\n if (langHighlight[mode]) {\n extensionList = [...extensionList, langHighlight[mode]()];\n }\n\n return (\n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n \n
    \n
    \n\n \n \n {\n onBeforeChange(null, null, v);\n }}\n />\n \n \n \n {\n setIsDarkTheme(!isDarkTheme);\n }}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n {}}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n
    \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","export default function _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}","import setPrototypeOf from \"./setPrototypeOf.js\";\nexport default function _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n Object.defineProperty(subClass, \"prototype\", {\n writable: false\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}","export default function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) {\n return typeof obj;\n } : function (obj) {\n return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n }, _typeof(obj);\n}","import _typeof from \"./typeof.js\";\nimport assertThisInitialized from \"./assertThisInitialized.js\";\nexport default function _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}"],"names":["createStyles","modalStyleUtils","spacingUtils","connector","connect","setModalErrorSnackMessage","withStyles","theme","codeMirrorContainer","marginBottom","display","formFieldStyles","classes","open","bucketName","actualPolicy","actualDefinition","closeModalAndRefresh","useState","addLoading","setAddLoading","accessPolicy","setAccessPolicy","policyDefinition","setPolicyDefinition","useEffect","JSON","stringify","parse","title","modalOpen","onClose","titleIcon","noValidate","autoComplete","onSubmit","e","preventDefault","api","access","definition","then","res","catch","err","container","item","xs","className","modalFormScrollable","formFieldRow","value","label","id","name","onChange","target","options","onBeforeChange","editor","data","editorHeight","modalButtonBar","type","variant","color","onClick","disabled","langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","backgroundColor","caretColor","borderLeftColor","border","borderRight","fontSize","fontWeight","dark","darkTheme","fieldBasic","inputLabel","tooltip","mode","readOnly","isDarkTheme","setIsDarkTheme","extensionList","tooltipContainer","placement","sx","extensions","editable","basicSetup","height","v","vu","borderTop","background","alignItems","padding","paddingRight","justifyContent","width","marginLeft","text","icon","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","paddingBottom","customDialogSize","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","event","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","_getPrototypeOf","o","Object","setPrototypeOf","getPrototypeOf","__proto__","_inherits","subClass","superClass","TypeError","prototype","create","constructor","writable","configurable","defineProperty","_typeof","obj","Symbol","iterator","_possibleConstructorReturn","self","call","assertThisInitialized"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3678.5bd48bc8.chunk.js b/portal-ui/build/static/js/3678.783bd42c.chunk.js similarity index 94% rename from portal-ui/build/static/js/3678.5bd48bc8.chunk.js rename to portal-ui/build/static/js/3678.783bd42c.chunk.js index ce9a21485..0c679f168 100644 --- a/portal-ui/build/static/js/3678.5bd48bc8.chunk.js +++ b/portal-ui/build/static/js/3678.783bd42c.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3678],{83678:function(e,n,a){a.r(n);var t=a(70885),r=a(1413),o=a(72791),s=a(56028),l=a(61889),c=a(36151),i=a(21435),d=a(11135),u=a(25787),h=a(23814),f=a(60364),m=a(62666),x=a(45248),Z=a(42649),p=a(74833),j=a(80184),v={setModalErrorSnackMessage:Z.zb},C=(0,f.$j)(null,v);n.default=C((0,u.Z)((function(e){return(0,d.Z)((0,r.Z)((0,r.Z)({},h.ID),h.DF))}))((function(e){var n=e.modalOpen,a=e.folderName,r=e.bucketName,d=e.onClose,u=e.setModalErrorSnackMessage,h=e.classes,f=e.existingFiles,Z=(0,o.useState)(""),v=(0,t.Z)(Z,2),C=v[0],b=v[1],g=(0,o.useState)(!1),k=(0,t.Z)(g,2),P=k[0],w=k[1],F="".concat(r,"/").concat((0,x.le)(a)),E=function(){var e="";if(""!==a){var n=(0,x.le)(a);e=n.endsWith("/")?n:"".concat(n,"/")}if(-1===f.findIndex((function(n){return n.name===e+C}))){var t="/buckets/".concat(r,"/browse/").concat((0,x.ug)("".concat(e).concat(C)),"/");m.Z.push(t),d()}else u({errorMessage:"Folder cannot have the same name as an existing file",detailedError:""})};(0,o.useEffect)((function(){var e=!0;0===C.trim().length&&(e=!1),w(e)}),[C]);return(0,j.jsx)(o.Fragment,{children:(0,j.jsx)(s.Z,{modalOpen:n,title:"Choose or create a new path",onClose:d,titleIcon:(0,j.jsx)(p.Z9,{}),children:(0,j.jsxs)(l.ZP,{container:!0,children:[(0,j.jsxs)(l.ZP,{item:!0,xs:12,className:h.formFieldRow,children:["Current Path: ",F]}),(0,j.jsx)(l.ZP,{item:!0,xs:12,className:h.formFieldRow,children:(0,j.jsx)(i.Z,{value:C,label:"New Folder Path",id:"folderPath",name:"folderPath",placeholder:"Enter the new Folder Path",onChange:function(e){b(e.target.value)},onKeyPress:function(e){"Enter"===e.code&&""!==C&&E()},required:!0})}),(0,j.jsxs)(l.ZP,{item:!0,xs:12,className:h.modalButtonBar,children:[(0,j.jsx)(c.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){b("")},children:"Clear"}),(0,j.jsx)(c.Z,{type:"submit",variant:"contained",color:"primary",disabled:!P,onClick:E,children:"Create"})]})]})})})})))}}]); -//# sourceMappingURL=3678.5bd48bc8.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3678],{83678:function(e,n,a){a.r(n);var t=a(70885),r=a(1413),o=a(72791),s=a(56028),l=a(61889),c=a(36151),i=a(21435),d=a(11135),u=a(25787),h=a(23814),f=a(60364),m=a(62666),x=a(45248),Z=a(42649),p=a(13048),j=a(80184),v={setModalErrorSnackMessage:Z.zb},C=(0,f.$j)(null,v);n.default=C((0,u.Z)((function(e){return(0,d.Z)((0,r.Z)((0,r.Z)({},h.ID),h.DF))}))((function(e){var n=e.modalOpen,a=e.folderName,r=e.bucketName,d=e.onClose,u=e.setModalErrorSnackMessage,h=e.classes,f=e.existingFiles,Z=(0,o.useState)(""),v=(0,t.Z)(Z,2),C=v[0],b=v[1],g=(0,o.useState)(!1),k=(0,t.Z)(g,2),P=k[0],w=k[1],F="".concat(r,"/").concat((0,x.le)(a)),E=function(){var e="";if(""!==a){var n=(0,x.le)(a);e=n.endsWith("/")?n:"".concat(n,"/")}if(-1===f.findIndex((function(n){return n.name===e+C}))){var t="/buckets/".concat(r,"/browse/").concat((0,x.ug)("".concat(e).concat(C)),"/");m.Z.push(t),d()}else u({errorMessage:"Folder cannot have the same name as an existing file",detailedError:""})};(0,o.useEffect)((function(){var e=!0;0===C.trim().length&&(e=!1),w(e)}),[C]);return(0,j.jsx)(o.Fragment,{children:(0,j.jsx)(s.Z,{modalOpen:n,title:"Choose or create a new path",onClose:d,titleIcon:(0,j.jsx)(p.Z9,{}),children:(0,j.jsxs)(l.ZP,{container:!0,children:[(0,j.jsxs)(l.ZP,{item:!0,xs:12,className:h.formFieldRow,children:["Current Path: ",F]}),(0,j.jsx)(l.ZP,{item:!0,xs:12,className:h.formFieldRow,children:(0,j.jsx)(i.Z,{value:C,label:"New Folder Path",id:"folderPath",name:"folderPath",placeholder:"Enter the new Folder Path",onChange:function(e){b(e.target.value)},onKeyPress:function(e){"Enter"===e.code&&""!==C&&E()},required:!0})}),(0,j.jsxs)(l.ZP,{item:!0,xs:12,className:h.modalButtonBar,children:[(0,j.jsx)(c.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){b("")},children:"Clear"}),(0,j.jsx)(c.Z,{type:"submit",variant:"contained",color:"primary",disabled:!P,onClick:E,children:"Create"})]})]})})})})))}}]); +//# sourceMappingURL=3678.783bd42c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3678.5bd48bc8.chunk.js.map b/portal-ui/build/static/js/3678.783bd42c.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/3678.5bd48bc8.chunk.js.map rename to portal-ui/build/static/js/3678.783bd42c.chunk.js.map index 8e10dab65..fbdfa14fd 100644 --- a/portal-ui/build/static/js/3678.5bd48bc8.chunk.js.map +++ b/portal-ui/build/static/js/3678.783bd42c.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/3678.5bd48bc8.chunk.js","mappings":"uSA+JMA,EAAqB,CACzBC,0BAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAEhC,UAAeE,GAAUE,EAAAA,EAAAA,IAzHV,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACRC,EAAAA,IACAC,EAAAA,OAsHkBJ,EAnHC,SAAC,GAQL,IAPpBK,EAOmB,EAPnBA,UACAC,EAMmB,EANnBA,WACAC,EAKmB,EALnBA,WACAC,EAImB,EAJnBA,QACAX,EAGmB,EAHnBA,0BACAY,EAEmB,EAFnBA,QACAC,EACmB,EADnBA,cAEA,GAA8BC,EAAAA,EAAAA,UAAS,IAAvC,eAAOC,EAAP,KAAgBC,EAAhB,KACA,GAAsCF,EAAAA,EAAAA,WAAkB,GAAxD,eAAOG,EAAP,KAAoBC,EAApB,KAEMC,EAAW,UAAMT,EAAN,aAAoBU,EAAAA,EAAAA,IAAeX,IAM9CY,EAAgB,WACpB,IAAIC,EAAa,GACjB,GAAmB,KAAfb,EAAmB,CACrB,IAAMc,GAAoBH,EAAAA,EAAAA,IAAeX,GACzCa,EAAaC,EAAkBC,SAAS,KACpCD,EADS,UAENA,EAFM,KAMf,IAA6C,IAAzCV,EAAcY,WAFC,SAACC,GAAD,OACjBA,EAAOC,OAASL,EAAaP,KAC/B,CAOA,IAAMa,EAAO,mBAAelB,EAAf,oBAAoCmB,EAAAA,EAAAA,IAAe,GAAD,OAC1DP,GAD0D,OAC7CP,IADL,KAGbe,EAAAA,EAAAA,KAAaF,GACbjB,SAVEX,EAA0B,CACxB+B,aAAc,uDACdC,cAAe,OAWrBC,EAAAA,EAAAA,YAAU,WACR,IAAIC,GAAQ,EACkB,IAA1BnB,EAAQoB,OAAOC,SACjBF,GAAQ,GAEVhB,EAAegB,KACd,CAACnB,IAYJ,OACE,SAAC,WAAD,WACE,SAAC,IAAD,CACEP,UAAWA,EACX6B,MAAM,8BACN1B,QAASA,EACT2B,WAAW,SAAC,KAAD,IAJb,UAME,UAAC,KAAD,CAAMC,WAAS,EAAf,WACE,UAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIC,UAAW9B,EAAQ+B,aAAtC,2BACiBxB,MAEjB,SAAC,KAAD,CAAMqB,MAAI,EAACC,GAAI,GAAIC,UAAW9B,EAAQ+B,aAAtC,UACE,SAAC,IAAD,CACEC,MAAO7B,EACP8B,MAAO,kBACPC,GAAI,aACJnB,KAAM,aACNoB,YAAa,4BACbC,SA7BQ,SAACC,GACnBjC,EAAWiC,EAAEC,OAAON,QA6BVO,WA1BO,SAACF,GACH,UAAXA,EAAEG,MAAgC,KAAZrC,GACxBM,KAyBQgC,UAAQ,OAGZ,UAAC,KAAD,CAAMb,MAAI,EAACC,GAAI,GAAIC,UAAW9B,EAAQ0C,eAAtC,WACE,SAAC,IAAD,CACEC,KAAK,SACLC,MAAM,UACNC,QAAQ,WACRC,QA3EM,WAChB1C,EAAW,KAsEH,oBAQA,SAAC,IAAD,CACEuC,KAAK,SACLE,QAAQ,YACRD,MAAM,UACNG,UAAW1C,EACXyC,QAASrC,EALX","sources":["screens/Console/Buckets/ListBuckets/Objects/ListObjects/CreateFolderModal.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 ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { Button, Grid } from \"@mui/material\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { connect } from \"react-redux\";\nimport history from \"../../../../../../history\";\nimport { decodeFileName, encodeFileName } from \"../../../../../../common/utils\";\nimport { setModalErrorSnackMessage } from \"../../../../../../actions\";\nimport { BucketObject } from \"./types\";\nimport { CreateNewPathIcon } from \"../../../../../../icons\";\n\ninterface ICreateFolder {\n classes: any;\n modalOpen: boolean;\n bucketName: string;\n folderName: string;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n onClose: () => any;\n existingFiles: BucketObject[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalStyleUtils,\n ...formFieldStyles,\n });\n\nconst CreateFolderModal = ({\n modalOpen,\n folderName,\n bucketName,\n onClose,\n setModalErrorSnackMessage,\n classes,\n existingFiles,\n}: ICreateFolder) => {\n const [pathUrl, setPathUrl] = useState(\"\");\n const [isFormValid, setIsFormValid] = useState(false);\n\n const currentPath = `${bucketName}/${decodeFileName(folderName)}`;\n\n const resetForm = () => {\n setPathUrl(\"\");\n };\n\n const createProcess = () => {\n let folderPath = \"\";\n if (folderName !== \"\") {\n const decodedFolderName = decodeFileName(folderName);\n folderPath = decodedFolderName.endsWith(\"/\")\n ? decodedFolderName\n : `${decodedFolderName}/`;\n }\n const sharesName = (record: BucketObject) =>\n record.name === folderPath + pathUrl;\n if (existingFiles.findIndex(sharesName) !== -1) {\n setModalErrorSnackMessage({\n errorMessage: \"Folder cannot have the same name as an existing file\",\n detailedError: \"\",\n });\n return;\n }\n const newPath = `/buckets/${bucketName}/browse/${encodeFileName(\n `${folderPath}${pathUrl}`\n )}/`;\n history.push(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: {currentPath}\n \n \n \n \n \n \n Clear\n \n \n Create\n \n \n \n \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(CreateFolderModal));\n"],"names":["mapDispatchToProps","setModalErrorSnackMessage","connector","connect","withStyles","theme","createStyles","modalStyleUtils","formFieldStyles","modalOpen","folderName","bucketName","onClose","classes","existingFiles","useState","pathUrl","setPathUrl","isFormValid","setIsFormValid","currentPath","decodeFileName","createProcess","folderPath","decodedFolderName","endsWith","findIndex","record","name","newPath","encodeFileName","history","errorMessage","detailedError","useEffect","valid","trim","length","title","titleIcon","container","item","xs","className","formFieldRow","value","label","id","placeholder","onChange","e","target","onKeyPress","code","required","modalButtonBar","type","color","variant","onClick","disabled"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/3678.783bd42c.chunk.js","mappings":"uSA+JMA,EAAqB,CACzBC,0BAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAEhC,UAAeE,GAAUE,EAAAA,EAAAA,IAzHV,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,kBACRC,EAAAA,IACAC,EAAAA,OAsHkBJ,EAnHC,SAAC,GAQL,IAPpBK,EAOmB,EAPnBA,UACAC,EAMmB,EANnBA,WACAC,EAKmB,EALnBA,WACAC,EAImB,EAJnBA,QACAX,EAGmB,EAHnBA,0BACAY,EAEmB,EAFnBA,QACAC,EACmB,EADnBA,cAEA,GAA8BC,EAAAA,EAAAA,UAAS,IAAvC,eAAOC,EAAP,KAAgBC,EAAhB,KACA,GAAsCF,EAAAA,EAAAA,WAAkB,GAAxD,eAAOG,EAAP,KAAoBC,EAApB,KAEMC,EAAW,UAAMT,EAAN,aAAoBU,EAAAA,EAAAA,IAAeX,IAM9CY,EAAgB,WACpB,IAAIC,EAAa,GACjB,GAAmB,KAAfb,EAAmB,CACrB,IAAMc,GAAoBH,EAAAA,EAAAA,IAAeX,GACzCa,EAAaC,EAAkBC,SAAS,KACpCD,EADS,UAENA,EAFM,KAMf,IAA6C,IAAzCV,EAAcY,WAFC,SAACC,GAAD,OACjBA,EAAOC,OAASL,EAAaP,KAC/B,CAOA,IAAMa,EAAO,mBAAelB,EAAf,oBAAoCmB,EAAAA,EAAAA,IAAe,GAAD,OAC1DP,GAD0D,OAC7CP,IADL,KAGbe,EAAAA,EAAAA,KAAaF,GACbjB,SAVEX,EAA0B,CACxB+B,aAAc,uDACdC,cAAe,OAWrBC,EAAAA,EAAAA,YAAU,WACR,IAAIC,GAAQ,EACkB,IAA1BnB,EAAQoB,OAAOC,SACjBF,GAAQ,GAEVhB,EAAegB,KACd,CAACnB,IAYJ,OACE,SAAC,WAAD,WACE,SAAC,IAAD,CACEP,UAAWA,EACX6B,MAAM,8BACN1B,QAASA,EACT2B,WAAW,SAAC,KAAD,IAJb,UAME,UAAC,KAAD,CAAMC,WAAS,EAAf,WACE,UAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAIC,UAAW9B,EAAQ+B,aAAtC,2BACiBxB,MAEjB,SAAC,KAAD,CAAMqB,MAAI,EAACC,GAAI,GAAIC,UAAW9B,EAAQ+B,aAAtC,UACE,SAAC,IAAD,CACEC,MAAO7B,EACP8B,MAAO,kBACPC,GAAI,aACJnB,KAAM,aACNoB,YAAa,4BACbC,SA7BQ,SAACC,GACnBjC,EAAWiC,EAAEC,OAAON,QA6BVO,WA1BO,SAACF,GACH,UAAXA,EAAEG,MAAgC,KAAZrC,GACxBM,KAyBQgC,UAAQ,OAGZ,UAAC,KAAD,CAAMb,MAAI,EAACC,GAAI,GAAIC,UAAW9B,EAAQ0C,eAAtC,WACE,SAAC,IAAD,CACEC,KAAK,SACLC,MAAM,UACNC,QAAQ,WACRC,QA3EM,WAChB1C,EAAW,KAsEH,oBAQA,SAAC,IAAD,CACEuC,KAAK,SACLE,QAAQ,YACRD,MAAM,UACNG,UAAW1C,EACXyC,QAASrC,EALX","sources":["screens/Console/Buckets/ListBuckets/Objects/ListObjects/CreateFolderModal.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 ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { Button, Grid } from \"@mui/material\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { connect } from \"react-redux\";\nimport history from \"../../../../../../history\";\nimport { decodeFileName, encodeFileName } from \"../../../../../../common/utils\";\nimport { setModalErrorSnackMessage } from \"../../../../../../actions\";\nimport { BucketObject } from \"./types\";\nimport { CreateNewPathIcon } from \"../../../../../../icons\";\n\ninterface ICreateFolder {\n classes: any;\n modalOpen: boolean;\n bucketName: string;\n folderName: string;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n onClose: () => any;\n existingFiles: BucketObject[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalStyleUtils,\n ...formFieldStyles,\n });\n\nconst CreateFolderModal = ({\n modalOpen,\n folderName,\n bucketName,\n onClose,\n setModalErrorSnackMessage,\n classes,\n existingFiles,\n}: ICreateFolder) => {\n const [pathUrl, setPathUrl] = useState(\"\");\n const [isFormValid, setIsFormValid] = useState(false);\n\n const currentPath = `${bucketName}/${decodeFileName(folderName)}`;\n\n const resetForm = () => {\n setPathUrl(\"\");\n };\n\n const createProcess = () => {\n let folderPath = \"\";\n if (folderName !== \"\") {\n const decodedFolderName = decodeFileName(folderName);\n folderPath = decodedFolderName.endsWith(\"/\")\n ? decodedFolderName\n : `${decodedFolderName}/`;\n }\n const sharesName = (record: BucketObject) =>\n record.name === folderPath + pathUrl;\n if (existingFiles.findIndex(sharesName) !== -1) {\n setModalErrorSnackMessage({\n errorMessage: \"Folder cannot have the same name as an existing file\",\n detailedError: \"\",\n });\n return;\n }\n const newPath = `/buckets/${bucketName}/browse/${encodeFileName(\n `${folderPath}${pathUrl}`\n )}/`;\n history.push(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: {currentPath}\n \n \n \n \n \n \n Clear\n \n \n Create\n \n \n \n \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(CreateFolderModal));\n"],"names":["mapDispatchToProps","setModalErrorSnackMessage","connector","connect","withStyles","theme","createStyles","modalStyleUtils","formFieldStyles","modalOpen","folderName","bucketName","onClose","classes","existingFiles","useState","pathUrl","setPathUrl","isFormValid","setIsFormValid","currentPath","decodeFileName","createProcess","folderPath","decodedFolderName","endsWith","findIndex","record","name","newPath","encodeFileName","history","errorMessage","detailedError","useEffect","valid","trim","length","title","titleIcon","container","item","xs","className","formFieldRow","value","label","id","placeholder","onChange","e","target","onKeyPress","code","required","modalButtonBar","type","color","variant","onClick","disabled"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/380.02c7ec7f.chunk.js b/portal-ui/build/static/js/380.02c7ec7f.chunk.js new file mode 100644 index 000000000..3070aec02 --- /dev/null +++ b/portal-ui/build/static/js/380.02c7ec7f.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[380],{23804:function(e,t,n){"use strict";n(72791);var r=n(11135),i=n(25787),o=n(61889),s=n(80184);t.Z=(0,i.Z)((function(e){return(0,r.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var t=e.classes,n=e.iconComponent,r=e.title,i=e.help;return(0,s.jsx)("div",{className:t.root,children:(0,s.jsxs)(o.ZP,{container:!0,children:[(0,s.jsxs)(o.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,r]}),(0,s.jsx)(o.ZP,{item:!0,xs:12,className:t.helpText,children:i})]})})}))},40603:function(e,t,n){"use strict";var r=n(1413),i=n(45987),o=(n(72791),n(85531)),s=n(72455),a=n(80184),l=["onClick","text","disabled","tooltip","icon","className"],c=(0,s.Z)((function(e){return{root:{padding:"7px",color:function(t){return function(t){var n=t.variant,r=t.color,i=e.palette.primary.main;return"primary"===r&&"contained"===n?i=e.palette.primary.contrastText:"primary"===r&&"outlined"===n?i=e.palette.primary.main:"secondary"===r&&(i=e.palette.secondary.main),i}(t)},borderColor:function(t){return"secondary"===t.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));t.Z=function(e){var t=c(e),n=e.onClick,s=e.text,d=void 0===s?"":s,u=e.disabled,m=void 0!==u&&u,x=e.tooltip,h=e.icon,p=void 0===h?null:h,f=e.className,g=void 0===f?"":f,j=(0,i.Z)(e,l);return(0,a.jsxs)(o.Z,(0,r.Z)((0,r.Z)({className:g,classes:t,tooltip:x||d,variant:"outlined",onClick:n,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},j),{},{children:[(0,a.jsx)("span",{children:d})," ",p]}))}},85531:function(e,t,n){"use strict";var r=n(1413),i=n(4942),o=n(45987),s=(n(72791),n(11135)),a=n(25787),l=n(13400),c=n(20068),d=n(28182),u=n(80184),m=["classes","children","variant","tooltip"];t.Z=(0,a.Z)((function(e){return(0,s.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var t=e.classes,n=e.children,s=e.variant,a=void 0===s?"outlined":s,x=e.tooltip,h=(0,o.Z)(e,m),p=(0,u.jsx)(l.Z,(0,r.Z)((0,r.Z)({},h),{},{className:(0,d.Z)(t.root,(0,i.Z)({},t.contained,"contained"===a)),children:n}));return x&&""!==x?(0,u.jsx)(c.Z,{title:x,children:(0,u.jsx)("span",{children:p})}):p}))},47986:function(e,t,n){"use strict";n(72791);var r=n(61889),i=n(64554),o=n(23804),s=n(80184);t.Z=function(e){var t=e.iconComponent,n=e.entity;return(0,s.jsx)(r.ZP,{container:!0,alignItems:"center",children:(0,s.jsx)(r.ZP,{item:!0,xs:12,children:(0,s.jsx)(o.Z,{title:"".concat(n," not available"),iconComponent:t,help:(0,s.jsxs)(i.Z,{sx:{fontSize:"14px",display:"flex",border:"none",flexFlow:{xs:"column",md:"row"},"& a":{color:function(e){return e.colors.link},textDecoration:"underline"}},children:[(0,s.jsx)("div",{children:"This feature is not available for a single-disk setup. "}),(0,s.jsxs)("div",{children:["Please deploy a server in"," ",(0,s.jsx)("a",{href:"https://docs.min.io/minio/baremetal/installation/deploy-minio-distributed.html?ref=con",target:"_blank",rel:"noreferrer",children:"Distributed Mode"})," ","to use this feature."]})]})})})})}},92217:function(e,t,n){"use strict";var r=n(42982),i=n(70885),o=n(1413),s=n(72791),a=n(61889),l=(n(2574),n(69874)),c=n(9461),d=n(73975),u=n(80745),m=n(30829),x=n(20068),h=n(64554),p=n(11135),f=n(25787),g=n(84570),j=n(23814),b=n(13048),Z=n(40603),v=n(78029),y=n.n(v),C=n(64294),S=n(80184),w={json:d.AV,yaml:function(){return c.i.define(u.r)}},P=C.tk.theme({"&":{backgroundColor:"#FBFAFA"},".cm-content":{caretColor:"#05122B"},"&.cm-focused .cm-cursor":{borderLeftColor:"#05122B"},".cm-gutters":{backgroundColor:"#FBFAFA",color:"#000000",border:"none"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px",color:"#2781B0","& .\u037cc":{color:"#C83B51"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#dde1f1"},".cm-matchingBracket":{backgroundColor:"#05122B",color:"#ffffff"},".cm-selectionMatch":{backgroundColor:"#ebe7f1"},".cm-selectionLayer":{fontWeight:500}," .cm-selectionBackground":{backgroundColor:"#a180c7",color:"#ffffff"}},{dark:!1}),k=C.tk.theme({"&":{backgroundColor:"#282a36",color:"#ffb86c"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px","& .\u037cd, & .\u037cc":{color:"#8e6cef"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#44475a"},".cm-matchingBracket":{backgroundColor:"#842de5",color:"#ff79c6"},".cm-selectionLayer .cm-selectionBackground":{backgroundColor:"green"}},{dark:!0});t.Z=(0,f.Z)((function(e){return(0,p.Z)((0,o.Z)((0,o.Z)({},j.YI),{},{inputLabel:(0,o.Z)((0,o.Z)({},j.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var t=e.value,n=e.label,o=void 0===n?"":n,c=e.tooltip,d=void 0===c?"":c,u=e.mode,p=void 0===u?"json":u,f=e.classes,j=e.onBeforeChange,v=e.readOnly,C=void 0!==v&&v,N=e.editorHeight,E=void 0===N?"250px":N,T=(0,s.useState)(!1),B=(0,i.Z)(T,2),F=B[0],O=B[1],I=[];return w[p]&&(I=[].concat((0,r.Z)(I),[w[p]()])),(0,S.jsxs)(s.Fragment,{children:[(0,S.jsxs)(m.Z,{className:f.inputLabel,children:[(0,S.jsx)("span",{children:o}),""!==d&&(0,S.jsx)("div",{className:f.tooltipContainer,children:(0,S.jsx)(x.Z,{title:d,placement:"top-start",children:(0,S.jsx)("div",{className:f.tooltip,children:(0,S.jsx)(g.Z,{})})})})]}),(0,S.jsx)(a.ZP,{item:!0,xs:12,children:(0,S.jsx)("br",{})}),(0,S.jsxs)(a.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,S.jsx)(a.ZP,{item:!0,xs:12,children:(0,S.jsx)(l.ZP,{value:t,theme:F?k:P,extensions:I,editable:!C,basicSetup:!0,height:E,onChange:function(e,t){j(null,null,e)}})}),(0,S.jsx)(a.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:F?"#282c34":"#f7f7f7"},children:(0,S.jsxs)(h.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:[(0,S.jsx)(Z.Z,{tooltip:"Change theme",onClick:function(){O(!F)},text:"",icon:(0,S.jsx)(b.EO,{}),color:"primary",variant:"outlined"}),(0,S.jsx)(y(),{text:t,children:(0,S.jsx)(Z.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,S.jsx)(b.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},74794:function(e,t,n){"use strict";var r=n(1413),i=(n(72791),n(61889)),o=n(11135),s=n(25787),a=n(23814),l=n(80184);t.Z=(0,s.Z)((function(e){return(0,o.Z)((0,r.Z)({},a.Bw))}))((function(e){var t=e.classes,n=e.className,r=void 0===n?"":n,o=e.children;return(0,l.jsx)("div",{className:t.contentSpacer,children:(0,l.jsx)(i.ZP,{container:!0,children:(0,l.jsx)(i.ZP,{item:!0,xs:12,className:r,children:o})})})}))},32291:function(e,t,n){"use strict";var r=n(72791),i=n(60364),o=n(61889),s=n(11135),a=n(25787),l=n(20890),c=n(13400),d=n(95466),u=n(84683),m=n(3925),x=n(13048),h=n(80184),p={toggleList:m.kQ},f=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),p);t.Z=f((0,a.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,n=e.label,i=e.actions,s=e.sidebarOpen,a=e.operatorMode,m=e.managerObjects,p=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(r.Fragment,{}):(0,h.jsxs)(o.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,h.jsx)("div",{className:t.logo,children:a?(0,h.jsx)(d.Z,{}):(0,h.jsx)(u.Z,{})}),(0,h.jsx)(l.Z,{variant:"h4",className:t.labelStyle,children:n})]}),f&&(0,h.jsx)(o.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,h.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.rightMenu,children:[i&&i,m&&m.length>0&&(0,h.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){p()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(x.gx,{})})]})]})})))},87998:function(e,t,n){"use strict";var r=n(1413),i=n(4942),o=(n(72791),n(47630)),s=n(40986),a=n(78917),l=n(64554),c=n(80184),d=(0,o.ZP)(s.Z)((function(){var e;return e={height:10,borderRadius:5},(0,i.Z)(e,"&.".concat(a.Z.colorPrimary),{backgroundColor:"#f1f1f1"}),(0,i.Z)(e,"& .".concat(a.Z.bar),{borderRadius:5}),e})),u=(0,o.ZP)(d)((function(){return(0,i.Z)({height:6,borderRadius:3},"& .".concat(a.Z.bar),{borderRadius:3})}));function m(e){return(0,c.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,c.jsx)(l.Z,{sx:{width:"100%",mr:1},children:(0,c.jsx)(d,(0,r.Z)({variant:"determinate"},e))}),(0,c.jsx)(l.Z,{sx:{minWidth:35,fontSize:14},className:"value",children:"".concat(Math.round(e.value||0),"%")})]})}t.Z=function(e){var t=e.value,n=e.ready,i=e.indeterminate,o=e.withLabel,s=e.size,a=void 0===s?"regular":s,l={variant:i&&!n?"indeterminate":"determinate",value:n?100:t,color:100===t&&n?"success":100!==t||n?"primary":"error"};return o?(0,c.jsx)(m,(0,r.Z)({},l)):"small"===a?(0,c.jsx)(u,(0,r.Z)({},l)):(0,c.jsx)(d,(0,r.Z)({},l))}},15962:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return V}});var r=n(42982),i=n(70885),o=n(1413),s=n(72791),a=n(60364),l=n(95087),c=n(61889),d=n(36151),u=n(11135),m=n(25787),x=n(72426),h=n.n(x),p=n(32291),f=n(23814),g=n(26824),j=n(13048),b=n(56087),Z=n(26181),v=n.n(Z),y=n(45248),C=n(85531),S=n(92217),w=n(19913),P=n(28265),k=n(82839),N=n(18602),E=n(28182),T=n(80184),B=(0,m.Z)((function(e){return(0,u.Z)({objectGeneralTitle:{lineHeight:1,fontSize:50,color:"#696969"},generalUnit:{color:"#000",fontSize:12,fontWeight:"bold"},testUnitRes:{fontSize:60,color:"#081C42",fontWeight:"bold",textAlign:"right"},metricValContainer:{lineHeight:1,verticalAlign:"bottom"},objectsUnitRes:{fontSize:22,marginTop:6,color:"#696969",fontWeight:"bold",textAlign:"right"},objectsUnit:{color:"#696969",fontSize:16,fontWeight:"bold"},iconTd:{verticalAlign:"bottom"}})}))((function(e){var t=e.classes,n=e.title,r=e.icon,i=e.throughput,o=e.objects,s=(0,y.Am)(i),a="0",l="";return 0!==s.total&&(a=s.total.toString(),l="".concat(s.unit,"/s")),(0,T.jsxs)("table",{children:[(0,T.jsxs)("tr",{children:[(0,T.jsx)("td",{className:t.objectGeneralTitle,children:n}),(0,T.jsx)("td",{className:t.iconTd,children:r})]}),(0,T.jsxs)("tr",{children:[(0,T.jsx)("td",{className:(0,E.Z)(t.metricValContainer,t.testUnitRes),children:a}),(0,T.jsx)("td",{className:(0,E.Z)(t.metricValContainer,t.generalUnit),children:l})]}),(0,T.jsxs)("tr",{children:[(0,T.jsx)("td",{className:(0,E.Z)(t.metricValContainer,t.objectsUnitRes),children:o}),(0,T.jsx)("td",{className:(0,E.Z)(t.metricValContainer,t.objectsUnit),children:0!==o&&"Objs/S"})]})]})})),F=(0,m.Z)((function(e){return(0,u.Z)({actionButtons:{textAlign:"right"},descriptorLabel:{fontWeight:"bold",fontSize:14},resultsContainer:{backgroundColor:"#FBFAFA",borderTop:"#F1F1F1 1px solid",marginTop:30,padding:25},resultsIcon:{display:"flex",alignItems:"center","& svg":{fill:"#07193E"}},detailedItem:{display:"flex",alignItems:"center",justifyContent:"flex-start"},detailedVersion:{display:"flex",alignItems:"center",justifyContent:"flex-end"},serversTable:{width:"100%",marginTop:15,"& thead > tr > th":{textAlign:"left",padding:15,fontSize:14,fontWeight:"bold"},"& tbody > tr":{"&:last-of-type":{"& > td":{borderBottom:"#E2E2E2 1px solid"}},"& > td":{borderTop:"#E2E2E2 1px solid",padding:15,fontSize:14,"&:first-of-type":{borderLeft:"#E2E2E2 1px solid"},"&:last-of-type":{borderRight:"#E2E2E2 1px solid"}}}},serverIcon:{width:55},serverValue:{width:140},serverHost:{maxWidth:540,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},tableOverflow:{overflowX:"auto",paddingBottom:15},objectGeneral:{marginTop:15},initialResults:{fontSize:20,fontWeight:"bold",color:"#000",textAlign:"center"},download:{"& .min-icon":{width:35,height:35,color:"rgb(113,200,150)"}},upload:{"& .min-icon":{width:35,height:35,color:"rgb(66,127,172)"}}})}))((function(e){var t=e.classes,n=e.results,o=e.start,a=(0,s.useState)(!1),l=(0,i.Z)(a,2),d=l[0],u=l[1],m=n[n.length-1]||[],x=v()(m,"GETStats.servers",[])||[],h=v()(m,"PUTStats.servers",[])||[],p=v()(m,"GETStats.throughputPerSec",0),f=v()(m,"GETStats.objectsPerSec",0),g=v()(m,"PUTStats.throughputPerSec",0),b=v()(m,"PUTStats.objectsPerSec",0),Z=[];x.forEach((function(e){var t=e.endpoint,n=h.find((function(e){return e.endpoint===t})),r={getUnit:"-",getValue:"N/A",host:e.endpoint,putUnit:"-",putValue:"N/A"};if(e.err&&""!==e.err)r.getError=e.err,r.getUnit="-",r.getValue="N/A";else{var i=(0,y.Am)(e.throughputPerSec.toString());r.getUnit=i.unit,r.getValue=i.total.toString()}if(n)if(n.err&&""!==n.err)r.putError=n.err,r.putUnit="-",r.putValue="N/A";else{var o=(0,y.Am)(n.throughputPerSec.toString());r.putUnit=o.unit,r.putValue=o.total.toString()}Z.push(r)}));var E=m?JSON.stringify(m,null,4):"",F=function(e){var t=e.filter((function(e){return"0"!==e.version&&0!==e.disks})).map((function(e){var t,n;return{get:(null===(t=e.GETStats)||void 0===t?void 0:t.throughputPerSec)||0,put:(null===(n=e.PUTStats)||void 0===n?void 0:n.throughputPerSec)||0}}));return[{get:0,put:0}].concat((0,r.Z)(t))}(n);return(0,T.jsxs)(s.Fragment,{children:[(0,T.jsxs)(c.ZP,{container:!0,className:t.objectGeneral,children:[(0,T.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,T.jsxs)(c.ZP,{container:!0,className:t.objectGeneral,children:[(0,T.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,T.jsx)(B,{icon:(0,T.jsx)("div",{className:t.download,children:(0,T.jsx)(j.Q_,{})}),title:"GET",throughput:p,objects:f})}),(0,T.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,T.jsx)(B,{icon:(0,T.jsx)("div",{className:t.upload,children:(0,T.jsx)(j.jh,{})}),title:"PUT",throughput:g,objects:b})})]})}),(0,T.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,T.jsx)(w.h,{width:"99%",children:(0,T.jsxs)(P.T,{data:F,children:[(0,T.jsxs)("defs",{children:[(0,T.jsxs)("linearGradient",{id:"colorPut",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,T.jsx)("stop",{offset:"0%",stopColor:"#2781B0",stopOpacity:.9}),(0,T.jsx)("stop",{offset:"95%",stopColor:"#fff",stopOpacity:0})]}),(0,T.jsxs)("linearGradient",{id:"colorGet",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,T.jsx)("stop",{offset:"0%",stopColor:"#4CCB92",stopOpacity:.9}),(0,T.jsx)("stop",{offset:"95%",stopColor:"#fff",stopOpacity:0})]})]}),(0,T.jsx)(k.q,{strokeDasharray:"0 0",strokeWidth:1,strokeOpacity:.5,stroke:"#F1F1F1",vertical:!1}),(0,T.jsx)(N.u,{type:"monotone",dataKey:"get",stroke:"#4CCB92",fill:"url(#colorGet)",fillOpacity:.3,strokeWidth:2,dot:!1}),(0,T.jsx)(N.u,{type:"monotone",dataKey:"put",stroke:"#2781B0",fill:"url(#colorPut)",fillOpacity:.3,strokeWidth:2,dot:!1})]})})})]}),(0,T.jsx)("br",{}),F.length>1&&(0,T.jsxs)(s.Fragment,{children:[(0,T.jsxs)(c.ZP,{container:!0,children:[(0,T.jsx)(c.ZP,{item:!0,xs:12,md:6,className:t.descriptorLabel,children:o?(0,T.jsx)(s.Fragment,{children:"Preliminar Results:"}):(0,T.jsx)(s.Fragment,{children:d?"JSON Results:":"Detailed Results:"})}),(0,T.jsx)(c.ZP,{item:!0,xs:12,md:6,className:t.actionButtons,children:!o&&(0,T.jsxs)(s.Fragment,{children:[(0,T.jsx)(C.Z,{"aria-label":"Download",onClick:function(){var e=new Date,t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+JSON.stringify(m)),t.setAttribute("download","speedtest_results-".concat(e.toISOString(),".log")),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)},size:"large",children:(0,T.jsx)(j._8,{})}),"\xa0",(0,T.jsx)(C.Z,{"aria-label":"Download",onClick:function(){u(!d)},size:"large",children:(0,T.jsx)(j.iH,{})})]})})]}),(0,T.jsx)(c.ZP,{container:!0,className:t.resultsContainer,children:d?(0,T.jsx)(s.Fragment,{children:(0,T.jsx)(S.Z,{value:E,readOnly:!0,onBeforeChange:function(){}})}):(0,T.jsxs)(s.Fragment,{children:[(0,T.jsx)(c.ZP,{item:!0,xs:12,sm:12,md:1,lg:1,className:t.resultsIcon,alignItems:"flex-end",children:(0,T.jsx)(j.UM,{width:45})}),(0,T.jsxs)(c.ZP,{item:!0,xs:12,sm:6,md:3,lg:2,className:t.detailedItem,children:["Nodes:\xa0",(0,T.jsx)("strong",{children:m.servers})]}),(0,T.jsxs)(c.ZP,{item:!0,xs:12,sm:6,md:3,lg:2,className:t.detailedItem,children:["Drives:\xa0",(0,T.jsx)("strong",{children:m.disks})]}),(0,T.jsxs)(c.ZP,{item:!0,xs:12,sm:6,md:3,lg:2,className:t.detailedItem,children:["Concurrent:\xa0",(0,T.jsx)("strong",{children:m.concurrent})]}),(0,T.jsxs)(c.ZP,{item:!0,xs:12,sm:12,md:12,lg:5,className:t.detailedVersion,children:[(0,T.jsx)("span",{className:t.versionIcon,children:(0,T.jsx)(j.Db,{})})," ","MinIO VERSION\xa0",(0,T.jsx)("strong",{children:m.version})]}),(0,T.jsx)(c.ZP,{item:!0,xs:12,className:t.tableOverflow,children:(0,T.jsxs)("table",{className:t.serversTable,cellSpacing:0,cellPadding:0,children:[(0,T.jsx)("thead",{children:(0,T.jsxs)("tr",{children:[(0,T.jsx)("th",{colSpan:2,children:"Servers"}),(0,T.jsx)("th",{children:"GET"}),(0,T.jsx)("th",{children:"PUT"})]})}),(0,T.jsx)("tbody",{children:Z.map((function(e,n){return(0,T.jsxs)("tr",{children:[(0,T.jsx)("td",{className:t.serverIcon,children:(0,T.jsx)(j.id,{})}),(0,T.jsx)("td",{className:t.serverHost,children:e.host}),e.getError&&""!==e.getError?(0,T.jsx)("td",{children:e.getError}):(0,T.jsx)(s.Fragment,{children:(0,T.jsxs)("td",{className:t.serverValue,children:[(0,y.CE)(parseFloat(e.getValue)),"\xa0",e.getUnit,"/s."]})}),e.putError&&""!==e.putError?(0,T.jsx)("td",{children:e.putError}):(0,T.jsx)(s.Fragment,{children:(0,T.jsxs)("td",{className:t.serverValue,children:[(0,y.CE)(parseFloat(e.putValue)),"\xa0",e.putUnit,"/s."]})})]},"storage-".concat(n.toString()))}))})]})})]})})]})]})})),O=n(21435),I=n(87998),z=n(56578),A=n(74794),L=n(38442),R=n(47986),U=n(23804),G=n(89357),M=n(72401),V=(0,a.$j)((function(e){return{distributedSetup:e.system.distributedSetup}}),null)((0,m.Z)((function(e){return(0,u.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({advancedContent:{backgroundColor:"#FBFAFA",maxHeight:0,transitionDuration:"0.3s",overflow:"hidden",padding:"0 15px",marginTop:15,justifyContent:"space-between","&.open":{maxHeight:400,paddingBottom:15}},stepProgressText:{fontSize:13,marginBottom:8},advancedOption:{marginTop:20},advancedAutotune:{marginTop:10}},f.S),f.OR),f.qg),f.DF),(0,f.Bz)(e.spacing(4))))}))((function(e){var t=e.classes,n=e.distributedSetup,o=(0,s.useState)(!1),a=(0,i.Z)(o,2),u=a[0],m=a[1],x=(0,s.useState)(null),f=(0,i.Z)(x,2),Z=f[0],v=f[1],y=(0,s.useState)("64"),C=(0,i.Z)(y,2),S=C[0],w=C[1],P=(0,s.useState)("MB"),k=(0,i.Z)(P,2),N=k[0],E=k[1],B=(0,s.useState)(0),V=(0,i.Z)(B,2),W=V[0],_=V[1],D=(0,s.useState)(0),H=(0,i.Z)(D,2),J=H[0],K=H[1],Q=(0,s.useState)(0),q=(0,i.Z)(Q,2),Y=q[0],$=q[1],X=(0,s.useState)(0),ee=(0,i.Z)(X,2),te=ee[0],ne=ee[1];return(0,s.useEffect)((function(){if(u){var e=new URL(window.location.toString()),t=e.port,n=(0,g.x2)(e.protocol),i=new l.w3cwebsocket("".concat(n,"://").concat(e.hostname,":").concat(t,"/ws/speedtest?&size=").concat(S).concat(N)),o=h()(),s=o.unix()/1e3,a=o.add(2*parseInt("10"),"s").unix()/1e3,c=(a-s)/1e3;_(a),K(s),$(c);var d=null;if(null!==i)return i.onopen=function(){console.log("WebSocket Client Connected"),i.send("ok"),d=setInterval((function(){i.send("ok")}),1e4)},i.onmessage=function(e){var t=JSON.parse(e.data.toString());v((function(e){var n=[];e&&(n=(0,r.Z)(e));var i=0!==t.servers?[t]:[];return[].concat((0,r.Z)(n),i)}));var n=h()().unix()/1e3;K(n)},i.onclose=function(){clearInterval(d),console.log("connection closed by server"),m(!1)},function(){i.close(1e3),clearInterval(d),console.log("closing websockets")}}else m(!1)}),[S,N,u]),(0,s.useEffect)((function(){var e=100-100*((W-J)/1e3)/Y;e>100&&(e=100),ne(e)}),[u,J,W,Y]),(0,T.jsxs)(s.Fragment,{children:[(0,T.jsx)(p.Z,{label:"Performance"}),(0,T.jsx)(A.Z,{children:n?(0,T.jsxs)(L.s,{scopes:[b.Ft.ADMIN_HEAL],resource:b.C3,children:[(0,T.jsxs)(c.ZP,{item:!0,xs:12,className:t.boxy,children:[(0,T.jsxs)(c.ZP,{container:!0,children:[(0,T.jsxs)(c.ZP,{item:!0,md:6,sm:12,children:[(0,T.jsx)("div",{className:t.stepProgressText,children:u?(0,T.jsxs)(s.Fragment,{children:["Speedtest in progress...",(0,T.jsx)(M.Z,{style:{width:15,height:15}})]}):(0,T.jsx)(s.Fragment,{children:Z&&!u?(0,T.jsx)("b",{children:"Speed Test results:"}):(0,T.jsx)("b",{children:"Performance test"})})}),(0,T.jsx)("div",{children:(0,T.jsx)(I.Z,{value:te,ready:null!==Z&&!u,indeterminate:u,size:"small"})})]}),(0,T.jsx)(c.ZP,{item:!0,xs:4,children:(0,T.jsx)("div",{style:{marginLeft:10,width:300},children:(0,T.jsx)(O.Z,{id:"size",name:"size",label:"Object Size",onChange:function(e){w(e.target.value)},noLabelMinWidth:!0,value:S,disabled:u,overlayObject:(0,T.jsx)(z.Z,{id:"size-unit",onUnitChange:E,unitSelected:N,unitsList:[{label:"KiB",value:"KiB"},{label:"MiB",value:"MiB"},{label:"GiB",value:"GiB"}],disabled:u})})})}),(0,T.jsx)(c.ZP,{item:!0,xs:2,textAlign:"right",children:(0,T.jsxs)(d.Z,{onClick:function(){v(null),m(!0)},color:"primary",type:"button",id:"start-speed-test",variant:null===Z||u?"outlined":"contained",className:"".concat(t.buttonBackground," ").concat(t.speedStart),disabled:""==="10".trim()||""===S.trim()||u,children:[!u&&(0,T.jsx)(s.Fragment,{children:null!==Z?"Retest":"Start"}),u?"Start":""]})})]}),(0,T.jsx)(c.ZP,{container:!0,className:t.multiModule,children:(0,T.jsx)(c.ZP,{item:!0,xs:12,children:(0,T.jsx)(s.Fragment,{children:(0,T.jsx)(c.ZP,{item:!0,xs:12,children:null!==Z&&(0,T.jsx)(s.Fragment,{children:(0,T.jsx)(F,{results:Z,start:u})})})})})})]}),!u&&!Z&&(0,T.jsxs)(s.Fragment,{children:[(0,T.jsx)("br",{}),(0,T.jsx)(U.Z,{title:"During the speed test all your production traffic will be temporarily suspended.",iconComponent:(0,T.jsx)(G.Z,{}),help:(0,T.jsx)(s.Fragment,{})})]})]}):(0,T.jsx)(R.Z,{iconComponent:(0,T.jsx)(j.QB,{}),entity:"Speedtest"})})]})})))},26824:function(e,t,n){"use strict";n.d(t,{HE:function(){return o},V9:function(){return r},ci:function(){return i},x2:function(){return s}});var r=1006,i=1008,o=1011,s=function(e){var t="ws";return"https:"===e&&(t="wss"),t}},94210:function(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__}}()},95087:function(e,t,n){var r;if("object"===typeof globalThis)r=globalThis;else try{r=n(94210)}catch(a){}finally{if(r||"undefined"===typeof window||(r=window),!r)throw new Error("Could not determine global this")}var i=r.WebSocket||r.MozWebSocket,o=n(51496);function s(e,t){return t?new i(e,t):new i(e)}i&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(s,e,{get:function(){return i[e]}})})),e.exports={w3cwebsocket:i?s:null,version:o}},51496:function(e,t,n){e.exports=n(19794).version},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); +//# sourceMappingURL=380.02c7ec7f.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/380.02c7ec7f.chunk.js.map b/portal-ui/build/static/js/380.02c7ec7f.chunk.js.map new file mode 100644 index 000000000..f0fedb441 --- /dev/null +++ b/portal-ui/build/static/js/380.02c7ec7f.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/380.02c7ec7f.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/DistributedOnly/DistributedOnly.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/ProgressBarWrapper/ProgressBarWrapper.tsx","screens/Console/Speedtest/SpeedTestUnit.tsx","screens/Console/Speedtest/STResults.tsx","screens/Console/Speedtest/utils.ts","screens/Console/Speedtest/Speedtest.tsx","utils/wsUtils.ts","../node_modules/es5-ext/global.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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box, Grid } from \"@mui/material\";\nimport HelpBox from \"../../../../common/HelpBox\";\n\ninterface IDistributedOnly {\n iconComponent: any;\n entity: string;\n}\n\nconst DistributedOnly = ({ iconComponent, entity }: IDistributedOnly) => {\n return (\n \n \n theme.colors.link,\n textDecoration: \"underline\",\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, { useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport \"codemirror/theme/dracula.css\";\n/** Code mirror */\nimport CodeMirror, { Extension } from \"@uiw/react-codemirror\";\nimport { StreamLanguage } from \"@codemirror/stream-parser\";\nimport { json } from \"@codemirror/lang-json\";\nimport { yaml } from \"@codemirror/legacy-modes/mode/yaml\";\n\n/** Code mirror */\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon, EditorThemeSwitchIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { EditorView } from \"@codemirror/view\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst langHighlight: Record = {\n json,\n yaml: () => StreamLanguage.define(yaml),\n};\n\nconst lightTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#FBFAFA\",\n },\n \".cm-content\": {\n caretColor: \"#05122B\",\n },\n \"&.cm-focused .cm-cursor\": {\n borderLeftColor: \"#05122B\",\n },\n \".cm-gutters\": {\n backgroundColor: \"#FBFAFA\",\n color: \"#000000\",\n border: \"none\",\n },\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n color: \"#2781B0\",\n \"& .ͼc\": {\n color: \"#C83B51\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#dde1f1\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#05122B\",\n color: \"#ffffff\",\n },\n \".cm-selectionMatch\": {\n backgroundColor: \"#ebe7f1\",\n },\n \".cm-selectionLayer\": {\n fontWeight: 500,\n },\n \" .cm-selectionBackground\": {\n backgroundColor: \"#a180c7\",\n color: \"#ffffff\",\n },\n },\n {\n dark: false,\n }\n);\n\nconst darkTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#282a36\",\n color: \"#ffb86c\",\n },\n\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n \"& .ͼd, & .ͼc\": {\n color: \"#8e6cef\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#44475a\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#842de5\",\n color: \"#ff79c6\",\n },\n \".cm-selectionLayer .cm-selectionBackground\": {\n backgroundColor: \"green\",\n },\n },\n {\n dark: true,\n }\n);\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n const [isDarkTheme, setIsDarkTheme] = useState(false);\n\n //based on the language mode pick . default to json\n let extensionList: Extension[] = [];\n if (langHighlight[mode]) {\n extensionList = [...extensionList, langHighlight[mode]()];\n }\n\n return (\n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n \n
    \n
    \n\n \n \n {\n onBeforeChange(null, null, v);\n }}\n />\n \n \n \n {\n setIsDarkTheme(!isDarkTheme);\n }}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n {}}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n
    \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { styled } from \"@mui/material/styles\";\nimport LinearProgress, {\n linearProgressClasses,\n LinearProgressProps,\n} from \"@mui/material/LinearProgress\";\nimport Box from \"@mui/material/Box\";\n\ninterface IProgressBarWrapper {\n value: number;\n ready: boolean;\n indeterminate?: boolean;\n withLabel?: boolean;\n size?: string;\n}\n\nconst BorderLinearProgress = styled(LinearProgress)(() => ({\n height: 10,\n borderRadius: 5,\n [`&.${linearProgressClasses.colorPrimary}`]: {\n backgroundColor: \"#f1f1f1\",\n },\n [`& .${linearProgressClasses.bar}`]: {\n borderRadius: 5,\n },\n}));\nconst SmallBorderLinearProgress = styled(BorderLinearProgress)(() => ({\n height: 6,\n borderRadius: 3,\n [`& .${linearProgressClasses.bar}`]: {\n borderRadius: 3,\n },\n}));\n\nfunction LinearProgressWithLabel(props: LinearProgressProps) {\n return (\n \n \n \n \n \n {`${Math.round(props.value || 0)}%`}\n \n \n );\n}\n\nconst ProgressBarWrapper = ({\n value,\n ready,\n indeterminate,\n withLabel,\n size = \"regular\",\n}: IProgressBarWrapper) => {\n let color: any;\n if (value === 100 && ready) {\n color = \"success\";\n } else if (value === 100 && !ready) {\n color = \"error\";\n } else {\n color = \"primary\";\n }\n const propsComponent: LinearProgressProps = {\n variant: indeterminate && !ready ? \"indeterminate\" : \"determinate\",\n value: ready ? 100 : value,\n color: color,\n };\n if (withLabel) {\n return ;\n }\n if (size === \"small\") {\n return ;\n }\n\n return ;\n};\n\nexport default ProgressBarWrapper;\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 { calculateBytes } from \"../../../common/utils\";\nimport React from \"react\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n objectGeneralTitle: {\n lineHeight: 1,\n fontSize: 50,\n color: \"#696969\",\n },\n generalUnit: {\n color: \"#000\",\n fontSize: 12,\n fontWeight: \"bold\",\n },\n testUnitRes: {\n fontSize: 60,\n color: \"#081C42\",\n fontWeight: \"bold\",\n textAlign: \"right\",\n },\n metricValContainer: {\n lineHeight: 1,\n verticalAlign: \"bottom\",\n },\n objectsUnitRes: {\n fontSize: 22,\n marginTop: 6,\n color: \"#696969\",\n fontWeight: \"bold\",\n textAlign: \"right\",\n },\n objectsUnit: {\n color: \"#696969\",\n fontSize: 16,\n fontWeight: \"bold\",\n },\n iconTd: {\n verticalAlign: \"bottom\",\n },\n });\n\nconst SpeedTestUnit = ({\n classes,\n title,\n icon,\n throughput,\n objects,\n}: {\n classes: any;\n title: any;\n icon: any;\n throughput: string;\n objects: number;\n}) => {\n const avg = calculateBytes(throughput);\n\n let total = \"0\";\n let unit = \"\";\n\n if (avg.total !== 0) {\n total = avg.total.toString();\n unit = `${avg.unit}/s`;\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n {objects}\n \n \n \n
    {title}{icon}
    \n {total}\n \n {unit}\n
    \n {objects !== 0 && \"Objs/S\"}\n
    \n );\n};\nexport default withStyles(styles)(SpeedTestUnit);\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 get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid } from \"@mui/material\";\nimport { IndvServerMetric, SpeedTestResponse, STServer } from \"./types\";\nimport { calculateBytes, prettyNumber } from \"../../../common/utils\";\nimport {\n ComputerLineIcon,\n DownloadIcon,\n DownloadStatIcon,\n JSONIcon,\n StorageIcon,\n UploadStatIcon,\n VersionIcon,\n} from \"../../../icons\";\nimport BoxIconButton from \"../Common/BoxIconButton/BoxIconButton\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport { Area, AreaChart, CartesianGrid, ResponsiveContainer } from \"recharts\";\nimport { cleanMetrics } from \"./utils\";\nimport SpeedTestUnit from \"./SpeedTestUnit\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n actionButtons: {\n textAlign: \"right\",\n },\n descriptorLabel: {\n fontWeight: \"bold\",\n fontSize: 14,\n },\n resultsContainer: {\n backgroundColor: \"#FBFAFA\",\n borderTop: \"#F1F1F1 1px solid\",\n marginTop: 30,\n padding: 25,\n },\n resultsIcon: {\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n fill: \"#07193E\",\n },\n },\n detailedItem: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n },\n detailedVersion: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n },\n serversTable: {\n width: \"100%\",\n marginTop: 15,\n \"& thead > tr > th\": {\n textAlign: \"left\",\n padding: 15,\n fontSize: 14,\n fontWeight: \"bold\",\n },\n \"& tbody > tr\": {\n \"&:last-of-type\": {\n \"& > td\": {\n borderBottom: \"#E2E2E2 1px solid\",\n },\n },\n \"& > td\": {\n borderTop: \"#E2E2E2 1px solid\",\n padding: 15,\n fontSize: 14,\n \"&:first-of-type\": {\n borderLeft: \"#E2E2E2 1px solid\",\n },\n \"&:last-of-type\": {\n borderRight: \"#E2E2E2 1px solid\",\n },\n },\n },\n },\n serverIcon: {\n width: 55,\n },\n serverValue: {\n width: 140,\n },\n serverHost: {\n maxWidth: 540,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n tableOverflow: {\n overflowX: \"auto\",\n paddingBottom: 15,\n },\n objectGeneral: {\n marginTop: 15,\n },\n initialResults: {\n fontSize: 20,\n fontWeight: \"bold\",\n color: \"#000\",\n textAlign: \"center\",\n },\n download: {\n \"& .min-icon\": {\n width: 35,\n height: 35,\n color: \"rgb(113,200,150)\",\n },\n },\n upload: {\n \"& .min-icon\": {\n width: 35,\n height: 35,\n color: \"rgb(66,127,172)\",\n },\n },\n });\n\ninterface ISTResults {\n classes: any;\n results: SpeedTestResponse[];\n start: boolean;\n}\n\nconst STResults = ({ classes, results, start }: ISTResults) => {\n const [jsonView, setJsonView] = useState(false);\n\n const finalRes = results[results.length - 1] || [];\n\n const getServers: STServer[] = get(finalRes, \"GETStats.servers\", []) || [];\n const putServers: STServer[] = get(finalRes, \"PUTStats.servers\", []) || [];\n\n const getThroughput = get(finalRes, \"GETStats.throughputPerSec\", 0);\n const getObjects = get(finalRes, \"GETStats.objectsPerSec\", 0);\n\n const putThroughput = get(finalRes, \"PUTStats.throughputPerSec\", 0);\n const putObjects = get(finalRes, \"PUTStats.objectsPerSec\", 0);\n\n let statJoin: IndvServerMetric[] = [];\n\n getServers.forEach((item) => {\n const hostName = item.endpoint;\n const putMetric = putServers.find((item) => item.endpoint === hostName);\n\n let itemJoin: IndvServerMetric = {\n getUnit: \"-\",\n getValue: \"N/A\",\n host: item.endpoint,\n putUnit: \"-\",\n putValue: \"N/A\",\n };\n\n if (item.err && item.err !== \"\") {\n itemJoin.getError = item.err;\n itemJoin.getUnit = \"-\";\n itemJoin.getValue = \"N/A\";\n } else {\n const niceGet = calculateBytes(item.throughputPerSec.toString());\n\n itemJoin.getUnit = niceGet.unit;\n itemJoin.getValue = niceGet.total.toString();\n }\n\n if (putMetric) {\n if (putMetric.err && putMetric.err !== \"\") {\n itemJoin.putError = putMetric.err;\n itemJoin.putUnit = \"-\";\n itemJoin.putValue = \"N/A\";\n } else {\n const nicePut = calculateBytes(putMetric.throughputPerSec.toString());\n\n itemJoin.putUnit = nicePut.unit;\n itemJoin.putValue = nicePut.total.toString();\n }\n }\n\n statJoin.push(itemJoin);\n });\n\n const downloadResults = () => {\n const date = new Date();\n let element = document.createElement(\"a\");\n element.setAttribute(\n \"href\",\n \"data:text/plain;charset=utf-8,\" + JSON.stringify(finalRes)\n );\n element.setAttribute(\n \"download\",\n `speedtest_results-${date.toISOString()}.log`\n );\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n\n document.body.removeChild(element);\n };\n\n const toggleJSONView = () => {\n setJsonView(!jsonView);\n };\n\n const finalResJSON = finalRes ? JSON.stringify(finalRes, null, 4) : \"\";\n const clnMetrics = cleanMetrics(results);\n\n return (\n \n \n \n \n \n \n \n \n }\n title={\"GET\"}\n throughput={getThroughput}\n objects={getObjects}\n />\n \n \n \n \n \n }\n title={\"PUT\"}\n throughput={putThroughput}\n objects={putObjects}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n
    \n {clnMetrics.length > 1 && (\n \n \n \n {start ? (\n Preliminar Results:\n ) : (\n \n {jsonView ? \"JSON Results:\" : \"Detailed Results:\"}\n \n )}\n \n \n {!start && (\n \n \n \n \n  \n \n \n \n \n )}\n \n \n \n {jsonView ? (\n \n {}}\n />\n \n ) : (\n \n \n \n \n \n Nodes: {finalRes.servers}\n \n \n Drives: {finalRes.disks}\n \n \n Concurrent: {finalRes.concurrent}\n \n \n \n \n {\" \"}\n MinIO VERSION {finalRes.version}\n \n \n \n \n \n Servers\n GET\n PUT\n \n \n \n {statJoin.map((stats, index) => (\n \n \n \n \n {stats.host}\n {stats.getError && stats.getError !== \"\" ? (\n {stats.getError}\n ) : (\n \n \n {prettyNumber(parseFloat(stats.getValue))} \n {stats.getUnit}/s.\n \n \n )}\n {stats.putError && stats.putError !== \"\" ? (\n {stats.putError}\n ) : (\n \n \n {prettyNumber(parseFloat(stats.putValue))} \n {stats.putUnit}/s.\n \n \n )}\n \n ))}\n \n \n \n \n )}\n \n
    \n )}\n
    \n );\n};\n\nexport default withStyles(styles)(STResults);\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 { SpeedTestResponse } from \"./types\";\n\nexport const cleanMetrics = (results: SpeedTestResponse[]) => {\n const cleanRes = results.filter(\n (item) => item.version !== \"0\" && item.disks !== 0\n );\n\n const states = cleanRes.map((itemRes) => {\n return {\n get: itemRes.GETStats?.throughputPerSec || 0,\n put: itemRes.PUTStats?.throughputPerSec || 0,\n };\n });\n\n return [{ get: 0, put: 0 }, ...states];\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 { connect } from \"react-redux\";\nimport { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport { Button, Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport moment from \"moment/moment\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport {\n actionsTray,\n advancedFilterToggleStyles,\n containerForHeader,\n formFieldStyles,\n searchField,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { wsProtocol } from \"../../../utils/wsUtils\";\nimport { SpeedTestResponse } from \"./types\";\nimport { AppState } from \"../../../store\";\nimport { SpeedtestIcon } from \"../../../icons\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport STResults from \"./STResults\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ProgressBarWrapper from \"../Common/ProgressBarWrapper/ProgressBarWrapper\";\nimport InputUnitMenu from \"../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport { SecureComponent } from \"../../../common/SecureComponent\";\nimport DistributedOnly from \"../Common/DistributedOnly/DistributedOnly\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport WarnIcon from \"../../../icons/WarnIcon\";\nimport Loader from \"../Common/Loader/Loader\";\n\ninterface ISpeedtest {\n classes: any;\n distributedSetup: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n advancedContent: {\n backgroundColor: \"#FBFAFA\",\n maxHeight: 0,\n transitionDuration: \"0.3s\",\n overflow: \"hidden\",\n padding: \"0 15px\",\n marginTop: 15,\n justifyContent: \"space-between\",\n \"&.open\": {\n maxHeight: 400,\n paddingBottom: 15,\n },\n },\n\n stepProgressText: {\n fontSize: 13,\n marginBottom: 8,\n },\n advancedOption: {\n marginTop: 20,\n },\n advancedAutotune: {\n marginTop: 10,\n },\n ...advancedFilterToggleStyles,\n ...actionsTray,\n ...searchField,\n ...formFieldStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst Speedtest = ({ classes, distributedSetup }: ISpeedtest) => {\n const [start, setStart] = useState(false);\n\n const [currStatus, setCurrStatus] = useState(\n null\n );\n\n const [size, setSize] = useState(\"64\");\n const [sizeUnit, setSizeUnit] = useState(\"MB\");\n\n const [topDate, setTopDate] = useState(0);\n const [currentValue, setCurrentValue] = useState(0);\n const [totalSeconds, setTotalSeconds] = useState(0);\n const [speedometerValue, setSpeedometerValue] = useState(0);\n\n useEffect(() => {\n // begin watch if bucketName in bucketList and start pressed\n if (start) {\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 const wsProt = wsProtocol(url.protocol);\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}/ws/speedtest?&size=${size}${sizeUnit}`\n );\n\n const baseDate = moment();\n\n const currentTime = baseDate.unix() / 1000;\n\n const incrementDate =\n baseDate\n .add(parseInt(\"10\") * 2, \"s\" as moment.unitOfTime.DurationConstructor)\n .unix() / 1000;\n\n const totalSeconds = (incrementDate - currentTime) / 1000;\n\n setTopDate(incrementDate);\n setCurrentValue(currentTime);\n setTotalSeconds(totalSeconds);\n\n let interval: any | null = null;\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n c.send(\"ok\");\n interval = setInterval(() => {\n c.send(\"ok\");\n }, 10 * 1000);\n };\n c.onmessage = (message: IMessageEvent) => {\n const data: SpeedTestResponse = JSON.parse(message.data.toString());\n\n setCurrStatus((prevStatus) => {\n let prSt: SpeedTestResponse[] = [];\n if (prevStatus) {\n prSt = [...prevStatus];\n }\n\n const insertData = data.servers !== 0 ? [data] : [];\n return [...prSt, ...insertData];\n });\n\n const currTime = moment().unix() / 1000;\n setCurrentValue(currTime);\n };\n c.onclose = () => {\n clearInterval(interval);\n console.log(\"connection closed by server\");\n // reset start status\n setStart(false);\n };\n return () => {\n // close websocket on useEffect cleanup\n c.close(1000);\n clearInterval(interval);\n console.log(\"closing websockets\");\n };\n }\n } else {\n // reset start status\n setStart(false);\n }\n }, [size, sizeUnit, start]);\n\n useEffect(() => {\n const actualSeconds = (topDate - currentValue) / 1000;\n\n let percToDisplay = 100 - (actualSeconds * 100) / totalSeconds;\n\n if (percToDisplay > 100) {\n percToDisplay = 100;\n }\n\n setSpeedometerValue(percToDisplay);\n }, [start, currentValue, topDate, totalSeconds]);\n\n return (\n \n \n \n {!distributedSetup ? (\n }\n entity={\"Speedtest\"}\n />\n ) : (\n \n \n \n \n
    \n {start ? (\n \n Speedtest in progress...\n \n \n ) : (\n \n {currStatus && !start ? (\n Speed Test results:\n ) : (\n Performance test\n )}\n \n )}\n
    \n
    \n \n
    \n
    \n \n
    \n {\n setSize(e.target.value);\n }}\n noLabelMinWidth={true}\n value={size}\n disabled={start}\n overlayObject={\n \n }\n />\n
    \n
    \n \n {\n setCurrStatus(null);\n setStart(true);\n }}\n color=\"primary\"\n type=\"button\"\n id={\"start-speed-test\"}\n variant={\n currStatus !== null && !start ? \"contained\" : \"outlined\"\n }\n className={`${classes.buttonBackground} ${classes.speedStart}`}\n disabled={\"10\".trim() === \"\" || size.trim() === \"\" || start}\n >\n {!start && (\n \n {currStatus !== null ? \"Retest\" : \"Start\"}\n \n )}\n {start ? \"Start\" : \"\"}\n \n \n
    \n \n \n \n \n {currStatus !== null && (\n \n \n \n )}\n \n \n \n \n
    \n\n {!start && !currStatus && (\n \n
    \n }\n help={}\n />\n \n )}\n \n )}\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n distributedSetup: state.system.distributedSetup,\n});\n\nconst connector = connect(mapState, null);\n\nexport default connector(withStyles(styles)(Speedtest));\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseNormalClosure = 1000;\nexport const WSCloseCloseGoingAway = 1001;\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\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","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":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","useStyles","makeStyles","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","onClick","disabled","tooltip","icon","restProps","size","sx","borderWidth","borderStyle","opacity","contained","background","dark","light","children","rest","button","clsx","entity","flexFlow","md","colors","link","textDecoration","href","target","rel","langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","caretColor","borderLeftColor","borderRight","darkTheme","fieldBasic","inputLabel","value","label","mode","onBeforeChange","readOnly","editorHeight","useState","isDarkTheme","setIsDarkTheme","extensionList","tooltipContainer","placement","extensions","editable","basicSetup","onChange","v","vu","borderTop","justifyContent","pageContentStyles","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","actions","includes","Fragment","direction","sm","length","component","id","BorderLinearProgress","styled","LinearProgress","linearProgressClasses","SmallBorderLinearProgress","LinearProgressWithLabel","mr","minWidth","Math","round","ready","indeterminate","withLabel","propsComponent","objectGeneralTitle","lineHeight","generalUnit","testUnitRes","metricValContainer","verticalAlign","objectsUnitRes","objectsUnit","iconTd","throughput","objects","avg","calculateBytes","total","unit","toString","actionButtons","descriptorLabel","resultsContainer","resultsIcon","detailedItem","detailedVersion","serversTable","borderBottom","borderLeft","serverIcon","serverValue","serverHost","maxWidth","overflow","textOverflow","whiteSpace","tableOverflow","overflowX","objectGeneral","initialResults","download","upload","results","start","jsonView","setJsonView","finalRes","getServers","get","putServers","getThroughput","getObjects","putThroughput","putObjects","statJoin","forEach","hostName","endpoint","putMetric","find","itemJoin","getUnit","getValue","host","putUnit","putValue","err","getError","niceGet","throughputPerSec","putError","nicePut","push","finalResJSON","JSON","stringify","clnMetrics","states","filter","version","disks","map","itemRes","GETStats","put","PUTStats","cleanMetrics","Grid","lg","ResponsiveContainer","AreaChart","data","x1","y1","x2","y2","offset","stopColor","stopOpacity","CartesianGrid","strokeDasharray","strokeWidth","strokeOpacity","stroke","vertical","Area","type","dataKey","fillOpacity","dot","BoxIconButton","date","Date","element","document","createElement","setAttribute","toISOString","style","body","appendChild","click","removeChild","CodeMirrorWrapper","servers","concurrent","versionIcon","cellSpacing","cellPadding","colSpan","stats","index","prettyNumber","parseFloat","distributedSetup","advancedContent","maxHeight","transitionDuration","stepProgressText","advancedOption","advancedAutotune","advancedFilterToggleStyles","actionsTray","searchField","formFieldStyles","containerForHeader","spacing","setStart","currStatus","setCurrStatus","setSize","sizeUnit","setSizeUnit","topDate","setTopDate","currentValue","setCurrentValue","totalSeconds","setTotalSeconds","speedometerValue","setSpeedometerValue","useEffect","url","URL","window","location","port","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","baseDate","moment","currentTime","unix","incrementDate","add","parseInt","interval","onopen","log","send","setInterval","onmessage","message","parse","prevStatus","prSt","insertData","currTime","onclose","clearInterval","close","percToDisplay","PageHeader","PageLayout","SecureComponent","scopes","IAM_SCOPES","resource","CONSOLE_UI_RESOURCE","boxy","Loader","ProgressBarWrapper","InputBoxWrapper","name","e","noLabelMinWidth","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","Button","buttonBackground","speedStart","trim","multiModule","HelpBox","WarnIcon","DistributedOnly","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr","naiveFallback","self","Error","module","exports","this","globalThis","Object","defineProperty","prototype","configurable","error","__global__","_globalThis","require","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","prop"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/380.1e66f7fb.chunk.js b/portal-ui/build/static/js/380.1e66f7fb.chunk.js deleted file mode 100644 index 0af244ce4..000000000 --- a/portal-ui/build/static/js/380.1e66f7fb.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[380],{23804:function(e,t,n){"use strict";n(72791);var r=n(11135),i=n(25787),o=n(61889),s=n(80184);t.Z=(0,i.Z)((function(e){return(0,r.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var t=e.classes,n=e.iconComponent,r=e.title,i=e.help;return(0,s.jsx)("div",{className:t.root,children:(0,s.jsxs)(o.ZP,{container:!0,children:[(0,s.jsxs)(o.ZP,{item:!0,xs:12,className:t.leftItems,children:[n,r]}),(0,s.jsx)(o.ZP,{item:!0,xs:12,className:t.helpText,children:i})]})})}))},40603:function(e,t,n){"use strict";var r=n(1413),i=n(45987),o=(n(72791),n(85531)),s=n(72455),l=n(80184),a=["onClick","text","disabled","tooltip","icon"],c=(0,s.Z)((function(e){return{root:{padding:"7px",color:function(t){return function(t){var n=t.variant,r=t.color,i=e.palette.primary.main;return"primary"===r&&"contained"===n?i=e.palette.primary.contrastText:"primary"===r&&"outlined"===n?i=e.palette.primary.main:"secondary"===r&&(i=e.palette.secondary.main),i}(t)},borderColor:function(t){return"secondary"===t.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));t.Z=function(e){var t=c(e),n=e.onClick,s=e.text,d=void 0===s?"":s,u=e.disabled,x=void 0!==u&&u,m=e.tooltip,h=e.icon,p=void 0===h?null:h,f=(0,i.Z)(e,a);return(0,l.jsxs)(o.Z,(0,r.Z)((0,r.Z)({classes:t,tooltip:m||d,variant:"outlined",onClick:n,disabled:x,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},f),{},{children:[(0,l.jsx)("span",{children:d})," ",p]}))}},85531:function(e,t,n){"use strict";var r=n(1413),i=n(4942),o=n(45987),s=(n(72791),n(11135)),l=n(25787),a=n(13400),c=n(20068),d=n(28182),u=n(80184),x=["classes","children","variant","tooltip"];t.Z=(0,l.Z)((function(e){return(0,s.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var t=e.classes,n=e.children,s=e.variant,l=void 0===s?"outlined":s,m=e.tooltip,h=(0,o.Z)(e,x),p=(0,u.jsx)(a.Z,(0,r.Z)((0,r.Z)({},h),{},{className:(0,d.Z)(t.root,(0,i.Z)({},t.contained,"contained"===l)),children:n}));return m&&""!==m?(0,u.jsx)(c.Z,{title:m,children:(0,u.jsx)("span",{children:p})}):p}))},47986:function(e,t,n){"use strict";n(72791);var r=n(61889),i=n(64554),o=n(23804),s=n(80184);t.Z=function(e){var t=e.iconComponent,n=e.entity;return(0,s.jsx)(r.ZP,{container:!0,alignItems:"center",children:(0,s.jsx)(r.ZP,{item:!0,xs:12,children:(0,s.jsx)(o.Z,{title:"".concat(n," not available"),iconComponent:t,help:(0,s.jsxs)(i.Z,{sx:{fontSize:"14px",display:"flex",border:"none",flexFlow:{xs:"column",md:"row"},"& a":{color:function(e){return e.colors.link},textDecoration:"underline"}},children:[(0,s.jsx)("div",{children:"This feature is not available for a single-disk setup. "}),(0,s.jsxs)("div",{children:["Please deploy a server in"," ",(0,s.jsx)("a",{href:"https://docs.min.io/minio/baremetal/installation/deploy-minio-distributed.html?ref=con",target:"_blank",rel:"noreferrer",children:"Distributed Mode"})," ","to use this feature."]})]})})})})}},92217:function(e,t,n){"use strict";var r=n(42982),i=n(70885),o=n(1413),s=n(72791),l=n(61889),a=(n(2574),n(69874)),c=n(9461),d=n(73975),u=n(80745),x=n(30829),m=n(20068),h=n(64554),p=n(11135),f=n(25787),g=n(84570),j=n(23814),b=n(74833),Z=n(40603),v=n(78029),y=n.n(v),C=n(64294),S=n(80184),w={json:d.AV,yaml:function(){return c.i.define(u.r)}},P=C.tk.theme({"&":{backgroundColor:"#FBFAFA"},".cm-content":{caretColor:"#05122B"},"&.cm-focused .cm-cursor":{borderLeftColor:"#05122B"},".cm-gutters":{backgroundColor:"#FBFAFA",color:"#000000",border:"none"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px",color:"#2781B0","& .\u037cc":{color:"#C83B51"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#dde1f1"},".cm-matchingBracket":{backgroundColor:"#05122B",color:"#ffffff"},".cm-selectionMatch":{backgroundColor:"#ebe7f1"},".cm-selectionLayer":{fontWeight:500}," .cm-selectionBackground":{backgroundColor:"#a180c7",color:"#ffffff"}},{dark:!1}),k=C.tk.theme({"&":{backgroundColor:"#282a36",color:"#ffb86c"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px","& .\u037cd, & .\u037cc":{color:"#8e6cef"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#44475a"},".cm-matchingBracket":{backgroundColor:"#842de5",color:"#ff79c6"},".cm-selectionLayer .cm-selectionBackground":{backgroundColor:"green"}},{dark:!0});t.Z=(0,f.Z)((function(e){return(0,p.Z)((0,o.Z)((0,o.Z)({},j.YI),{},{inputLabel:(0,o.Z)((0,o.Z)({},j.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var t=e.value,n=e.label,o=void 0===n?"":n,c=e.tooltip,d=void 0===c?"":c,u=e.mode,p=void 0===u?"json":u,f=e.classes,j=e.onBeforeChange,v=e.readOnly,C=void 0!==v&&v,N=e.editorHeight,E=void 0===N?"250px":N,T=(0,s.useState)(!1),B=(0,i.Z)(T,2),F=B[0],O=B[1],I=[];return w[p]&&(I=[].concat((0,r.Z)(I),[w[p]()])),(0,S.jsxs)(s.Fragment,{children:[(0,S.jsxs)(x.Z,{className:f.inputLabel,children:[(0,S.jsx)("span",{children:o}),""!==d&&(0,S.jsx)("div",{className:f.tooltipContainer,children:(0,S.jsx)(m.Z,{title:d,placement:"top-start",children:(0,S.jsx)("div",{className:f.tooltip,children:(0,S.jsx)(g.Z,{})})})})]}),(0,S.jsx)(l.ZP,{item:!0,xs:12,children:(0,S.jsx)("br",{})}),(0,S.jsxs)(l.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,S.jsx)(l.ZP,{item:!0,xs:12,children:(0,S.jsx)(a.ZP,{value:t,theme:F?k:P,extensions:I,editable:!C,basicSetup:!0,height:E,onChange:function(e,t){j(null,null,e)}})}),(0,S.jsx)(l.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:F?"#282c34":"#f7f7f7"},children:(0,S.jsxs)(h.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:[(0,S.jsx)(Z.Z,{tooltip:"Change theme",onClick:function(){O(!F)},text:"",icon:(0,S.jsx)(b.EO,{}),color:"primary",variant:"outlined"}),(0,S.jsx)(y(),{text:t,children:(0,S.jsx)(Z.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,S.jsx)(b.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},74794:function(e,t,n){"use strict";var r=n(1413),i=(n(72791),n(61889)),o=n(11135),s=n(25787),l=n(23814),a=n(80184);t.Z=(0,s.Z)((function(e){return(0,o.Z)((0,r.Z)({},l.Bw))}))((function(e){var t=e.classes,n=e.className,r=void 0===n?"":n,o=e.children;return(0,a.jsx)("div",{className:t.contentSpacer,children:(0,a.jsx)(i.ZP,{container:!0,children:(0,a.jsx)(i.ZP,{item:!0,xs:12,className:r,children:o})})})}))},32291:function(e,t,n){"use strict";var r=n(72791),i=n(60364),o=n(61889),s=n(11135),l=n(25787),a=n(20890),c=n(13400),d=n(95466),u=n(84683),x=n(3925),m=n(74833),h=n(80184),p={toggleList:x.kQ},f=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),p);t.Z=f((0,l.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,n=e.label,i=e.actions,s=e.sidebarOpen,l=e.operatorMode,x=e.managerObjects,p=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(r.Fragment,{}):(0,h.jsxs)(o.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,h.jsx)("div",{className:t.logo,children:l?(0,h.jsx)(d.Z,{}):(0,h.jsx)(u.Z,{})}),(0,h.jsx)(a.Z,{variant:"h4",className:t.labelStyle,children:n})]}),f&&(0,h.jsx)(o.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,h.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.rightMenu,children:[i&&i,x&&x.length>0&&(0,h.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){p()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(m.gx,{})})]})]})})))},87998:function(e,t,n){"use strict";var r=n(1413),i=n(4942),o=(n(72791),n(47630)),s=n(40986),l=n(78917),a=n(64554),c=n(80184),d=(0,o.ZP)(s.Z)((function(){var e;return e={height:10,borderRadius:5},(0,i.Z)(e,"&.".concat(l.Z.colorPrimary),{backgroundColor:"#f1f1f1"}),(0,i.Z)(e,"& .".concat(l.Z.bar),{borderRadius:5}),e})),u=(0,o.ZP)(d)((function(){return(0,i.Z)({height:6,borderRadius:3},"& .".concat(l.Z.bar),{borderRadius:3})}));function x(e){return(0,c.jsxs)(a.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,c.jsx)(a.Z,{sx:{width:"100%",mr:1},children:(0,c.jsx)(d,(0,r.Z)({variant:"determinate"},e))}),(0,c.jsx)(a.Z,{sx:{minWidth:35,fontSize:14},className:"value",children:"".concat(Math.round(e.value||0),"%")})]})}t.Z=function(e){var t=e.value,n=e.ready,i=e.indeterminate,o=e.withLabel,s=e.size,l=void 0===s?"regular":s,a={variant:i&&!n?"indeterminate":"determinate",value:n?100:t,color:100===t&&n?"success":100!==t||n?"primary":"error"};return o?(0,c.jsx)(x,(0,r.Z)({},a)):"small"===l?(0,c.jsx)(u,(0,r.Z)({},a)):(0,c.jsx)(d,(0,r.Z)({},a))}},15962:function(e,t,n){"use strict";n.r(t),n.d(t,{default:function(){return V}});var r=n(42982),i=n(70885),o=n(1413),s=n(72791),l=n(60364),a=n(95087),c=n(61889),d=n(36151),u=n(11135),x=n(25787),m=n(72426),h=n.n(m),p=n(32291),f=n(23814),g=n(26824),j=n(74833),b=n(56087),Z=n(26181),v=n.n(Z),y=n(45248),C=n(85531),S=n(92217),w=n(19913),P=n(28265),k=n(82839),N=n(18602),E=n(28182),T=n(80184),B=(0,x.Z)((function(e){return(0,u.Z)({objectGeneralTitle:{lineHeight:1,fontSize:50,color:"#696969"},generalUnit:{color:"#000",fontSize:12,fontWeight:"bold"},testUnitRes:{fontSize:60,color:"#081C42",fontWeight:"bold",textAlign:"right"},metricValContainer:{lineHeight:1,verticalAlign:"bottom"},objectsUnitRes:{fontSize:22,marginTop:6,color:"#696969",fontWeight:"bold",textAlign:"right"},objectsUnit:{color:"#696969",fontSize:16,fontWeight:"bold"},iconTd:{verticalAlign:"bottom"}})}))((function(e){var t=e.classes,n=e.title,r=e.icon,i=e.throughput,o=e.objects,s=(0,y.Am)(i),l="0",a="";return 0!==s.total&&(l=s.total.toString(),a="".concat(s.unit,"/s")),(0,T.jsxs)("table",{children:[(0,T.jsxs)("tr",{children:[(0,T.jsx)("td",{className:t.objectGeneralTitle,children:n}),(0,T.jsx)("td",{className:t.iconTd,children:r})]}),(0,T.jsxs)("tr",{children:[(0,T.jsx)("td",{className:(0,E.Z)(t.metricValContainer,t.testUnitRes),children:l}),(0,T.jsx)("td",{className:(0,E.Z)(t.metricValContainer,t.generalUnit),children:a})]}),(0,T.jsxs)("tr",{children:[(0,T.jsx)("td",{className:(0,E.Z)(t.metricValContainer,t.objectsUnitRes),children:o}),(0,T.jsx)("td",{className:(0,E.Z)(t.metricValContainer,t.objectsUnit),children:0!==o&&"Objs/S"})]})]})})),F=(0,x.Z)((function(e){return(0,u.Z)({actionButtons:{textAlign:"right"},descriptorLabel:{fontWeight:"bold",fontSize:14},resultsContainer:{backgroundColor:"#FBFAFA",borderTop:"#F1F1F1 1px solid",marginTop:30,padding:25},resultsIcon:{display:"flex",alignItems:"center","& svg":{fill:"#07193E"}},detailedItem:{display:"flex",alignItems:"center",justifyContent:"flex-start"},detailedVersion:{display:"flex",alignItems:"center",justifyContent:"flex-end"},serversTable:{width:"100%",marginTop:15,"& thead > tr > th":{textAlign:"left",padding:15,fontSize:14,fontWeight:"bold"},"& tbody > tr":{"&:last-of-type":{"& > td":{borderBottom:"#E2E2E2 1px solid"}},"& > td":{borderTop:"#E2E2E2 1px solid",padding:15,fontSize:14,"&:first-of-type":{borderLeft:"#E2E2E2 1px solid"},"&:last-of-type":{borderRight:"#E2E2E2 1px solid"}}}},serverIcon:{width:55},serverValue:{width:140},serverHost:{maxWidth:540,overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap"},tableOverflow:{overflowX:"auto",paddingBottom:15},objectGeneral:{marginTop:15},initialResults:{fontSize:20,fontWeight:"bold",color:"#000",textAlign:"center"},download:{"& .min-icon":{width:35,height:35,color:"rgb(113,200,150)"}},upload:{"& .min-icon":{width:35,height:35,color:"rgb(66,127,172)"}}})}))((function(e){var t=e.classes,n=e.results,o=e.start,l=(0,s.useState)(!1),a=(0,i.Z)(l,2),d=a[0],u=a[1],x=n[n.length-1]||[],m=v()(x,"GETStats.servers",[])||[],h=v()(x,"PUTStats.servers",[])||[],p=v()(x,"GETStats.throughputPerSec",0),f=v()(x,"GETStats.objectsPerSec",0),g=v()(x,"PUTStats.throughputPerSec",0),b=v()(x,"PUTStats.objectsPerSec",0),Z=[];m.forEach((function(e){var t=e.endpoint,n=h.find((function(e){return e.endpoint===t})),r={getUnit:"-",getValue:"N/A",host:e.endpoint,putUnit:"-",putValue:"N/A"};if(e.err&&""!==e.err)r.getError=e.err,r.getUnit="-",r.getValue="N/A";else{var i=(0,y.Am)(e.throughputPerSec.toString());r.getUnit=i.unit,r.getValue=i.total.toString()}if(n)if(n.err&&""!==n.err)r.putError=n.err,r.putUnit="-",r.putValue="N/A";else{var o=(0,y.Am)(n.throughputPerSec.toString());r.putUnit=o.unit,r.putValue=o.total.toString()}Z.push(r)}));var E=x?JSON.stringify(x,null,4):"",F=function(e){var t=e.filter((function(e){return"0"!==e.version&&0!==e.disks})).map((function(e){var t,n;return{get:(null===(t=e.GETStats)||void 0===t?void 0:t.throughputPerSec)||0,put:(null===(n=e.PUTStats)||void 0===n?void 0:n.throughputPerSec)||0}}));return[{get:0,put:0}].concat((0,r.Z)(t))}(n);return(0,T.jsxs)(s.Fragment,{children:[(0,T.jsxs)(c.ZP,{container:!0,className:t.objectGeneral,children:[(0,T.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,T.jsxs)(c.ZP,{container:!0,className:t.objectGeneral,children:[(0,T.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,T.jsx)(B,{icon:(0,T.jsx)("div",{className:t.download,children:(0,T.jsx)(j.Q_,{})}),title:"GET",throughput:p,objects:f})}),(0,T.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,T.jsx)(B,{icon:(0,T.jsx)("div",{className:t.upload,children:(0,T.jsx)(j.jh,{})}),title:"PUT",throughput:g,objects:b})})]})}),(0,T.jsx)(c.ZP,{item:!0,xs:12,md:6,lg:6,children:(0,T.jsx)(w.h,{width:"99%",children:(0,T.jsxs)(P.T,{data:F,children:[(0,T.jsxs)("defs",{children:[(0,T.jsxs)("linearGradient",{id:"colorPut",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,T.jsx)("stop",{offset:"0%",stopColor:"#2781B0",stopOpacity:.9}),(0,T.jsx)("stop",{offset:"95%",stopColor:"#fff",stopOpacity:0})]}),(0,T.jsxs)("linearGradient",{id:"colorGet",x1:"0",y1:"0",x2:"0",y2:"1",children:[(0,T.jsx)("stop",{offset:"0%",stopColor:"#4CCB92",stopOpacity:.9}),(0,T.jsx)("stop",{offset:"95%",stopColor:"#fff",stopOpacity:0})]})]}),(0,T.jsx)(k.q,{strokeDasharray:"0 0",strokeWidth:1,strokeOpacity:.5,stroke:"#F1F1F1",vertical:!1}),(0,T.jsx)(N.u,{type:"monotone",dataKey:"get",stroke:"#4CCB92",fill:"url(#colorGet)",fillOpacity:.3,strokeWidth:2,dot:!1}),(0,T.jsx)(N.u,{type:"monotone",dataKey:"put",stroke:"#2781B0",fill:"url(#colorPut)",fillOpacity:.3,strokeWidth:2,dot:!1})]})})})]}),(0,T.jsx)("br",{}),F.length>1&&(0,T.jsxs)(s.Fragment,{children:[(0,T.jsxs)(c.ZP,{container:!0,children:[(0,T.jsx)(c.ZP,{item:!0,xs:12,md:6,className:t.descriptorLabel,children:o?(0,T.jsx)(s.Fragment,{children:"Preliminar Results:"}):(0,T.jsx)(s.Fragment,{children:d?"JSON Results:":"Detailed Results:"})}),(0,T.jsx)(c.ZP,{item:!0,xs:12,md:6,className:t.actionButtons,children:!o&&(0,T.jsxs)(s.Fragment,{children:[(0,T.jsx)(C.Z,{"aria-label":"Download",onClick:function(){var e=new Date,t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+JSON.stringify(x)),t.setAttribute("download","speedtest_results-".concat(e.toISOString(),".log")),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)},size:"large",children:(0,T.jsx)(j._8,{})}),"\xa0",(0,T.jsx)(C.Z,{"aria-label":"Download",onClick:function(){u(!d)},size:"large",children:(0,T.jsx)(j.iH,{})})]})})]}),(0,T.jsx)(c.ZP,{container:!0,className:t.resultsContainer,children:d?(0,T.jsx)(s.Fragment,{children:(0,T.jsx)(S.Z,{value:E,readOnly:!0,onBeforeChange:function(){}})}):(0,T.jsxs)(s.Fragment,{children:[(0,T.jsx)(c.ZP,{item:!0,xs:12,sm:12,md:1,lg:1,className:t.resultsIcon,alignItems:"flex-end",children:(0,T.jsx)(j.UM,{width:45})}),(0,T.jsxs)(c.ZP,{item:!0,xs:12,sm:6,md:3,lg:2,className:t.detailedItem,children:["Nodes:\xa0",(0,T.jsx)("strong",{children:x.servers})]}),(0,T.jsxs)(c.ZP,{item:!0,xs:12,sm:6,md:3,lg:2,className:t.detailedItem,children:["Drives:\xa0",(0,T.jsx)("strong",{children:x.disks})]}),(0,T.jsxs)(c.ZP,{item:!0,xs:12,sm:6,md:3,lg:2,className:t.detailedItem,children:["Concurrent:\xa0",(0,T.jsx)("strong",{children:x.concurrent})]}),(0,T.jsxs)(c.ZP,{item:!0,xs:12,sm:12,md:12,lg:5,className:t.detailedVersion,children:[(0,T.jsx)("span",{className:t.versionIcon,children:(0,T.jsx)(j.Db,{})})," ","MinIO VERSION\xa0",(0,T.jsx)("strong",{children:x.version})]}),(0,T.jsx)(c.ZP,{item:!0,xs:12,className:t.tableOverflow,children:(0,T.jsxs)("table",{className:t.serversTable,cellSpacing:0,cellPadding:0,children:[(0,T.jsx)("thead",{children:(0,T.jsxs)("tr",{children:[(0,T.jsx)("th",{colSpan:2,children:"Servers"}),(0,T.jsx)("th",{children:"GET"}),(0,T.jsx)("th",{children:"PUT"})]})}),(0,T.jsx)("tbody",{children:Z.map((function(e,n){return(0,T.jsxs)("tr",{children:[(0,T.jsx)("td",{className:t.serverIcon,children:(0,T.jsx)(j.id,{})}),(0,T.jsx)("td",{className:t.serverHost,children:e.host}),e.getError&&""!==e.getError?(0,T.jsx)("td",{children:e.getError}):(0,T.jsx)(s.Fragment,{children:(0,T.jsxs)("td",{className:t.serverValue,children:[(0,y.CE)(parseFloat(e.getValue)),"\xa0",e.getUnit,"/s."]})}),e.putError&&""!==e.putError?(0,T.jsx)("td",{children:e.putError}):(0,T.jsx)(s.Fragment,{children:(0,T.jsxs)("td",{className:t.serverValue,children:[(0,y.CE)(parseFloat(e.putValue)),"\xa0",e.putUnit,"/s."]})})]},"storage-".concat(n.toString()))}))})]})})]})})]})]})})),O=n(21435),I=n(87998),z=n(56578),A=n(74794),L=n(38442),R=n(47986),U=n(23804),G=n(89357),M=n(72401),V=(0,l.$j)((function(e){return{distributedSetup:e.system.distributedSetup}}),null)((0,x.Z)((function(e){return(0,u.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({advancedContent:{backgroundColor:"#FBFAFA",maxHeight:0,transitionDuration:"0.3s",overflow:"hidden",padding:"0 15px",marginTop:15,justifyContent:"space-between","&.open":{maxHeight:400,paddingBottom:15}},stepProgressText:{fontSize:13,marginBottom:8},advancedOption:{marginTop:20},advancedAutotune:{marginTop:10}},f.S),f.OR),f.qg),f.DF),(0,f.Bz)(e.spacing(4))))}))((function(e){var t=e.classes,n=e.distributedSetup,o=(0,s.useState)(!1),l=(0,i.Z)(o,2),u=l[0],x=l[1],m=(0,s.useState)(null),f=(0,i.Z)(m,2),Z=f[0],v=f[1],y=(0,s.useState)("64"),C=(0,i.Z)(y,2),S=C[0],w=C[1],P=(0,s.useState)("MB"),k=(0,i.Z)(P,2),N=k[0],E=k[1],B=(0,s.useState)(0),V=(0,i.Z)(B,2),W=V[0],_=V[1],D=(0,s.useState)(0),H=(0,i.Z)(D,2),J=H[0],K=H[1],Q=(0,s.useState)(0),q=(0,i.Z)(Q,2),Y=q[0],$=q[1],X=(0,s.useState)(0),ee=(0,i.Z)(X,2),te=ee[0],ne=ee[1];return(0,s.useEffect)((function(){if(u){var e=new URL(window.location.toString()),t=e.port,n=(0,g.x2)(e.protocol),i=new a.w3cwebsocket("".concat(n,"://").concat(e.hostname,":").concat(t,"/ws/speedtest?&size=").concat(S).concat(N)),o=h()(),s=o.unix()/1e3,l=o.add(2*parseInt("10"),"s").unix()/1e3,c=(l-s)/1e3;_(l),K(s),$(c);var d=null;if(null!==i)return i.onopen=function(){console.log("WebSocket Client Connected"),i.send("ok"),d=setInterval((function(){i.send("ok")}),1e4)},i.onmessage=function(e){var t=JSON.parse(e.data.toString());v((function(e){var n=[];e&&(n=(0,r.Z)(e));var i=0!==t.servers?[t]:[];return[].concat((0,r.Z)(n),i)}));var n=h()().unix()/1e3;K(n)},i.onclose=function(){clearInterval(d),console.log("connection closed by server"),x(!1)},function(){i.close(1e3),clearInterval(d),console.log("closing websockets")}}else x(!1)}),[S,N,u]),(0,s.useEffect)((function(){var e=100-100*((W-J)/1e3)/Y;e>100&&(e=100),ne(e)}),[u,J,W,Y]),(0,T.jsxs)(s.Fragment,{children:[(0,T.jsx)(p.Z,{label:"Performance"}),(0,T.jsx)(A.Z,{children:n?(0,T.jsxs)(L.s,{scopes:[b.Ft.ADMIN_HEAL],resource:b.C3,children:[(0,T.jsxs)(c.ZP,{item:!0,xs:12,className:t.boxy,children:[(0,T.jsxs)(c.ZP,{container:!0,children:[(0,T.jsxs)(c.ZP,{item:!0,md:6,sm:12,children:[(0,T.jsx)("div",{className:t.stepProgressText,children:u?(0,T.jsxs)(s.Fragment,{children:["Speedtest in progress...",(0,T.jsx)(M.Z,{style:{width:15,height:15}})]}):(0,T.jsx)(s.Fragment,{children:Z&&!u?(0,T.jsx)("b",{children:"Speed Test results:"}):(0,T.jsx)("b",{children:"Performance test"})})}),(0,T.jsx)("div",{children:(0,T.jsx)(I.Z,{value:te,ready:null!==Z&&!u,indeterminate:u,size:"small"})})]}),(0,T.jsx)(c.ZP,{item:!0,xs:4,children:(0,T.jsx)("div",{style:{marginLeft:10,width:300},children:(0,T.jsx)(O.Z,{id:"size",name:"size",label:"Object Size",onChange:function(e){w(e.target.value)},noLabelMinWidth:!0,value:S,disabled:u,overlayObject:(0,T.jsx)(z.Z,{id:"size-unit",onUnitChange:E,unitSelected:N,unitsList:[{label:"KiB",value:"KiB"},{label:"MiB",value:"MiB"},{label:"GiB",value:"GiB"}],disabled:u})})})}),(0,T.jsx)(c.ZP,{item:!0,xs:2,textAlign:"right",children:(0,T.jsxs)(d.Z,{onClick:function(){v(null),x(!0)},color:"primary",type:"button",id:"start-speed-test",variant:null===Z||u?"outlined":"contained",className:"".concat(t.buttonBackground," ").concat(t.speedStart),disabled:""==="10".trim()||""===S.trim()||u,children:[!u&&(0,T.jsx)(s.Fragment,{children:null!==Z?"Retest":"Start"}),u?"Start":""]})})]}),(0,T.jsx)(c.ZP,{container:!0,className:t.multiModule,children:(0,T.jsx)(c.ZP,{item:!0,xs:12,children:(0,T.jsx)(s.Fragment,{children:(0,T.jsx)(c.ZP,{item:!0,xs:12,children:null!==Z&&(0,T.jsx)(s.Fragment,{children:(0,T.jsx)(F,{results:Z,start:u})})})})})})]}),!u&&!Z&&(0,T.jsxs)(s.Fragment,{children:[(0,T.jsx)("br",{}),(0,T.jsx)(U.Z,{title:"During the speed test all your production traffic will be temporarily suspended.",iconComponent:(0,T.jsx)(G.Z,{}),help:(0,T.jsx)(s.Fragment,{})})]})]}):(0,T.jsx)(R.Z,{iconComponent:(0,T.jsx)(j.QB,{}),entity:"Speedtest"})})]})})))},26824:function(e,t,n){"use strict";n.d(t,{HE:function(){return o},V9:function(){return r},ci:function(){return i},x2:function(){return s}});var r=1006,i=1008,o=1011,s=function(e){var t="ws";return"https:"===e&&(t="wss"),t}},94210:function(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__}}()},95087:function(e,t,n){var r;if("object"===typeof globalThis)r=globalThis;else try{r=n(94210)}catch(l){}finally{if(r||"undefined"===typeof window||(r=window),!r)throw new Error("Could not determine global this")}var i=r.WebSocket||r.MozWebSocket,o=n(51496);function s(e,t){return t?new i(e,t):new i(e)}i&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(s,e,{get:function(){return i[e]}})})),e.exports={w3cwebsocket:i?s:null,version:o}},51496:function(e,t,n){e.exports=n(19794).version},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); -//# sourceMappingURL=380.1e66f7fb.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/380.1e66f7fb.chunk.js.map b/portal-ui/build/static/js/380.1e66f7fb.chunk.js.map deleted file mode 100644 index 7cff91792..000000000 --- a/portal-ui/build/static/js/380.1e66f7fb.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/380.1e66f7fb.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/DistributedOnly/DistributedOnly.tsx","screens/Console/Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/ProgressBarWrapper/ProgressBarWrapper.tsx","screens/Console/Speedtest/SpeedTestUnit.tsx","screens/Console/Speedtest/STResults.tsx","screens/Console/Speedtest/utils.ts","screens/Console/Speedtest/Speedtest.tsx","utils/wsUtils.ts","../node_modules/es5-ext/global.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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Box, Grid } from \"@mui/material\";\nimport HelpBox from \"../../../../common/HelpBox\";\n\ninterface IDistributedOnly {\n iconComponent: any;\n entity: string;\n}\n\nconst DistributedOnly = ({ iconComponent, entity }: IDistributedOnly) => {\n return (\n \n \n theme.colors.link,\n textDecoration: \"underline\",\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, { useState } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport \"codemirror/theme/dracula.css\";\n/** Code mirror */\nimport CodeMirror, { Extension } from \"@uiw/react-codemirror\";\nimport { StreamLanguage } from \"@codemirror/stream-parser\";\nimport { json } from \"@codemirror/lang-json\";\nimport { yaml } from \"@codemirror/legacy-modes/mode/yaml\";\n\n/** Code mirror */\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon, EditorThemeSwitchIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { EditorView } from \"@codemirror/view\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst langHighlight: Record = {\n json,\n yaml: () => StreamLanguage.define(yaml),\n};\n\nconst lightTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#FBFAFA\",\n },\n \".cm-content\": {\n caretColor: \"#05122B\",\n },\n \"&.cm-focused .cm-cursor\": {\n borderLeftColor: \"#05122B\",\n },\n \".cm-gutters\": {\n backgroundColor: \"#FBFAFA\",\n color: \"#000000\",\n border: \"none\",\n },\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n color: \"#2781B0\",\n \"& .ͼc\": {\n color: \"#C83B51\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#dde1f1\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#05122B\",\n color: \"#ffffff\",\n },\n \".cm-selectionMatch\": {\n backgroundColor: \"#ebe7f1\",\n },\n \".cm-selectionLayer\": {\n fontWeight: 500,\n },\n \" .cm-selectionBackground\": {\n backgroundColor: \"#a180c7\",\n color: \"#ffffff\",\n },\n },\n {\n dark: false,\n }\n);\n\nconst darkTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#282a36\",\n color: \"#ffb86c\",\n },\n\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n \"& .ͼd, & .ͼc\": {\n color: \"#8e6cef\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#44475a\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#842de5\",\n color: \"#ff79c6\",\n },\n \".cm-selectionLayer .cm-selectionBackground\": {\n backgroundColor: \"green\",\n },\n },\n {\n dark: true,\n }\n);\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n const [isDarkTheme, setIsDarkTheme] = useState(false);\n\n //based on the language mode pick . default to json\n let extensionList: Extension[] = [];\n if (langHighlight[mode]) {\n extensionList = [...extensionList, langHighlight[mode]()];\n }\n\n return (\n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n \n
    \n
    \n\n \n \n {\n onBeforeChange(null, null, v);\n }}\n />\n \n \n \n {\n setIsDarkTheme(!isDarkTheme);\n }}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n {}}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n
    \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { styled } from \"@mui/material/styles\";\nimport LinearProgress, {\n linearProgressClasses,\n LinearProgressProps,\n} from \"@mui/material/LinearProgress\";\nimport Box from \"@mui/material/Box\";\n\ninterface IProgressBarWrapper {\n value: number;\n ready: boolean;\n indeterminate?: boolean;\n withLabel?: boolean;\n size?: string;\n}\n\nconst BorderLinearProgress = styled(LinearProgress)(() => ({\n height: 10,\n borderRadius: 5,\n [`&.${linearProgressClasses.colorPrimary}`]: {\n backgroundColor: \"#f1f1f1\",\n },\n [`& .${linearProgressClasses.bar}`]: {\n borderRadius: 5,\n },\n}));\nconst SmallBorderLinearProgress = styled(BorderLinearProgress)(() => ({\n height: 6,\n borderRadius: 3,\n [`& .${linearProgressClasses.bar}`]: {\n borderRadius: 3,\n },\n}));\n\nfunction LinearProgressWithLabel(props: LinearProgressProps) {\n return (\n \n \n \n \n \n {`${Math.round(props.value || 0)}%`}\n \n \n );\n}\n\nconst ProgressBarWrapper = ({\n value,\n ready,\n indeterminate,\n withLabel,\n size = \"regular\",\n}: IProgressBarWrapper) => {\n let color: any;\n if (value === 100 && ready) {\n color = \"success\";\n } else if (value === 100 && !ready) {\n color = \"error\";\n } else {\n color = \"primary\";\n }\n const propsComponent: LinearProgressProps = {\n variant: indeterminate && !ready ? \"indeterminate\" : \"determinate\",\n value: ready ? 100 : value,\n color: color,\n };\n if (withLabel) {\n return ;\n }\n if (size === \"small\") {\n return ;\n }\n\n return ;\n};\n\nexport default ProgressBarWrapper;\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 { calculateBytes } from \"../../../common/utils\";\nimport React from \"react\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n objectGeneralTitle: {\n lineHeight: 1,\n fontSize: 50,\n color: \"#696969\",\n },\n generalUnit: {\n color: \"#000\",\n fontSize: 12,\n fontWeight: \"bold\",\n },\n testUnitRes: {\n fontSize: 60,\n color: \"#081C42\",\n fontWeight: \"bold\",\n textAlign: \"right\",\n },\n metricValContainer: {\n lineHeight: 1,\n verticalAlign: \"bottom\",\n },\n objectsUnitRes: {\n fontSize: 22,\n marginTop: 6,\n color: \"#696969\",\n fontWeight: \"bold\",\n textAlign: \"right\",\n },\n objectsUnit: {\n color: \"#696969\",\n fontSize: 16,\n fontWeight: \"bold\",\n },\n iconTd: {\n verticalAlign: \"bottom\",\n },\n });\n\nconst SpeedTestUnit = ({\n classes,\n title,\n icon,\n throughput,\n objects,\n}: {\n classes: any;\n title: any;\n icon: any;\n throughput: string;\n objects: number;\n}) => {\n const avg = calculateBytes(throughput);\n\n let total = \"0\";\n let unit = \"\";\n\n if (avg.total !== 0) {\n total = avg.total.toString();\n unit = `${avg.unit}/s`;\n }\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n {objects}\n \n \n \n
    {title}{icon}
    \n {total}\n \n {unit}\n
    \n {objects !== 0 && \"Objs/S\"}\n
    \n );\n};\nexport default withStyles(styles)(SpeedTestUnit);\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 get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid } from \"@mui/material\";\nimport { IndvServerMetric, SpeedTestResponse, STServer } from \"./types\";\nimport { calculateBytes, prettyNumber } from \"../../../common/utils\";\nimport {\n ComputerLineIcon,\n DownloadIcon,\n DownloadStatIcon,\n JSONIcon,\n StorageIcon,\n UploadStatIcon,\n VersionIcon,\n} from \"../../../icons\";\nimport BoxIconButton from \"../Common/BoxIconButton/BoxIconButton\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\nimport { Area, AreaChart, CartesianGrid, ResponsiveContainer } from \"recharts\";\nimport { cleanMetrics } from \"./utils\";\nimport SpeedTestUnit from \"./SpeedTestUnit\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n actionButtons: {\n textAlign: \"right\",\n },\n descriptorLabel: {\n fontWeight: \"bold\",\n fontSize: 14,\n },\n resultsContainer: {\n backgroundColor: \"#FBFAFA\",\n borderTop: \"#F1F1F1 1px solid\",\n marginTop: 30,\n padding: 25,\n },\n resultsIcon: {\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n fill: \"#07193E\",\n },\n },\n detailedItem: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n },\n detailedVersion: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"flex-end\",\n },\n serversTable: {\n width: \"100%\",\n marginTop: 15,\n \"& thead > tr > th\": {\n textAlign: \"left\",\n padding: 15,\n fontSize: 14,\n fontWeight: \"bold\",\n },\n \"& tbody > tr\": {\n \"&:last-of-type\": {\n \"& > td\": {\n borderBottom: \"#E2E2E2 1px solid\",\n },\n },\n \"& > td\": {\n borderTop: \"#E2E2E2 1px solid\",\n padding: 15,\n fontSize: 14,\n \"&:first-of-type\": {\n borderLeft: \"#E2E2E2 1px solid\",\n },\n \"&:last-of-type\": {\n borderRight: \"#E2E2E2 1px solid\",\n },\n },\n },\n },\n serverIcon: {\n width: 55,\n },\n serverValue: {\n width: 140,\n },\n serverHost: {\n maxWidth: 540,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n },\n tableOverflow: {\n overflowX: \"auto\",\n paddingBottom: 15,\n },\n objectGeneral: {\n marginTop: 15,\n },\n initialResults: {\n fontSize: 20,\n fontWeight: \"bold\",\n color: \"#000\",\n textAlign: \"center\",\n },\n download: {\n \"& .min-icon\": {\n width: 35,\n height: 35,\n color: \"rgb(113,200,150)\",\n },\n },\n upload: {\n \"& .min-icon\": {\n width: 35,\n height: 35,\n color: \"rgb(66,127,172)\",\n },\n },\n });\n\ninterface ISTResults {\n classes: any;\n results: SpeedTestResponse[];\n start: boolean;\n}\n\nconst STResults = ({ classes, results, start }: ISTResults) => {\n const [jsonView, setJsonView] = useState(false);\n\n const finalRes = results[results.length - 1] || [];\n\n const getServers: STServer[] = get(finalRes, \"GETStats.servers\", []) || [];\n const putServers: STServer[] = get(finalRes, \"PUTStats.servers\", []) || [];\n\n const getThroughput = get(finalRes, \"GETStats.throughputPerSec\", 0);\n const getObjects = get(finalRes, \"GETStats.objectsPerSec\", 0);\n\n const putThroughput = get(finalRes, \"PUTStats.throughputPerSec\", 0);\n const putObjects = get(finalRes, \"PUTStats.objectsPerSec\", 0);\n\n let statJoin: IndvServerMetric[] = [];\n\n getServers.forEach((item) => {\n const hostName = item.endpoint;\n const putMetric = putServers.find((item) => item.endpoint === hostName);\n\n let itemJoin: IndvServerMetric = {\n getUnit: \"-\",\n getValue: \"N/A\",\n host: item.endpoint,\n putUnit: \"-\",\n putValue: \"N/A\",\n };\n\n if (item.err && item.err !== \"\") {\n itemJoin.getError = item.err;\n itemJoin.getUnit = \"-\";\n itemJoin.getValue = \"N/A\";\n } else {\n const niceGet = calculateBytes(item.throughputPerSec.toString());\n\n itemJoin.getUnit = niceGet.unit;\n itemJoin.getValue = niceGet.total.toString();\n }\n\n if (putMetric) {\n if (putMetric.err && putMetric.err !== \"\") {\n itemJoin.putError = putMetric.err;\n itemJoin.putUnit = \"-\";\n itemJoin.putValue = \"N/A\";\n } else {\n const nicePut = calculateBytes(putMetric.throughputPerSec.toString());\n\n itemJoin.putUnit = nicePut.unit;\n itemJoin.putValue = nicePut.total.toString();\n }\n }\n\n statJoin.push(itemJoin);\n });\n\n const downloadResults = () => {\n const date = new Date();\n let element = document.createElement(\"a\");\n element.setAttribute(\n \"href\",\n \"data:text/plain;charset=utf-8,\" + JSON.stringify(finalRes)\n );\n element.setAttribute(\n \"download\",\n `speedtest_results-${date.toISOString()}.log`\n );\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n\n document.body.removeChild(element);\n };\n\n const toggleJSONView = () => {\n setJsonView(!jsonView);\n };\n\n const finalResJSON = finalRes ? JSON.stringify(finalRes, null, 4) : \"\";\n const clnMetrics = cleanMetrics(results);\n\n return (\n \n \n \n \n \n \n \n \n }\n title={\"GET\"}\n throughput={getThroughput}\n objects={getObjects}\n />\n \n \n \n \n \n }\n title={\"PUT\"}\n throughput={putThroughput}\n objects={putObjects}\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n \n\n \n \n \n \n \n \n
    \n {clnMetrics.length > 1 && (\n \n \n \n {start ? (\n Preliminar Results:\n ) : (\n \n {jsonView ? \"JSON Results:\" : \"Detailed Results:\"}\n \n )}\n \n \n {!start && (\n \n \n \n \n  \n \n \n \n \n )}\n \n \n \n {jsonView ? (\n \n {}}\n />\n \n ) : (\n \n \n \n \n \n Nodes: {finalRes.servers}\n \n \n Drives: {finalRes.disks}\n \n \n Concurrent: {finalRes.concurrent}\n \n \n \n \n {\" \"}\n MinIO VERSION {finalRes.version}\n \n \n \n \n \n Servers\n GET\n PUT\n \n \n \n {statJoin.map((stats, index) => (\n \n \n \n \n {stats.host}\n {stats.getError && stats.getError !== \"\" ? (\n {stats.getError}\n ) : (\n \n \n {prettyNumber(parseFloat(stats.getValue))} \n {stats.getUnit}/s.\n \n \n )}\n {stats.putError && stats.putError !== \"\" ? (\n {stats.putError}\n ) : (\n \n \n {prettyNumber(parseFloat(stats.putValue))} \n {stats.putUnit}/s.\n \n \n )}\n \n ))}\n \n \n \n \n )}\n \n
    \n )}\n
    \n );\n};\n\nexport default withStyles(styles)(STResults);\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 { SpeedTestResponse } from \"./types\";\n\nexport const cleanMetrics = (results: SpeedTestResponse[]) => {\n const cleanRes = results.filter(\n (item) => item.version !== \"0\" && item.disks !== 0\n );\n\n const states = cleanRes.map((itemRes) => {\n return {\n get: itemRes.GETStats?.throughputPerSec || 0,\n put: itemRes.PUTStats?.throughputPerSec || 0,\n };\n });\n\n return [{ get: 0, put: 0 }, ...states];\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 { connect } from \"react-redux\";\nimport { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport { Button, Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport moment from \"moment/moment\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport {\n actionsTray,\n advancedFilterToggleStyles,\n containerForHeader,\n formFieldStyles,\n searchField,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { wsProtocol } from \"../../../utils/wsUtils\";\nimport { SpeedTestResponse } from \"./types\";\nimport { AppState } from \"../../../store\";\nimport { SpeedtestIcon } from \"../../../icons\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport STResults from \"./STResults\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ProgressBarWrapper from \"../Common/ProgressBarWrapper/ProgressBarWrapper\";\nimport InputUnitMenu from \"../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport { SecureComponent } from \"../../../common/SecureComponent\";\nimport DistributedOnly from \"../Common/DistributedOnly/DistributedOnly\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport WarnIcon from \"../../../icons/WarnIcon\";\nimport Loader from \"../Common/Loader/Loader\";\n\ninterface ISpeedtest {\n classes: any;\n distributedSetup: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n advancedContent: {\n backgroundColor: \"#FBFAFA\",\n maxHeight: 0,\n transitionDuration: \"0.3s\",\n overflow: \"hidden\",\n padding: \"0 15px\",\n marginTop: 15,\n justifyContent: \"space-between\",\n \"&.open\": {\n maxHeight: 400,\n paddingBottom: 15,\n },\n },\n\n stepProgressText: {\n fontSize: 13,\n marginBottom: 8,\n },\n advancedOption: {\n marginTop: 20,\n },\n advancedAutotune: {\n marginTop: 10,\n },\n ...advancedFilterToggleStyles,\n ...actionsTray,\n ...searchField,\n ...formFieldStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst Speedtest = ({ classes, distributedSetup }: ISpeedtest) => {\n const [start, setStart] = useState(false);\n\n const [currStatus, setCurrStatus] = useState(\n null\n );\n\n const [size, setSize] = useState(\"64\");\n const [sizeUnit, setSizeUnit] = useState(\"MB\");\n\n const [topDate, setTopDate] = useState(0);\n const [currentValue, setCurrentValue] = useState(0);\n const [totalSeconds, setTotalSeconds] = useState(0);\n const [speedometerValue, setSpeedometerValue] = useState(0);\n\n useEffect(() => {\n // begin watch if bucketName in bucketList and start pressed\n if (start) {\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 const wsProt = wsProtocol(url.protocol);\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}/ws/speedtest?&size=${size}${sizeUnit}`\n );\n\n const baseDate = moment();\n\n const currentTime = baseDate.unix() / 1000;\n\n const incrementDate =\n baseDate\n .add(parseInt(\"10\") * 2, \"s\" as moment.unitOfTime.DurationConstructor)\n .unix() / 1000;\n\n const totalSeconds = (incrementDate - currentTime) / 1000;\n\n setTopDate(incrementDate);\n setCurrentValue(currentTime);\n setTotalSeconds(totalSeconds);\n\n let interval: any | null = null;\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n c.send(\"ok\");\n interval = setInterval(() => {\n c.send(\"ok\");\n }, 10 * 1000);\n };\n c.onmessage = (message: IMessageEvent) => {\n const data: SpeedTestResponse = JSON.parse(message.data.toString());\n\n setCurrStatus((prevStatus) => {\n let prSt: SpeedTestResponse[] = [];\n if (prevStatus) {\n prSt = [...prevStatus];\n }\n\n const insertData = data.servers !== 0 ? [data] : [];\n return [...prSt, ...insertData];\n });\n\n const currTime = moment().unix() / 1000;\n setCurrentValue(currTime);\n };\n c.onclose = () => {\n clearInterval(interval);\n console.log(\"connection closed by server\");\n // reset start status\n setStart(false);\n };\n return () => {\n // close websocket on useEffect cleanup\n c.close(1000);\n clearInterval(interval);\n console.log(\"closing websockets\");\n };\n }\n } else {\n // reset start status\n setStart(false);\n }\n }, [size, sizeUnit, start]);\n\n useEffect(() => {\n const actualSeconds = (topDate - currentValue) / 1000;\n\n let percToDisplay = 100 - (actualSeconds * 100) / totalSeconds;\n\n if (percToDisplay > 100) {\n percToDisplay = 100;\n }\n\n setSpeedometerValue(percToDisplay);\n }, [start, currentValue, topDate, totalSeconds]);\n\n return (\n \n \n \n {!distributedSetup ? (\n }\n entity={\"Speedtest\"}\n />\n ) : (\n \n \n \n \n
    \n {start ? (\n \n Speedtest in progress...\n \n \n ) : (\n \n {currStatus && !start ? (\n Speed Test results:\n ) : (\n Performance test\n )}\n \n )}\n
    \n
    \n \n
    \n
    \n \n
    \n {\n setSize(e.target.value);\n }}\n noLabelMinWidth={true}\n value={size}\n disabled={start}\n overlayObject={\n \n }\n />\n
    \n
    \n \n {\n setCurrStatus(null);\n setStart(true);\n }}\n color=\"primary\"\n type=\"button\"\n id={\"start-speed-test\"}\n variant={\n currStatus !== null && !start ? \"contained\" : \"outlined\"\n }\n className={`${classes.buttonBackground} ${classes.speedStart}`}\n disabled={\"10\".trim() === \"\" || size.trim() === \"\" || start}\n >\n {!start && (\n \n {currStatus !== null ? \"Retest\" : \"Start\"}\n \n )}\n {start ? \"Start\" : \"\"}\n \n \n
    \n \n \n \n \n {currStatus !== null && (\n \n \n \n )}\n \n \n \n \n
    \n\n {!start && !currStatus && (\n \n
    \n }\n help={}\n />\n \n )}\n \n )}\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n distributedSetup: state.system.distributedSetup,\n});\n\nconst connector = connect(mapState, null);\n\nexport default connector(withStyles(styles)(Speedtest));\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseNormalClosure = 1000;\nexport const WSCloseCloseGoingAway = 1001;\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\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","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":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","useStyles","makeStyles","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","onClick","disabled","tooltip","icon","restProps","size","sx","borderWidth","borderStyle","opacity","contained","background","dark","light","children","rest","button","clsx","entity","flexFlow","md","colors","link","textDecoration","href","target","rel","langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","caretColor","borderLeftColor","borderRight","darkTheme","fieldBasic","inputLabel","value","label","mode","onBeforeChange","readOnly","editorHeight","useState","isDarkTheme","setIsDarkTheme","extensionList","tooltipContainer","placement","extensions","editable","basicSetup","onChange","v","vu","borderTop","justifyContent","pageContentStyles","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","actions","includes","Fragment","direction","sm","length","component","id","BorderLinearProgress","styled","LinearProgress","linearProgressClasses","SmallBorderLinearProgress","LinearProgressWithLabel","mr","minWidth","Math","round","ready","indeterminate","withLabel","propsComponent","objectGeneralTitle","lineHeight","generalUnit","testUnitRes","metricValContainer","verticalAlign","objectsUnitRes","objectsUnit","iconTd","throughput","objects","avg","calculateBytes","total","unit","toString","actionButtons","descriptorLabel","resultsContainer","resultsIcon","detailedItem","detailedVersion","serversTable","borderBottom","borderLeft","serverIcon","serverValue","serverHost","maxWidth","overflow","textOverflow","whiteSpace","tableOverflow","overflowX","objectGeneral","initialResults","download","upload","results","start","jsonView","setJsonView","finalRes","getServers","get","putServers","getThroughput","getObjects","putThroughput","putObjects","statJoin","forEach","hostName","endpoint","putMetric","find","itemJoin","getUnit","getValue","host","putUnit","putValue","err","getError","niceGet","throughputPerSec","putError","nicePut","push","finalResJSON","JSON","stringify","clnMetrics","states","filter","version","disks","map","itemRes","GETStats","put","PUTStats","cleanMetrics","Grid","lg","ResponsiveContainer","AreaChart","data","x1","y1","x2","y2","offset","stopColor","stopOpacity","CartesianGrid","strokeDasharray","strokeWidth","strokeOpacity","stroke","vertical","Area","type","dataKey","fillOpacity","dot","BoxIconButton","date","Date","element","document","createElement","setAttribute","toISOString","style","body","appendChild","click","removeChild","CodeMirrorWrapper","servers","concurrent","versionIcon","cellSpacing","cellPadding","colSpan","stats","index","prettyNumber","parseFloat","distributedSetup","advancedContent","maxHeight","transitionDuration","stepProgressText","advancedOption","advancedAutotune","advancedFilterToggleStyles","actionsTray","searchField","formFieldStyles","containerForHeader","spacing","setStart","currStatus","setCurrStatus","setSize","sizeUnit","setSizeUnit","topDate","setTopDate","currentValue","setCurrentValue","totalSeconds","setTotalSeconds","speedometerValue","setSpeedometerValue","useEffect","url","URL","window","location","port","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","baseDate","moment","currentTime","unix","incrementDate","add","parseInt","interval","onopen","log","send","setInterval","onmessage","message","parse","prevStatus","prSt","insertData","currTime","onclose","clearInterval","close","percToDisplay","PageHeader","PageLayout","SecureComponent","scopes","IAM_SCOPES","resource","CONSOLE_UI_RESOURCE","boxy","Loader","ProgressBarWrapper","InputBoxWrapper","name","e","noLabelMinWidth","overlayObject","InputUnitMenu","onUnitChange","unitSelected","unitsList","Button","buttonBackground","speedStart","trim","multiModule","HelpBox","WarnIcon","DistributedOnly","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr","naiveFallback","self","Error","module","exports","this","globalThis","Object","defineProperty","prototype","configurable","error","__global__","_globalThis","require","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","prop"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/3956.cee5c63f.chunk.js b/portal-ui/build/static/js/3956.4456b432.chunk.js similarity index 89% rename from portal-ui/build/static/js/3956.cee5c63f.chunk.js rename to portal-ui/build/static/js/3956.4456b432.chunk.js index 13d2e8e9f..dd4bbd495 100644 --- a/portal-ui/build/static/js/3956.cee5c63f.chunk.js +++ b/portal-ui/build/static/js/3956.4456b432.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3956],{23956:function(e,n,t){t.r(n);var r=t(70885),c=(t(72791),t(60364)),o=t(11135),s=t(25787),a=t(51691),i=t(42649),u=t(9505),l=t(23508),f=t(74833),p=t(80184),d={setErrorSnackMessage:i.Ih},h=(0,c.$j)(null,d);n.default=(0,s.Z)((function(e){return(0,o.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}})}))(h((function(e){var n=e.classes,t=e.closeDeleteModalAndRefresh,c=e.deleteOpen,o=e.selectedServiceAccount,s=e.setErrorSnackMessage,i=(0,u.Z)((function(){return t(!0)}),(function(e){return s(e)})),d=(0,r.Z)(i,2),h=d[0],x=d[1];if(!o)return null;return(0,p.jsx)(l.Z,{title:"Delete Service Account",confirmText:"Delete",isOpen:c,titleIcon:(0,p.jsx)(f.Nv,{}),isLoading:h,onConfirm:function(){x("DELETE","/api/v1/service-accounts/".concat(o))},onClose:function(){return t(!1)},confirmationContent:(0,p.jsxs)(a.Z,{children:["Are you sure you want to delete service account"," ",(0,p.jsx)("b",{className:n.wrapText,children:o}),"?"]})})})))}}]); -//# sourceMappingURL=3956.cee5c63f.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[3956],{23956:function(e,n,t){t.r(n);var r=t(70885),c=(t(72791),t(60364)),o=t(11135),s=t(25787),a=t(51691),i=t(42649),u=t(9505),l=t(23508),f=t(13048),p=t(80184),d={setErrorSnackMessage:i.Ih},h=(0,c.$j)(null,d);n.default=(0,s.Z)((function(e){return(0,o.Z)({wrapText:{maxWidth:"200px",whiteSpace:"normal",wordWrap:"break-word"}})}))(h((function(e){var n=e.classes,t=e.closeDeleteModalAndRefresh,c=e.deleteOpen,o=e.selectedServiceAccount,s=e.setErrorSnackMessage,i=(0,u.Z)((function(){return t(!0)}),(function(e){return s(e)})),d=(0,r.Z)(i,2),h=d[0],x=d[1];if(!o)return null;return(0,p.jsx)(l.Z,{title:"Delete Service Account",confirmText:"Delete",isOpen:c,titleIcon:(0,p.jsx)(f.Nv,{}),isLoading:h,onConfirm:function(){x("DELETE","/api/v1/service-accounts/".concat(o))},onClose:function(){return t(!1)},confirmationContent:(0,p.jsxs)(a.Z,{children:["Are you sure you want to delete service account"," ",(0,p.jsx)("b",{className:n.wrapText,children:o}),"?"]})})})))}}]); +//# sourceMappingURL=3956.4456b432.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/3956.cee5c63f.chunk.js.map b/portal-ui/build/static/js/3956.4456b432.chunk.js.map similarity index 98% rename from portal-ui/build/static/js/3956.cee5c63f.chunk.js.map rename to portal-ui/build/static/js/3956.4456b432.chunk.js.map index 1f4aba6aa..9849ac812 100644 --- a/portal-ui/build/static/js/3956.cee5c63f.chunk.js.map +++ b/portal-ui/build/static/js/3956.4456b432.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/3956.cee5c63f.chunk.js","mappings":"gPAwFMA,EAAqB,CACzBC,qBAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAEhC,WAAeI,EAAAA,EAAAA,IAlEA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,SAAU,CACRC,SAAU,QACVC,WAAY,SACZC,SAAU,kBA6DhB,CAAkCR,GAjDL,SAAC,GAMK,IALjCS,EAKgC,EALhCA,QACAC,EAIgC,EAJhCA,2BACAC,EAGgC,EAHhCA,WACAC,EAEgC,EAFhCA,uBACAb,EACgC,EADhCA,qBAMA,GAAyCc,EAAAA,EAAAA,IAJpB,kBAAMH,GAA2B,MACnC,SAACI,GAAD,OAA+Bf,EAAqBe,MAGvE,eAAOC,EAAP,KAAsBC,EAAtB,KAEA,IAAKJ,EACH,OAAO,KAUT,OACE,SAAC,IAAD,CACEK,MAAK,yBACLC,YAAa,SACbC,OAAQR,EACRS,WAAW,SAAC,KAAD,IACXC,UAAWN,EACXO,UAdoB,WACtBN,EACE,SADa,mCAEeJ,KAY5BW,QAvBY,kBAAMb,GAA2B,IAwB7Cc,qBACE,UAAC,IAAD,6DACkD,KAChD,cAAGC,UAAWhB,EAAQJ,SAAtB,SAAiCO,IAFnC","sources":["screens/Console/Account/DeleteServiceAccount.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { DialogContentText } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n wrapText: {\n maxWidth: \"200px\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\",\n },\n });\n\ninterface IDeleteServiceAccountProps {\n classes: any;\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedServiceAccount: string | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteServiceAccount = ({\n classes,\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedServiceAccount,\n setErrorSnackMessage,\n}: IDeleteServiceAccountProps) => {\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedServiceAccount) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/service-accounts/${selectedServiceAccount}`\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 service account{\" \"}\n {selectedServiceAccount}?\n \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(DeleteServiceAccount));\n"],"names":["mapDispatchToProps","setErrorSnackMessage","connector","connect","withStyles","theme","createStyles","wrapText","maxWidth","whiteSpace","wordWrap","classes","closeDeleteModalAndRefresh","deleteOpen","selectedServiceAccount","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","onClose","confirmationContent","className"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/3956.4456b432.chunk.js","mappings":"gPAwFMA,EAAqB,CACzBC,qBAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAEhC,WAAeI,EAAAA,EAAAA,IAlEA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,SAAU,CACRC,SAAU,QACVC,WAAY,SACZC,SAAU,kBA6DhB,CAAkCR,GAjDL,SAAC,GAMK,IALjCS,EAKgC,EALhCA,QACAC,EAIgC,EAJhCA,2BACAC,EAGgC,EAHhCA,WACAC,EAEgC,EAFhCA,uBACAb,EACgC,EADhCA,qBAMA,GAAyCc,EAAAA,EAAAA,IAJpB,kBAAMH,GAA2B,MACnC,SAACI,GAAD,OAA+Bf,EAAqBe,MAGvE,eAAOC,EAAP,KAAsBC,EAAtB,KAEA,IAAKJ,EACH,OAAO,KAUT,OACE,SAAC,IAAD,CACEK,MAAK,yBACLC,YAAa,SACbC,OAAQR,EACRS,WAAW,SAAC,KAAD,IACXC,UAAWN,EACXO,UAdoB,WACtBN,EACE,SADa,mCAEeJ,KAY5BW,QAvBY,kBAAMb,GAA2B,IAwB7Cc,qBACE,UAAC,IAAD,6DACkD,KAChD,cAAGC,UAAWhB,EAAQJ,SAAtB,SAAiCO,IAFnC","sources":["screens/Console/Account/DeleteServiceAccount.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { DialogContentText } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n wrapText: {\n maxWidth: \"200px\",\n whiteSpace: \"normal\",\n wordWrap: \"break-word\",\n },\n });\n\ninterface IDeleteServiceAccountProps {\n classes: any;\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedServiceAccount: string | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteServiceAccount = ({\n classes,\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedServiceAccount,\n setErrorSnackMessage,\n}: IDeleteServiceAccountProps) => {\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedServiceAccount) {\n return null;\n }\n\n const onConfirmDelete = () => {\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/service-accounts/${selectedServiceAccount}`\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 service account{\" \"}\n {selectedServiceAccount}?\n \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(DeleteServiceAccount));\n"],"names":["mapDispatchToProps","setErrorSnackMessage","connector","connect","withStyles","theme","createStyles","wrapText","maxWidth","whiteSpace","wordWrap","classes","closeDeleteModalAndRefresh","deleteOpen","selectedServiceAccount","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","onClose","confirmationContent","className"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/402.5425871a.chunk.js b/portal-ui/build/static/js/402.0d6fb459.chunk.js similarity index 96% rename from portal-ui/build/static/js/402.5425871a.chunk.js rename to portal-ui/build/static/js/402.0d6fb459.chunk.js index ed6a786b4..e5c4dc7ce 100644 --- a/portal-ui/build/static/js/402.5425871a.chunk.js +++ b/portal-ui/build/static/js/402.0d6fb459.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[402],{70402:function(n,e,o){o.r(e);var i=o(70885),t=o(72791),s=o(60364),r=o(51691),a=o(81207),c=o(42649),l=o(23508),d=o(74833),u=o(80184),m=(0,s.$j)(null,{setErrorSnackMessage:c.Ih});e.default=m((function(n){var e=n.closeVersioningModalAndRefresh,o=n.modalOpen,s=n.selectedBucket,c=n.versioningCurrentState,m=n.setErrorSnackMessage,f=(0,t.useState)(!1),v=(0,i.Z)(f,2),x=v[0],p=v[1];return(0,u.jsx)(l.Z,{title:"Versioning on Bucket",confirmText:c?"Disable":"Enable",isOpen:o,isLoading:x,titleIcon:(0,u.jsx)(d.Ej,{}),onConfirm:function(){x||(p(!0),a.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/versioning"),{versioning:!c}).then((function(){p(!1),e(!0)})).catch((function(n){p(!1),m(n)})))},confirmButtonProps:{color:"primary",variant:"contained"},onClose:function(){e(!1)},confirmationContent:(0,u.jsxs)(r.Z,{id:"alert-dialog-description",children:["Are you sure you want to"," ",(0,u.jsx)("strong",{children:c?"disable":"enable"})," ","versioning for this bucket?",c&&(0,u.jsxs)(t.Fragment,{children:[(0,u.jsx)("br",{}),(0,u.jsx)("br",{}),(0,u.jsx)("strong",{children:"File versions won't be automatically deleted."})]})]})})}))},23508:function(n,e,o){var i=o(1413),t=o(72791),s=o(5574),r=o(65661),a=o(39157),c=o(97123),l=o(36151),d=o(59860),u=o(13400),m=o(29823),f=o(11135),v=o(25787),x=o(23814),p=o(80184);e.Z=(0,v.Z)((function(n){return(0,f.Z)((0,i.Z)({},x.Qw))}))((function(n){var e=n.isOpen,o=void 0!==e&&e,f=n.onClose,v=n.onCancel,x=n.onConfirm,h=n.classes,j=void 0===h?{}:h,Z=n.title,C=void 0===Z?"":Z,b=n.isLoading,g=n.confirmationContent,k=n.cancelText,N=void 0===k?"Cancel":k,y=n.confirmText,B=void 0===y?"Confirm":y,P=n.confirmButtonProps,w=void 0===P?{}:P,M=n.cancelButtonProps,T=void 0===M?{}:M,E=n.titleIcon,F=void 0===E?null:E;return(0,p.jsxs)(s.Z,{open:o,onClose:function(n,e){"backdropClick"!==e&&f()},className:j.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,p.jsxs)(r.Z,{className:j.title,children:[(0,p.jsxs)("div",{className:j.titleText,children:[F," ",C]}),(0,p.jsx)("div",{className:j.closeContainer,children:(0,p.jsx)(u.Z,{"aria-label":"close",className:j.closeButton,onClick:f,disableRipple:!0,size:"small",children:(0,p.jsx)(m.Z,{})})})]}),(0,p.jsx)(a.Z,{className:j.content,children:g}),(0,p.jsxs)(c.Z,{className:j.actions,children:[(0,p.jsx)(l.Z,(0,i.Z)((0,i.Z)({className:j.cancelButton,onClick:v||f,disabled:b,type:"button"},T),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:N})),(0,p.jsx)(d.Z,(0,i.Z)((0,i.Z)({className:j.confirmButton,type:"button",onClick:x,loading:b,disabled:b,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,p.jsx)(t.Fragment,{}),autoFocus:!0,id:"confirm-ok"},w),{},{children:B}))]})]})}))},29823:function(n,e,o){var i=o(95318);e.Z=void 0;var t=i(o(45649)),s=o(80184),r=(0,t.default)((0,s.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");e.Z=r}}]); -//# sourceMappingURL=402.5425871a.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[402],{70402:function(n,e,o){o.r(e);var i=o(70885),t=o(72791),s=o(60364),r=o(51691),a=o(81207),c=o(42649),l=o(23508),d=o(13048),u=o(80184),m=(0,s.$j)(null,{setErrorSnackMessage:c.Ih});e.default=m((function(n){var e=n.closeVersioningModalAndRefresh,o=n.modalOpen,s=n.selectedBucket,c=n.versioningCurrentState,m=n.setErrorSnackMessage,f=(0,t.useState)(!1),v=(0,i.Z)(f,2),x=v[0],p=v[1];return(0,u.jsx)(l.Z,{title:"Versioning on Bucket",confirmText:c?"Disable":"Enable",isOpen:o,isLoading:x,titleIcon:(0,u.jsx)(d.Ej,{}),onConfirm:function(){x||(p(!0),a.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/versioning"),{versioning:!c}).then((function(){p(!1),e(!0)})).catch((function(n){p(!1),m(n)})))},confirmButtonProps:{color:"primary",variant:"contained"},onClose:function(){e(!1)},confirmationContent:(0,u.jsxs)(r.Z,{id:"alert-dialog-description",children:["Are you sure you want to"," ",(0,u.jsx)("strong",{children:c?"disable":"enable"})," ","versioning for this bucket?",c&&(0,u.jsxs)(t.Fragment,{children:[(0,u.jsx)("br",{}),(0,u.jsx)("br",{}),(0,u.jsx)("strong",{children:"File versions won't be automatically deleted."})]})]})})}))},23508:function(n,e,o){var i=o(1413),t=o(72791),s=o(5574),r=o(65661),a=o(39157),c=o(97123),l=o(36151),d=o(59860),u=o(13400),m=o(29823),f=o(11135),v=o(25787),x=o(23814),p=o(80184);e.Z=(0,v.Z)((function(n){return(0,f.Z)((0,i.Z)({},x.Qw))}))((function(n){var e=n.isOpen,o=void 0!==e&&e,f=n.onClose,v=n.onCancel,x=n.onConfirm,h=n.classes,j=void 0===h?{}:h,Z=n.title,C=void 0===Z?"":Z,b=n.isLoading,g=n.confirmationContent,k=n.cancelText,N=void 0===k?"Cancel":k,y=n.confirmText,B=void 0===y?"Confirm":y,P=n.confirmButtonProps,w=void 0===P?{}:P,M=n.cancelButtonProps,T=void 0===M?{}:M,E=n.titleIcon,F=void 0===E?null:E;return(0,p.jsxs)(s.Z,{open:o,onClose:function(n,e){"backdropClick"!==e&&f()},className:j.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,p.jsxs)(r.Z,{className:j.title,children:[(0,p.jsxs)("div",{className:j.titleText,children:[F," ",C]}),(0,p.jsx)("div",{className:j.closeContainer,children:(0,p.jsx)(u.Z,{"aria-label":"close",className:j.closeButton,onClick:f,disableRipple:!0,size:"small",children:(0,p.jsx)(m.Z,{})})})]}),(0,p.jsx)(a.Z,{className:j.content,children:g}),(0,p.jsxs)(c.Z,{className:j.actions,children:[(0,p.jsx)(l.Z,(0,i.Z)((0,i.Z)({className:j.cancelButton,onClick:v||f,disabled:b,type:"button"},T),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:N})),(0,p.jsx)(d.Z,(0,i.Z)((0,i.Z)({className:j.confirmButton,type:"button",onClick:x,loading:b,disabled:b,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,p.jsx)(t.Fragment,{}),autoFocus:!0,id:"confirm-ok"},w),{},{children:B}))]})]})}))},29823:function(n,e,o){var i=o(95318);e.Z=void 0;var t=i(o(45649)),s=o(80184),r=(0,t.default)((0,s.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");e.Z=r}}]); +//# sourceMappingURL=402.0d6fb459.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/402.5425871a.chunk.js.map b/portal-ui/build/static/js/402.0d6fb459.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/402.5425871a.chunk.js.map rename to portal-ui/build/static/js/402.0d6fb459.chunk.js.map index dd774e50c..09b891f22 100644 --- a/portal-ui/build/static/js/402.5425871a.chunk.js.map +++ b/portal-ui/build/static/js/402.0d6fb459.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/402.5425871a.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/EnableVersioningModal.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","../node_modules/@mui/icons-material/Close.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, { useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport api from \"../../../../common/api\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmModalIcon } from \"../../../../icons\";\n\ninterface IVersioningEventProps {\n closeVersioningModalAndRefresh: (refresh: boolean) => void;\n modalOpen: boolean;\n selectedBucket: string;\n versioningCurrentState: boolean;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst EnableVersioningModal = ({\n closeVersioningModalAndRefresh,\n modalOpen,\n selectedBucket,\n versioningCurrentState,\n setErrorSnackMessage,\n}: IVersioningEventProps) => {\n const [versioningLoading, setVersioningLoading] = useState(false);\n\n const enableVersioning = () => {\n if (versioningLoading) {\n return;\n }\n setVersioningLoading(true);\n\n api\n .invoke(\"PUT\", `/api/v1/buckets/${selectedBucket}/versioning`, {\n versioning: !versioningCurrentState,\n })\n .then(() => {\n setVersioningLoading(false);\n closeVersioningModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setVersioningLoading(false);\n setErrorSnackMessage(err);\n });\n };\n\n return (\n }\n onConfirm={enableVersioning}\n confirmButtonProps={{\n color: \"primary\",\n variant: \"contained\",\n }}\n onClose={() => {\n closeVersioningModalAndRefresh(false);\n }}\n confirmationContent={\n \n Are you sure you want to{\" \"}\n {versioningCurrentState ? \"disable\" : \"enable\"}{\" \"}\n versioning for this bucket?\n {versioningCurrentState && (\n \n
    \n
    \n File versions won't be automatically deleted.\n
    \n )}\n
    \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default connector(EnableVersioningModal);\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["connector","connect","setErrorSnackMessage","closeVersioningModalAndRefresh","modalOpen","selectedBucket","versioningCurrentState","useState","versioningLoading","setVersioningLoading","title","confirmText","isOpen","isLoading","titleIcon","onConfirm","api","versioning","then","catch","err","confirmButtonProps","color","variant","onClose","confirmationContent","id","Fragment","withStyles","theme","createStyles","deleteDialogStyles","onCancel","classes","cancelText","cancelButtonProps","open","event","reason","className","root","sx","padding","titleText","closeContainer","closeButton","onClick","disableRipple","size","content","actions","cancelButton","disabled","type","confirmButton","loading","loadingPosition","startIcon","autoFocus","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/402.0d6fb459.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/EnableVersioningModal.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","../node_modules/@mui/icons-material/Close.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, { useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport api from \"../../../../common/api\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmModalIcon } from \"../../../../icons\";\n\ninterface IVersioningEventProps {\n closeVersioningModalAndRefresh: (refresh: boolean) => void;\n modalOpen: boolean;\n selectedBucket: string;\n versioningCurrentState: boolean;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst EnableVersioningModal = ({\n closeVersioningModalAndRefresh,\n modalOpen,\n selectedBucket,\n versioningCurrentState,\n setErrorSnackMessage,\n}: IVersioningEventProps) => {\n const [versioningLoading, setVersioningLoading] = useState(false);\n\n const enableVersioning = () => {\n if (versioningLoading) {\n return;\n }\n setVersioningLoading(true);\n\n api\n .invoke(\"PUT\", `/api/v1/buckets/${selectedBucket}/versioning`, {\n versioning: !versioningCurrentState,\n })\n .then(() => {\n setVersioningLoading(false);\n closeVersioningModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setVersioningLoading(false);\n setErrorSnackMessage(err);\n });\n };\n\n return (\n }\n onConfirm={enableVersioning}\n confirmButtonProps={{\n color: \"primary\",\n variant: \"contained\",\n }}\n onClose={() => {\n closeVersioningModalAndRefresh(false);\n }}\n confirmationContent={\n \n Are you sure you want to{\" \"}\n {versioningCurrentState ? \"disable\" : \"enable\"}{\" \"}\n versioning for this bucket?\n {versioningCurrentState && (\n \n
    \n
    \n File versions won't be automatically deleted.\n
    \n )}\n
    \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default connector(EnableVersioningModal);\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["connector","connect","setErrorSnackMessage","closeVersioningModalAndRefresh","modalOpen","selectedBucket","versioningCurrentState","useState","versioningLoading","setVersioningLoading","title","confirmText","isOpen","isLoading","titleIcon","onConfirm","api","versioning","then","catch","err","confirmButtonProps","color","variant","onClose","confirmationContent","id","Fragment","withStyles","theme","createStyles","deleteDialogStyles","onCancel","classes","cancelText","cancelButtonProps","open","event","reason","className","root","sx","padding","titleText","closeContainer","closeButton","onClick","disableRipple","size","content","actions","cancelButton","disabled","type","confirmButton","loading","loadingPosition","startIcon","autoFocus","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4061.4ef26026.chunk.js b/portal-ui/build/static/js/4061.4ef26026.chunk.js new file mode 100644 index 000000000..25bf7bbc9 --- /dev/null +++ b/portal-ui/build/static/js/4061.4ef26026.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4061,8771,8896,9134],{84669:function(e,n,t){t(72791);var i=t(91523),a=t(11135),r=t(25787),o=t(13048),s=t(64554),l=t(80184);n.Z=(0,r.Z)((function(e){return(0,a.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var n=e.to,t=e.label,a=e.classes,r=e.className,c=e.executeOnClick;return(0,l.jsx)(s.Z,{sx:{display:"flex",alignItems:"center"},children:(0,l.jsx)(i.rU,{to:n,className:"".concat(a.link," ").concat(r||""),onClick:function(){c&&c()},children:(0,l.jsxs)("div",{className:a.iconBox,children:[(0,l.jsx)("div",{className:a.icon,children:(0,l.jsx)(o.xN,{})}),(0,l.jsx)("div",{className:a.label,children:t})]})})})}))},40603:function(e,n,t){var i=t(1413),a=t(45987),r=(t(72791),t(85531)),o=t(72455),s=t(80184),l=["onClick","text","disabled","tooltip","icon","className"],c=(0,o.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,i=n.color,a=e.palette.primary.main;return"primary"===i&&"contained"===t?a=e.palette.primary.contrastText:"primary"===i&&"outlined"===t?a=e.palette.primary.main:"secondary"===i&&(a=e.palette.secondary.main),a}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=c(e),t=e.onClick,o=e.text,d=void 0===o?"":o,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,f=e.icon,x=void 0===f?null:f,h=e.className,Z=void 0===h?"":h,g=(0,a.Z)(e,l);return(0,s.jsxs)(r.Z,(0,i.Z)((0,i.Z)({className:Z,classes:n,tooltip:p||d,variant:"outlined",onClick:t,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},g),{},{children:[(0,s.jsx)("span",{children:d})," ",x]}))}},85531:function(e,n,t){var i=t(1413),a=t(4942),r=t(45987),o=(t(72791),t(11135)),s=t(25787),l=t(13400),c=t(20068),d=t(28182),u=t(80184),m=["classes","children","variant","tooltip"];n.Z=(0,s.Z)((function(e){return(0,o.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,t=e.children,o=e.variant,s=void 0===o?"outlined":o,p=e.tooltip,f=(0,r.Z)(e,m),x=(0,u.jsx)(l.Z,(0,i.Z)((0,i.Z)({},f),{},{className:(0,d.Z)(n.root,(0,a.Z)({},n.contained,"contained"===s)),children:t}));return p&&""!==p?(0,u.jsx)(c.Z,{title:p,children:(0,u.jsx)("span",{children:x})}):x}))},64163:function(e,n,t){var i=t(1413),a=t(72791),r=t(61889),o=t(11135),s=t(25787),l=t(23814),c=t(80184);n.Z=(0,s.Z)((function(e){return(0,o.Z)((0,i.Z)({},l.xx))}))((function(e){var n=e.classes,t=e.label,i=void 0===t?"":t,o=e.content,s=e.multiLine,l=void 0!==s&&s;return(0,c.jsx)(a.Fragment,{children:(0,c.jsxs)(r.ZP,{className:n.prefinedContainer,children:[""!==i&&(0,c.jsx)(r.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:i}),(0,c.jsx)(r.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,c.jsx)(r.ZP,{item:!0,xs:12,className:l?n.innerContentMultiline:n.innerContent,children:o})})]})})}))},9505:function(e,n,t){var i=t(70885),a=t(72791),r=t(81207);n.Z=function(e,n){var t=(0,a.useState)(!1),o=(0,i.Z)(t,2),s=o[0],l=o[1];return[s,function(t,i,a){l(!0),r.Z.invoke(t,i,a).then((function(n){l(!1),e(n)})).catch((function(e){l(!1),n(e)}))}]}},74794:function(e,n,t){var i=t(1413),a=(t(72791),t(61889)),r=t(11135),o=t(25787),s=t(23814),l=t(80184);n.Z=(0,o.Z)((function(e){return(0,r.Z)((0,i.Z)({},s.Bw))}))((function(e){var n=e.classes,t=e.className,i=void 0===t?"":t,r=e.children;return(0,l.jsx)("div",{className:n.contentSpacer,children:(0,l.jsx)(a.ZP,{container:!0,children:(0,l.jsx)(a.ZP,{item:!0,xs:12,className:i,children:r})})})}))},23508:function(e,n,t){var i=t(1413),a=t(72791),r=t(5574),o=t(65661),s=t(39157),l=t(97123),c=t(36151),d=t(59860),u=t(13400),m=t(29823),p=t(11135),f=t(25787),x=t(23814),h=t(80184);n.Z=(0,f.Z)((function(e){return(0,p.Z)((0,i.Z)({},x.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,p=e.onClose,f=e.onCancel,x=e.onConfirm,Z=e.classes,g=void 0===Z?{}:Z,v=e.title,b=void 0===v?"":v,j=e.isLoading,y=e.confirmationContent,C=e.cancelText,N=void 0===C?"Cancel":C,S=e.confirmText,k=void 0===S?"Confirm":S,P=e.confirmButtonProps,M=void 0===P?{}:P,E=e.cancelButtonProps,T=void 0===E?{}:E,w=e.titleIcon,B=void 0===w?null:w;return(0,h.jsxs)(r.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&p()},className:g.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(o.Z,{className:g.title,children:[(0,h.jsxs)("div",{className:g.titleText,children:[B," ",b]}),(0,h.jsx)("div",{className:g.closeContainer,children:(0,h.jsx)(u.Z,{"aria-label":"close",className:g.closeButton,onClick:p,disableRipple:!0,size:"small",children:(0,h.jsx)(m.Z,{})})})]}),(0,h.jsx)(s.Z,{className:g.content,children:y}),(0,h.jsxs)(l.Z,{className:g.actions,children:[(0,h.jsx)(c.Z,(0,i.Z)((0,i.Z)({className:g.cancelButton,onClick:f||p,disabled:j,type:"button"},T),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:N})),(0,h.jsx)(d.Z,(0,i.Z)((0,i.Z)({className:g.confirmButton,type:"button",onClick:x,loading:j,disabled:j,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(a.Fragment,{}),autoFocus:!0,id:"confirm-ok"},M),{},{children:k}))]})]})}))},56028:function(e,n,t){var i=t(70885),a=t(1413),r=t(72791),o=t(60364),s=t(13400),l=t(55646),c=t(5574),d=t(65661),u=t(39157),m=t(11135),p=t(25787),f=t(23814),x=t(42649),h=t(29823),Z=t(28057),g=t(80184),v=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});n.Z=(0,p.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(v((function(e){var n=e.onClose,t=e.modalOpen,o=e.title,m=e.children,p=e.classes,f=e.wideLimit,x=void 0===f||f,v=e.modalSnackMessage,b=e.noContentPadding,j=e.setModalSnackMessage,y=e.titleIcon,C=void 0===y?null:y,N=(0,r.useState)(!1),S=(0,i.Z)(N,2),k=S[0],P=S[1];(0,r.useEffect)((function(){j("")}),[j]),(0,r.useEffect)((function(){if(v){if(""===v.message)return void P(!1);"error"!==v.type&&P(!0)}}),[v]);var M=x?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return v&&(E=v.detailedErrorMsg,(""===v.detailedErrorMsg||v.detailedErrorMsg.length<5)&&(E=v.message)),(0,g.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:t,classes:p},M),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,g.jsxs)(d.Z,{className:p.title,children:[(0,g.jsxs)("div",{className:p.titleText,children:[C," ",o]}),(0,g.jsx)("div",{className:p.closeContainer,children:(0,g.jsx)(s.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,g.jsx)(h.Z,{})})})]}),(0,g.jsx)(Z.Z,{isModal:!0}),(0,g.jsx)(l.Z,{open:k,className:p.snackBarModal,onClose:function(){P(!1),j("")},message:E,ContentProps:{className:"".concat(p.snackBar," ").concat(v&&"error"===v.type?p.errorSnackBar:"")},autoHideDuration:v&&"error"===v.type?1e4:5e3}),(0,g.jsx)(u.Z,{className:b?"":p.content,children:m})]}))})))},32291:function(e,n,t){var i=t(72791),a=t(60364),r=t(61889),o=t(11135),s=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),m=t(3925),p=t(13048),f=t(80184),x={toggleList:m.kQ},h=(0,a.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),x);n.Z=h((0,s.Z)((function(e){return(0,o.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,a=e.actions,o=e.sidebarOpen,s=e.operatorMode,m=e.managerObjects,x=e.toggleList,h=e.middleComponent;return e.features.includes("hide-menu")?(0,f.jsx)(i.Fragment,{}):(0,f.jsxs)(r.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,f.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:h?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!o&&(0,f.jsx)("div",{className:n.logo,children:s?(0,f.jsx)(d.Z,{}):(0,f.jsx)(u.Z,{})}),(0,f.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),h&&(0,f.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:h}),(0,f.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:h?3:6,className:n.rightMenu,children:[a&&a,m&&m.length>0&&(0,f.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){x()},id:"object-manager-toggle",size:"large",children:(0,f.jsx)(p.gx,{})})]})]})})))},60680:function(e,n,t){t(72791);var i=t(11135),a=t(25787),r=t(80184);n.Z=(0,a.Z)((function(e){return(0,i.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var n=e.classes,t=e.children;return(0,r.jsx)("h1",{className:n.root,children:t})}))},14917:function(e,n,t){t(72791);var i=t(61889),a=t(11135),r=t(25787),o=t(80184);n.Z=(0,r.Z)((function(e){return(0,a.Z)({headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},screenTitle:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem",borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column"}},rightItems:{display:"flex",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.icon,a=e.title,r=e.subTitle,s=e.actions,l=e.className;return(0,o.jsx)(i.ZP,{container:!0,children:(0,o.jsxs)(i.ZP,{item:!0,xs:12,className:"".concat(n.screenTitle," ").concat(l||""),children:[(0,o.jsxs)("div",{className:n.leftItems,children:[t?(0,o.jsx)("div",{className:n.headerBarIcon,children:t}):null,(0,o.jsxs)("div",{className:n.titleColumn,children:[(0,o.jsx)("h1",{style:{margin:0},children:a}),(0,o.jsx)("span",{className:n.headerBarSubheader,children:r})]})]}),(0,o.jsx)("div",{className:n.rightItems,children:s})]})})}))},59114:function(e,n,t){var i=t(4942),a=t(1413),r=(t(72791),t(63466)),o=t(74900),s=t(27391),l=t(25787),c=t(11135),d=t(23814),u=t(80184);n.Z=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,a.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,a=e.classes,l=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,m=e.overrideClass,p=e.value,f=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(r.Z,{position:d,className:a.adornment,children:(0,u.jsx)(o.Z,{})}));return(0,u.jsx)(s.Z,{placeholder:t,className:m||a.searchField,id:"search-resource",label:"",InputProps:f,onChange:function(e){l(e.target.value)},variant:"standard",value:p})}))},14662:function(e,n,t){t.d(n,{Z:function(){return R}});var i=t(1413),a=t(70885),r=t(72791),o=t(64554),s=t(43896),l=t(80184),c=r.createContext(null);function d(e){var n=e.children,t=e.value,i=function(){var e=r.useState(null),n=(0,a.Z)(e,2),t=n[0],i=n[1];return r.useEffect((function(){i("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),o=r.useMemo((function(){return{idPrefix:i,value:t}}),[i,t]);return(0,l.jsx)(c.Provider,{value:o,children:n})}function u(){return r.useContext(c)}function m(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function p(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}var f=t(87462),x=t(63366),h=t(18073),Z=["children"],g=r.forwardRef((function(e,n){var t=e.children,i=(0,x.Z)(e,Z),a=u();if(null===a)throw new TypeError("No TabContext provided");var o=r.Children.map(t,(function(e){return r.isValidElement(e)?r.cloneElement(e,{"aria-controls":m(a,e.props.value),id:p(a,e.props.value)}):null}));return(0,l.jsx)(h.Z,(0,f.Z)({},i,{ref:n,value:a.value,children:o}))})),v=t(28182),b=t(47630),j=t(93736),y=t(90767),C=t(95159);function N(e){return(0,C.Z)("MuiTabPanel",e)}(0,t(30208).Z)("MuiTabPanel",["root"]);var S=["children","className","value"],k=(0,b.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),P=r.forwardRef((function(e,n){var t=(0,j.Z)({props:e,name:"MuiTabPanel"}),i=t.children,a=t.className,r=t.value,o=(0,x.Z)(t,S),s=(0,f.Z)({},t),c=function(e){var n=e.classes;return(0,y.Z)({root:["root"]},N,n)}(s),d=u();if(null===d)throw new TypeError("No TabContext provided");var h=m(d,r),Z=p(d,r);return(0,l.jsx)(k,(0,f.Z)({"aria-labelledby":Z,className:(0,v.Z)(c.root,a),hidden:r!==d.value,id:h,ref:n,role:"tabpanel",ownerState:s},o,{children:r===d.value&&i}))})),M=t(25787),E=t(13967),T=t(11135),w=t(95193),B={minHeight:60},R=(0,M.Z)((function(e){return(0,T.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var n=e.children,t=e.classes,c=e.selectedTab,u=void 0===c?"0":c,m=e.routes,p=e.isRouteTabs,f=r.useState(u),x=(0,a.Z)(f,2),h=x[0],Z=x[1],v=(0,E.Z)(),b=(0,w.Z)(v.breakpoints.down("md")),j=[],y=[];return n?(n.forEach((function(e){j.push(e.tabConfig),y.push(e.content)})),(0,l.jsx)(d,{value:"".concat(h),children:(0,l.jsxs)(o.Z,{className:t.tabsContainer,children:[(0,l.jsx)(o.Z,{className:t.tabsHeaderContainer,children:(0,l.jsx)(g,{onChange:function(e,n){Z(n)},orientation:b?"horizontal":"vertical",variant:b?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:j.map((function(e,n){return e?(0,l.jsx)(s.Z,(0,i.Z)((0,i.Z)({className:t.tabHeader,value:"".concat(n),style:B},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,l.jsxs)(o.Z,{className:t.tabContentContainer,children:[p?null:y.map((function(e,n){return(0,l.jsx)(P,{classes:(0,i.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),p?(0,l.jsx)("div",{className:t.tabPanel,children:m}):null]})]})})):null}))},88896:function(e,n,t){t.r(n);var i=t(70885),a=(t(72791),t(60364)),r=t(51691),o=t(42649),s=t(23508),l=t(9505),c=t(13048),d=t(80184),u={setErrorSnackMessage:o.Ih},m=(0,a.$j)(null,u);n.default=m((function(e){var n=e.selectedGroup,t=e.deleteOpen,a=e.closeDeleteModalAndRefresh,o=e.setErrorSnackMessage,u=(0,l.Z)((function(){return a(!0)}),(function(e){return o(e)})),m=(0,i.Z)(u,2),p=m[0],f=m[1];if(!n)return null;return(0,d.jsx)(s.Z,{title:"Delete Group",confirmText:"Delete",isOpen:t,titleIcon:(0,d.jsx)(c.Nv,{}),isLoading:p,onConfirm:function(){f("DELETE","/api/v1/group?name=".concat(encodeURI(n)))},onClose:function(){return a(!1)},confirmationContent:(0,d.jsxs)(r.Z,{children:["Are you sure you want to delete group",(0,d.jsx)("br",{}),(0,d.jsx)("b",{children:n}),"?"]})})}))},94061:function(e,n,t){t.r(n),t.d(n,{default:function(){return _},formatPolicy:function(){return O},getPoliciesAsString:function(){return D}});var i=t(70885),a=t(1413),r=t(72791),o=t(79271),s=t(11135),l=t(23814),c=t(42649),d=t(60364),u=t(25787),m=t(61889),p=t(14917),f=t(13048),x=t(92983),h=t(62666),Z=t(81207),g=t(39134),v=t(40228),b=t(56028),j=t(64163),y=t(36151),C=t(80184),N={setModalErrorSnackMessage:c.zb},S=(0,d.$j)(null,N),k=(0,u.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonContainer:{textAlign:"right",marginTop:"1rem"},userSelector:{"& .MuiPaper-root":{padding:0,marginBottom:15}}},l.ID),l.DF),l.oO))}))(S((function(e){var n=e.classes,t=e.title,a=void 0===t?"":t,o=e.groupStatus,s=void 0===o?"enabled":o,l=e.preSelectedUsers,d=void 0===l?[]:l,u=e.selectedGroup,p=void 0===u?"":u,x=e.open,h=e.onClose,g=(0,r.useState)(d),N=(0,i.Z)(g,2),S=N[0],k=N[1];return(0,C.jsxs)(b.Z,{modalOpen:x,onClose:h,title:a,titleIcon:(0,C.jsx)(f.Zm,{}),children:[(0,C.jsx)("div",{className:n.formFieldRow,children:(0,C.jsx)(j.Z,{label:"Selected Group",content:p})}),(0,C.jsx)("div",{className:n.userSelector,children:(0,C.jsx)(v.Z,{selectedUsers:S,setSelectedUsers:k,editMode:!p})}),(0,C.jsxs)(m.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,C.jsx)(y.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){k(d)},children:"Reset"}),(0,C.jsx)(y.Z,{type:"button",variant:"contained",color:"primary",onClick:function(){Z.Z.invoke("PUT","/api/v1/group?name=".concat(encodeURI(p)),{group:p,members:S,status:s}).then((function(e){h()})).catch((function(e){h(),(0,c.zb)(e)}))},children:"Save"})]})]})}))),P=t(88896),M=t(14662),E=t(37516),T=t(74794),w=t(60680),B=t(59114),R=t(56087),A=t(38442),F=t(32291),I=t(84669),U=(0,u.Z)((function(e){return(0,s.Z)({breadcrumLink:{textDecoration:"none",color:"black"}})}))((function(e){e.classes;return(0,C.jsx)(F.Z,{label:(0,C.jsx)(r.Fragment,{children:(0,C.jsx)(I.Z,{to:R.gA.GROUPS,label:"Groups"})}),actions:(0,C.jsx)(r.Fragment,{})})})),L=t(40603),O=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.length<=0?[]:e.split(",")},D=function(e){return e.join(", ")},z={setErrorSnackMessage:c.Ih},G=(0,d.$j)(null,z),_=(0,u.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)((0,a.Z)({pageContainer:{border:"1px solid #EAEAEA",width:"100%"},breadcrumLink:{textDecoration:"none",color:"black"},statusLabel:{fontSize:".8rem",marginRight:".7rem"},statusValue:{fontWeight:"bold",fontSize:".9rem",marginRight:".7rem"},searchField:(0,a.Z)((0,a.Z)({},l.qg.searchField),{},{maxWidth:280})},l.VX),l.bK),{},{actionsTray:(0,a.Z)((0,a.Z)({},l.OR.actionsTray),{},{alignItems:"center","& h1":{flex:1},"& button":{marginLeft:".8rem"},"@media (max-width: 900px)":{justifyContent:"flex-end","& h1":{display:"none"},"& button":{whiteSpace:"nowrap",textOverflow:"ellipsis"}}})},(0,l.Bz)(e.spacing(4))))}))(G((function(e){var n=e.classes,t=(0,r.useState)({}),a=(0,i.Z)(t,2),s=a[0],l=a[1],d=(0,r.useState)(!1),u=(0,i.Z)(d,2),v=u[0],b=u[1],j=(0,r.useState)(!1),y=(0,i.Z)(j,2),N=y[0],S=y[1],F=(0,r.useState)(!1),I=(0,i.Z)(F,2),D=I[0],z=I[1],G=(0,r.useState)(""),_=(0,i.Z)(G,2),K=_[0],H=_[1],W=(0,o.UO)().groupName,V=void 0===W?"":W,$=s.members,X=void 0===$?[]:$,Q=s.policy,q=void 0===Q?"":Q,Y=s.status,J=X.filter((function(e){return e.includes(K)}));(0,r.useEffect)((function(){V&&ae()}),[V]);var ee=O(q),ne="enabled"===Y,te=X.length>0?"Edit Members":"Add Members",ie=(0,A.F)(R.C3,[R.Ft.ADMIN_GET_GROUP]);function ae(){ie&&Z.Z.invoke("GET","/api/v1/group?name=".concat(encodeURI(V))).then((function(e){l(e)})).catch((function(e){(0,c.zb)(e),l({})}))}var re=(0,C.jsxs)(r.Fragment,{children:[(0,C.jsxs)("div",{className:n.actionsTray,children:[(0,C.jsx)(w.Z,{children:"Members"}),(0,C.jsx)(B.Z,{placeholder:"Search members",onChange:function(e){H(e)},overrideClass:n.searchField,value:K}),(0,C.jsx)(A.s,{resource:R.C3,scopes:[R.Ft.ADMIN_ADD_USER_TO_GROUP],errorProps:{disabled:!0},children:(0,C.jsx)(L.Z,{tooltip:te,text:te,variant:"contained",color:"primary",icon:(0,C.jsx)(f.dt,{}),onClick:function(){S(!0)}})})]}),(0,C.jsx)("div",{className:n.tableBlock,children:(0,C.jsx)(A.s,{resource:R.C3,scopes:[R.Ft.ADMIN_LIST_USERS],errorProps:{disabled:!0},children:(0,C.jsx)(x.Z,{itemActions:[{type:"view",onClick:function(e){h.Z.push("".concat(R.gA.USERS,"/").concat(e))}}],columns:[{label:"Access Key",elementKey:""}],selectedItems:[],isLoading:!1,records:J,entityName:"Users",idField:""})})})]}),oe=(0,C.jsxs)(r.Fragment,{children:[(0,C.jsxs)("div",{className:n.actionsTray,children:[(0,C.jsx)(w.Z,{children:"Policies"}),(0,C.jsx)(L.Z,{tooltip:"Set Policies",text:"Set Policies",variant:"contained",color:"primary",icon:(0,C.jsx)(f.v4,{}),onClick:function(){b(!0)}})]}),(0,C.jsx)("div",{className:n.tableBlock,children:(0,C.jsx)(x.Z,{itemActions:[{type:"view",onClick:function(e){h.Z.push("".concat(R.gA.POLICIES,"/").concat(e))}}],columns:[{label:"Policy",elementKey:""}],isLoading:!1,records:ee,entityName:"Policies",idField:""})})]});return(0,C.jsxs)(r.Fragment,{children:[(0,C.jsx)(U,{}),(0,C.jsxs)(T.Z,{className:n.pageContainer,children:[(0,C.jsx)(m.ZP,{item:!0,xs:12,children:(0,C.jsx)(p.Z,{icon:(0,C.jsx)(r.Fragment,{children:(0,C.jsx)(f.ww,{width:40})}),title:V,subTitle:null,actions:(0,C.jsxs)(r.Fragment,{children:[(0,C.jsx)("span",{className:n.statusLabel,children:"Group Status:"}),(0,C.jsx)("span",{id:"group-status",className:n.statusValue,children:ne?"Enabled":"Disabled"}),(0,C.jsx)(A.s,{resource:R.C3,scopes:[R.Ft.ADMIN_ENABLE_GROUP,R.Ft.ADMIN_DISABLE_GROUP],errorProps:{disabled:!0},matchAll:!0,children:(0,C.jsx)(E.Z,{indicatorLabels:["Enabled","Disabled"],checked:ne,value:"group_enabled",id:"group-status",name:"group-status",onChange:function(){var e;e=!ne,Z.Z.invoke("PUT","/api/v1/group?name=".concat(encodeURI(V)),{group:V,members:X,status:e?"enabled":"disabled"}).then((function(e){ae()})).catch((function(e){(0,c.zb)(e)}))},switchOnly:!0})}),(0,C.jsx)(A.s,{resource:R.C3,scopes:[R.Ft.ADMIN_REMOVE_USER_FROM_GROUP],errorProps:{disabled:!0},children:(0,C.jsx)("div",{className:n.spacerLeft,children:(0,C.jsx)(L.Z,{tooltip:"Delete Group",text:"",variant:"outlined",color:"secondary",icon:(0,C.jsx)(f.XH,{}),onClick:function(){z(!0)}})})})]})})}),(0,C.jsx)(m.ZP,{item:!0,xs:12,children:(0,C.jsxs)(M.Z,{children:[{tabConfig:{label:"Members"},content:re},{tabConfig:{label:"Policies"},content:oe}]})})]}),v?(0,C.jsx)(g.default,{open:v,selectedGroup:V,selectedUser:null,closeModalAndRefresh:function(){b(!1),ae()}}):null,N?(0,C.jsx)(k,{selectedGroup:V,onSaveClick:function(){},title:te,groupStatus:Y,preSelectedUsers:X,open:N,onClose:function(){S(!1),ae()}}):null,D&&(0,C.jsx)(P.default,{deleteOpen:D,selectedGroup:V,closeDeleteModalAndRefresh:function(e){z(!1),e&&h.Z.push(R.gA.GROUPS)}})]})})))},40228:function(e,n,t){var i=t(42982),a=t(70885),r=t(1413),o=t(72791),s=t(60364),l=t(11135),c=t(25787),d=t(40986),u=t(26181),m=t.n(u),p=t(10703),f=t(61889),x=t(21639),h=t(23814),Z=t(42649),g=t(81207),v=t(92983),b=t(59114),j=t(80184),y={setModalErrorSnackMessage:Z.zb},C=(0,s.$j)(null,y);n.Z=(0,c.Z)((function(e){return(0,l.Z)((0,r.Z)((0,r.Z)({paper:{display:"flex",overflow:"auto",flexDirection:"column",boxShadow:"none",border:0},tableBlock:(0,r.Z)({},h.VX.tableBlock),searchBox:{flex:1}},h.OR),{},{actionsTitle:{fontSize:14,alignSelf:"center",minWidth:160,marginRight:10},noFound:{textAlign:"center",padding:e.spacing(3),border:"1px solid #EAEAEA",fontSize:".9rem"}},h.jY))}))(C((function(e){var n=e.classes,t=e.selectedUsers,r=e.setSelectedUsers,s=e.editMode,l=void 0!==s&&s,c=e.setModalErrorSnackMessage,u=(0,o.useState)([]),h=(0,a.Z)(u,2),Z=h[0],y=h[1],C=(0,o.useState)(!1),N=(0,a.Z)(C,2),S=N[0],k=N[1],P=(0,o.useState)(""),M=(0,a.Z)(P,2),E=M[0],T=M[1],w=(0,o.useCallback)((function(){g.Z.invoke("GET","/api/v1/users").then((function(e){var n=m()(e,"users",[]);n||(n=[]),y(n.sort(x.LQ)),k(!1)})).catch((function(e){c(e),k(!1)}))}),[c]);(0,o.useEffect)((function(){k(!0)}),[]),(0,o.useEffect)((function(){S&&w()}),[S,w]);var B=t||[],R=Z.filter((function(e){return e.accessKey.includes(E)}));return(0,j.jsx)(o.Fragment,{children:(0,j.jsx)(f.ZP,{item:!0,xs:12,children:(0,j.jsxs)(p.Z,{className:n.paper,children:[S&&(0,j.jsx)(d.Z,{}),null!==Z&&Z.length>0?(0,j.jsxs)(o.Fragment,{children:[(0,j.jsxs)(f.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,j.jsx)("label",{className:n.actionsTitle,children:l?"Edit Members":"Assign Users"}),(0,j.jsx)("div",{className:n.searchBox,children:(0,j.jsx)(b.Z,{placeholder:"Filter Users",adornmentPosition:"end",onChange:T,value:E})})]}),(0,j.jsx)(f.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,j.jsx)(v.Z,{columns:[{label:"Access Key",elementKey:"accessKey"}],onSelect:function(e){var n=e.target,t=n.value,a=n.checked,o=(0,i.Z)(B);return a?o.push(t):o=o.filter((function(e){return e!==t})),r(o),o},selectedItems:B,isLoading:S,records:R,entityName:"Users",idField:"accessKey",customPaperHeight:n.multiSelectTable})})]}):(0,j.jsx)("div",{className:n.noFound,children:"No Users to display"})]})})})})))},58400:function(e,n,t){var i=t(42982),a=t(70885),r=t(1413),o=t(72791),s=t(60364),l=t(11135),c=t(25787),d=t(40986),u=t(61889),m=t(21639),p=t(23814),f=t(42649),x=t(81207),h=t(92983),Z=t(59114),g=t(80184),v=(0,s.$j)(null,{setModalErrorSnackMessage:f.zb});n.Z=(0,c.Z)((function(e){return(0,l.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({noFound:{textAlign:"center",padding:"10px 0"},searchBox:{flex:1},fieldLabel:{fontWeight:400,width:160,marginRight:10},tableBlock:(0,r.Z)({},p.VX.tableBlock),filterBox:{display:"flex",marginBottom:15,alignItems:"center","& span":{fontSize:14}}},p.qg),p.VX),p.OR),p.jY))}))(v((function(e){var n=e.classes,t=e.selectedPolicy,r=void 0===t?[]:t,s=e.setSelectedPolicy,l=e.setModalErrorSnackMessage,c=(0,o.useState)([]),p=(0,a.Z)(c,2),f=p[0],v=p[1],b=(0,o.useState)(!1),j=(0,a.Z)(b,2),y=j[0],C=j[1],N=(0,o.useState)(""),S=(0,a.Z)(N,2),k=S[0],P=S[1],M=(0,o.useCallback)((function(){C(!0),x.Z.invoke("GET","/api/v1/policies?limit=1000").then((function(e){var n=null===e.policies?[]:e.policies;C(!1),v(n.sort(m.g4))})).catch((function(e){C(!1),l(e)}))}),[l]);(0,o.useEffect)((function(){C(!0)}),[]),(0,o.useEffect)((function(){y&&M()}),[y,M]);var E=f.filter((function(e){return e.name.includes(k)}));return(0,g.jsx)(o.Fragment,{children:(0,g.jsxs)(u.ZP,{item:!0,xs:12,children:[y&&(0,g.jsx)(d.Z,{}),f.length>0?(0,g.jsxs)(o.Fragment,{children:[(0,g.jsxs)(u.ZP,{item:!0,xs:12,className:n.filterBox,children:[(0,g.jsx)("span",{className:n.fieldLabel,children:"Assign Policies"}),(0,g.jsx)("div",{className:n.searchBox,children:(0,g.jsx)(Z.Z,{placeholder:"Filter Policy",onChange:function(e){P(e)},value:k})})]}),(0,g.jsx)(u.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,g.jsx)(h.Z,{columns:[{label:"Policy",elementKey:"name"}],onSelect:function(e){var n=e.target,t=n.value,a=n.checked,o=(0,i.Z)(r);a?o.push(t):o=o.filter((function(e){return e!==t})),o=o.filter((function(e){return""!==e})),s(o)},selectedItems:r,isLoading:y,records:E,entityName:"Policies",idField:"name",customPaperHeight:n.multiSelectTable})})]}):(0,g.jsx)("div",{className:n.noFound,children:"No Policies Available"})]})})})))},39134:function(e,n,t){t.r(n);var i=t(70885),a=t(1413),r=t(72791),o=t(60364),s=t(26181),l=t.n(s),c=t(11135),d=t(25787),u=t(36151),m=t(40986),p=t(61889),f=t(23814),x=t(42649),h=t(56028),Z=t(81207),g=t(58400),v=t(64163),b=t(80184),j={setModalErrorSnackMessage:x.zb},y=(0,o.$j)(null,j);n.default=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},f.oO),f.bK),{},{tableBlock:(0,a.Z)((0,a.Z)({},f.VX.tableBlock),{},{marginTop:15}),buttonContainer:{textAlign:"right",marginTop:".9rem"}}))}))(y((function(e){var n=e.classes,t=e.closeModalAndRefresh,a=e.selectedUser,o=e.selectedGroup,s=e.setModalErrorSnackMessage,c=e.open,d=(0,r.useState)(!1),f=(0,i.Z)(d,2),x=f[0],j=f[1],y=(0,r.useState)([]),C=(0,i.Z)(y,2),N=C[0],S=C[1],k=(0,r.useState)([]),P=(0,i.Z)(k,2),M=P[0],E=P[1];(0,r.useEffect)((function(){if(c){if(null!==o)return void(o&&Z.Z.invoke("GET","/api/v1/group?name=".concat(encodeURI(o))).then((function(e){var n=l()(e,"policy","");S(n.split(",")),E(n.split(","))})).catch((function(e){s(e),j(!1)})));var e=l()(a,"policy",[]);S(e),E(e)}}),[c,o,a]);var T=l()(a,"accessKey","");return(0,b.jsxs)(h.Z,{onClose:function(){t()},modalOpen:c,title:"Set Policies",children:[(0,b.jsx)(p.ZP,{item:!0,xs:12,children:(0,b.jsx)(v.Z,{label:"Selected ".concat(null!==o?"Group":"User"),content:null!==o?o:T})}),(0,b.jsx)(p.ZP,{item:!0,xs:12,children:(0,b.jsx)(v.Z,{label:"Current Policy",content:N.join(", ")})}),(0,b.jsx)("div",{className:n.tableBlock,children:(0,b.jsx)(g.Z,{selectedPolicy:M,setSelectedPolicy:E})}),(0,b.jsxs)(p.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,b.jsx)(u.Z,{type:"button",variant:"outlined",color:"primary",className:n.spacerRight,onClick:function(){E(N)},children:"Reset"}),(0,b.jsx)(u.Z,{type:"button",variant:"contained",color:"primary",disabled:x,onClick:function(){var e="user",n=null;null!==o?(e="group",n=o):null!==a&&(n=a.accessKey),j(!0),Z.Z.invoke("PUT","/api/v1/set-policy",{name:M,entityName:n,entityType:e}).then((function(){j(!1),t()})).catch((function(e){j(!1),s(e)}))},children:"Save"})]}),x&&(0,b.jsx)(p.ZP,{item:!0,xs:12,children:(0,b.jsx)(m.Z,{})})]})})))},21639:function(e,n,t){t.d(n,{LQ:function(){return i},V2:function(){return r},g4:function(){return a}});var i=function(e,n){return e.accessKey>n.accessKey?1:e.accessKeyn.name?1:e.namen?1:e.\n\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\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 BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\n","import React, { Fragment } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { predefinedList } from \"../common/styleLibrary\";\n\ninterface IPredefinedList {\n classes: any;\n label?: string;\n content: any;\n multiLine?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...predefinedList,\n });\n\nconst PredefinedList = ({\n classes,\n label = \"\",\n content,\n multiLine = false,\n}: IPredefinedList) => {\n return (\n \n \n {label !== \"\" && (\n \n {label}\n \n )}\n \n \n {content}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(PredefinedList);\n","import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n fontSize: \".9rem\",\n },\n });\n\ninterface IPanelTitle extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst PanelTitle = ({ classes, children }: IPanelTitle) => {\n return

    {children}

    ;\n};\n\nexport default withStyles(styles)(PanelTitle);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IScreenTitle {\n classes: any;\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n screenTitle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n },\n });\n\nconst ScreenTitle = ({\n classes,\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n return (\n \n \n
    \n {icon ?
    {icon}
    : null}\n
    \n

    {title}

    \n {subTitle}\n
    \n
    \n\n
    {actions}
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ScreenTitle);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of `` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n
    {routes}
    \n ) : null}\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\n\ninterface IDeleteGroup {\n selectedGroup: string;\n deleteOpen: boolean;\n closeDeleteModalAndRefresh: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteGroup = ({\n selectedGroup,\n deleteOpen,\n closeDeleteModalAndRefresh,\n setErrorSnackMessage,\n}: IDeleteGroup) => {\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedGroup) {\n return null;\n }\n const onDeleteGroup = () => {\n invokeDeleteApi(\"DELETE\", `/api/v1/group?name=${encodeURI(selectedGroup)}`);\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onDeleteGroup}\n onClose={onClose}\n confirmationContent={\n \n Are you sure you want to delete group\n
    \n {selectedGroup}?\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteGroup);\n","import React, { useState } from \"react\";\nimport UsersSelectors from \"./UsersSelectors\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport PredefinedList from \"../Common/FormComponents/PredefinedList/PredefinedList\";\nimport Grid from \"@mui/material/Grid\";\nimport { Button } from \"@mui/material\";\nimport api from \"../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n formFieldStyles,\n modalBasic,\n modalStyleUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AddMembersToGroupIcon } from \"../../../icons\";\n\ntype UserPickerModalProps = {\n classes?: any;\n title?: string;\n preSelectedUsers?: string[];\n selectedGroup?: string;\n open: boolean;\n onClose: () => void;\n onSaveClick: () => void;\n groupStatus?: string;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n userSelector: {\n \"& .MuiPaper-root\": {\n padding: 0,\n marginBottom: 15,\n },\n },\n ...modalStyleUtils,\n ...formFieldStyles,\n ...modalBasic,\n });\n\nconst AddGroupMember = ({\n classes,\n title = \"\",\n groupStatus = \"enabled\",\n preSelectedUsers = [],\n selectedGroup = \"\",\n open,\n onClose,\n}: UserPickerModalProps) => {\n const [selectedUsers, setSelectedUsers] = useState(preSelectedUsers);\n\n function addMembersToGroup() {\n return api\n .invoke(\"PUT\", `/api/v1/group?name=${encodeURI(selectedGroup)}`, {\n group: selectedGroup,\n members: selectedUsers,\n status: groupStatus,\n })\n .then((res) => {\n onClose();\n })\n .catch((err: ErrorResponseHandler) => {\n onClose();\n setModalErrorSnackMessage(err);\n });\n }\n\n return (\n }\n >\n
    \n \n
    \n
    \n \n
    \n\n \n {\n setSelectedUsers(preSelectedUsers);\n }}\n >\n Reset\n \n\n {\n addMembersToGroup();\n }}\n >\n Save\n \n \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\nexport default withStyles(styles)(connector(AddGroupMember));\n","import React, { Fragment } from \"react\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport BackLink from \"../../../common/BackLink\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n });\n\ntype DetailsHeaderProps = {\n classes: any;\n};\n\nconst GroupDetailsHeader = ({ classes }: DetailsHeaderProps) => {\n return (\n \n \n
    \n }\n actions={}\n />\n );\n};\n\nexport default withStyles(styles)(GroupDetailsHeader);\n","import React, { Fragment, useEffect, useState } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n spacingUtils,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport {\n setErrorSnackMessage,\n setModalErrorSnackMessage,\n} from \"../../../actions\";\nimport { connect } from \"react-redux\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid } from \"@mui/material\";\nimport ScreenTitle from \"../Common/ScreenTitle/ScreenTitle\";\nimport {\n IAMPoliciesIcon,\n TrashIcon,\n GroupsIcon,\n AddIcon,\n} from \"../../../icons\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport history from \"../../../history\";\nimport api from \"../../../common/api\";\nimport SetPolicy from \"../Policies/SetPolicy\";\nimport AddGroupMember from \"./AddGroupMember\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport DeleteGroup from \"./DeleteGroup\";\nimport VerticalTabs from \"../Common/VerticalTabs/VerticalTabs\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport PanelTitle from \"../Common/PanelTitle/PanelTitle\";\nimport SearchBox from \"../Common/SearchBox\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../common/SecureComponent\";\nimport GroupDetailsHeader from \"./GroupDetailsHeader\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n pageContainer: {\n border: \"1px solid #EAEAEA\",\n width: \"100%\",\n },\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n statusLabel: {\n fontSize: \".8rem\",\n marginRight: \".7rem\",\n },\n statusValue: {\n fontWeight: \"bold\",\n fontSize: \".9rem\",\n marginRight: \".7rem\",\n },\n searchField: {\n ...searchField.searchField,\n maxWidth: 280,\n },\n ...tableStyles,\n ...spacingUtils,\n actionsTray: {\n ...actionsTray.actionsTray,\n\n alignItems: \"center\",\n \"& h1\": {\n flex: 1,\n },\n \"& button\": {\n marginLeft: \".8rem\",\n },\n \"@media (max-width: 900px)\": {\n justifyContent: \"flex-end\",\n \"& h1\": {\n display: \"none\",\n },\n \"& button\": {\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n },\n },\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IGroupDetailsProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\ntype GroupInfo = {\n members?: any[];\n name?: string;\n policy?: string;\n status?: string;\n};\n\nexport const formatPolicy = (policy: string = \"\"): string[] => {\n if (policy.length <= 0) return [];\n return policy.split(\",\");\n};\n\nexport const getPoliciesAsString = (policies: string[]): string => {\n return policies.join(\", \");\n};\n\nconst GroupsDetails = ({ classes }: IGroupDetailsProps) => {\n const [groupDetails, setGroupDetails] = useState({});\n\n /*Modals*/\n const [policyOpen, setPolicyOpen] = useState(false);\n const [usersOpen, setUsersOpen] = useState(false);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [memberFilter, setMemberFilter] = useState(\"\");\n\n //const [policyFilter, setPolicyFilter] = useState(\"\");\n\n const { groupName = \"\" } = useParams>();\n\n const { members = [], policy = \"\", status: groupEnabled } = groupDetails;\n\n const filteredMembers = members.filter((elementItem) =>\n elementItem.includes(memberFilter)\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(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_GROUP,\n ]);\n\n function fetchGroupInfo() {\n if (getGroupDetails) {\n api\n .invoke(\"GET\", `/api/v1/group?name=${encodeURI(groupName)}`)\n .then((res: any) => {\n setGroupDetails(res);\n })\n .catch((err) => {\n setModalErrorSnackMessage(err);\n setGroupDetails({});\n });\n }\n }\n\n function toggleGroupStatus(nextStatus: boolean) {\n return api\n .invoke(\"PUT\", `/api/v1/group?name=${encodeURI(groupName)}`, {\n group: groupName,\n members: members,\n status: nextStatus ? \"enabled\" : \"disabled\",\n })\n .then((res) => {\n fetchGroupInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n });\n }\n\n const groupsTabContent = (\n \n
    \n Members\n {\n setMemberFilter(searchText);\n }}\n overrideClass={classes.searchField}\n value={memberFilter}\n />\n \n }\n onClick={() => {\n setUsersOpen(true);\n }}\n />\n \n
    \n\n
    \n \n {\n history.push(`${IAM_PAGES.USERS}/${userName}`);\n },\n },\n ]}\n columns={[{ label: \"Access Key\", elementKey: \"\" }]}\n selectedItems={[]}\n isLoading={false}\n records={filteredMembers}\n entityName=\"Users\"\n idField=\"\"\n />\n \n
    \n
    \n );\n\n const policiesTabContent = (\n \n
    \n Policies\n\n }\n onClick={() => {\n setPolicyOpen(true);\n }}\n />\n
    \n
    \n {\n history.push(`${IAM_PAGES.POLICIES}/${policy}`);\n },\n },\n ]}\n columns={[{ label: \"Policy\", elementKey: \"\" }]}\n isLoading={false}\n records={groupPolicies}\n entityName=\"Policies\"\n idField=\"\"\n />\n
    \n
    \n );\n return (\n \n \n\n \n \n \n \n
    \n }\n title={groupName}\n subTitle={null}\n actions={\n \n Group Status:\n \n {isGroupEnabled ? \"Enabled\" : \"Disabled\"}\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 }\n />\n \n\n \n \n {{\n tabConfig: { label: \"Members\" },\n content: groupsTabContent,\n }}\n {{\n tabConfig: { label: \"Policies\" },\n content: policiesTabContent,\n }}\n \n \n \n {/*Modals*/}\n {policyOpen ? (\n {\n setPolicyOpen(false);\n fetchGroupInfo();\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 history.push(IAM_PAGES.GROUPS);\n }\n }}\n />\n )}\n {/*Modals*/}\n \n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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 } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport Paper from \"@mui/material/Paper\";\nimport Grid from \"@mui/material/Grid\";\nimport { UsersList } from \"../Users/types\";\nimport { usersSort } from \"../../../utils/sortFunctions\";\nimport {\n actionsTray,\n selectorsCommon,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport SearchBox from \"../Common/SearchBox\";\n\ninterface IGroupsProps {\n classes: any;\n selectedUsers: string[];\n setSelectedUsers: any;\n editMode?: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n paper: {\n display: \"flex\",\n overflow: \"auto\",\n flexDirection: \"column\",\n // paddingTop: 15,\n boxShadow: \"none\",\n border: 0,\n },\n\n tableBlock: {\n ...tableStyles.tableBlock,\n },\n searchBox: {\n flex: 1,\n },\n ...actionsTray,\n actionsTitle: {\n fontSize: 14,\n alignSelf: \"center\",\n minWidth: 160,\n marginRight: 10,\n },\n noFound: {\n textAlign: \"center\",\n padding: theme.spacing(3),\n border: \"1px solid #EAEAEA\",\n fontSize: \".9rem\",\n },\n ...selectorsCommon,\n });\n\nconst UsersSelectors = ({\n classes,\n selectedUsers,\n setSelectedUsers,\n editMode = false,\n setModalErrorSnackMessage,\n}: IGroupsProps) => {\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\n .invoke(\"GET\", `/api/v1/users`)\n .then((res: UsersList) => {\n let users = get(res, \"users\", []);\n\n if (!users) {\n users = [];\n }\n\n setRecords(users.sort(usersSort));\n isLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n isLoading(false);\n });\n }, [setModalErrorSnackMessage]);\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 \n {loading && }\n {records !== null && records.length > 0 ? (\n \n \n \n
    \n \n
    \n
    \n \n \n \n
    \n ) : (\n
    No Users to display
    \n )}\n
    \n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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, { useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport { policySort } from \"../../../utils/sortFunctions\";\nimport {\n actionsTray,\n searchField,\n selectorsCommon,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { PolicyList } from \"./types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport SearchBox from \"../Common/SearchBox\";\n\ninterface ISelectPolicyProps {\n classes: any;\n selectedPolicy?: string[];\n setSelectedPolicy: any;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n noFound: {\n textAlign: \"center\",\n padding: \"10px 0\",\n },\n searchBox: {\n flex: 1,\n },\n fieldLabel: {\n fontWeight: 400,\n width: 160,\n marginRight: 10,\n },\n tableBlock: {\n ...tableStyles.tableBlock,\n },\n filterBox: {\n display: \"flex\",\n marginBottom: 15,\n alignItems: \"center\",\n \"& span\": {\n fontSize: 14,\n },\n },\n ...searchField,\n ...tableStyles,\n ...actionsTray,\n ...selectorsCommon,\n });\n\nconst PolicySelectors = ({\n classes,\n selectedPolicy = [],\n setSelectedPolicy,\n setModalErrorSnackMessage,\n}: ISelectPolicyProps) => {\n // Local State\n const [records, setRecords] = useState([]);\n const [loading, isLoading] = useState(false);\n const [filter, setFilter] = useState(\"\");\n\n const fetchPolicies = useCallback(() => {\n isLoading(true);\n\n api\n .invoke(\"GET\", `/api/v1/policies?limit=1000`)\n .then((res: PolicyList) => {\n const policies = res.policies === null ? [] : res.policies;\n isLoading(false);\n setRecords(policies.sort(policySort));\n })\n .catch((err: ErrorResponseHandler) => {\n isLoading(false);\n setModalErrorSnackMessage(err);\n });\n }, [setModalErrorSnackMessage]);\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[] = [...selectedPolicy]; // 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 setSelectedPolicy(elements);\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.name.includes(filter)\n );\n\n return (\n \n \n {loading && }\n {records.length > 0 ? (\n \n \n Assign Policies\n
    \n {\n setFilter(value);\n }}\n value={filter}\n />\n
    \n
    \n \n \n \n
    \n ) : (\n
    No Policies Available
    \n )}\n
    \n
    \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(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, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n modalBasic,\n spacingUtils,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { User } from \"../Users/types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../common/api\";\nimport PolicySelectors from \"./PolicySelectors\";\nimport PredefinedList from \"../Common/FormComponents/PredefinedList/PredefinedList\";\n\ninterface ISetPolicyProps {\n classes: any;\n closeModalAndRefresh: () => void;\n selectedUser: User | null;\n selectedGroup: string | null;\n open: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n ...spacingUtils,\n tableBlock: {\n ...tableStyles.tableBlock,\n marginTop: 15,\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \".9rem\",\n },\n });\n\nconst SetPolicy = ({\n classes,\n closeModalAndRefresh,\n selectedUser,\n selectedGroup,\n setModalErrorSnackMessage,\n open,\n}: ISetPolicyProps) => {\n //Local States\n const [loading, setLoading] = useState(false);\n const [actualPolicy, setActualPolicy] = useState([]);\n const [selectedPolicy, setSelectedPolicy] = useState([]);\n\n const setPolicyAction = () => {\n let entity = \"user\";\n let value = null;\n if (selectedGroup !== null) {\n entity = \"group\";\n value = selectedGroup;\n } else {\n if (selectedUser !== null) {\n value = selectedUser.accessKey;\n }\n }\n\n setLoading(true);\n\n api\n .invoke(\"PUT\", `/api/v1/set-policy`, {\n name: selectedPolicy,\n entityName: value,\n entityType: entity,\n })\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n const fetchGroupInformation = () => {\n if (selectedGroup) {\n api\n .invoke(\"GET\", `/api/v1/group?name=${encodeURI(selectedGroup)}`)\n .then((res: any) => {\n const groupPolicy: String = get(res, \"policy\", \"\");\n setActualPolicy(groupPolicy.split(\",\"));\n setSelectedPolicy(groupPolicy.split(\",\"));\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n setLoading(false);\n });\n }\n };\n\n const resetSelection = () => {\n setSelectedPolicy(actualPolicy);\n };\n\n useEffect(() => {\n if (open) {\n if (selectedGroup !== null) {\n fetchGroupInformation();\n return;\n }\n\n const userPolicy: string[] = get(selectedUser, \"policy\", []);\n setActualPolicy(userPolicy);\n setSelectedPolicy(userPolicy);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, selectedGroup, 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 \n \n \n \n \n
    \n \n
    \n \n \n Reset\n \n \n Save\n \n \n {loading && (\n \n \n \n )}\n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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\ninterface userInterface {\n accessKey: string;\n}\n\ninterface policyInterface {\n name: string;\n}\n\nexport const usersSort = (a: userInterface, b: userInterface) => {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: policyInterface, b: policyInterface) => {\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","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","useStyles","makeStyles","root","padding","props","variant","tgtColor","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","disabled","tooltip","restProps","size","border","borderWidth","borderStyle","backgroundColor","opacity","contained","dark","children","rest","button","clsx","title","predefinedList","content","multiLine","Fragment","prefinedContainer","item","xs","predefinedTitle","innerContentMultiline","innerContent","onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","pageContentStyles","contentSpacer","container","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","titleText","closeContainer","closeButton","disableRipple","actions","cancelButton","type","id","confirmButton","loading","loadingPosition","startIcon","autoFocus","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","customDialogSize","maxWidth","snackBarCommon","modalOpen","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","toggleList","sidebarOpen","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","justifyContent","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","includes","direction","sm","md","component","margin","headerBarIcon","headerBarSubheader","screenTitle","borderBottom","flexFlow","titleColumn","leftItems","rightItems","subTitle","style","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","InputProps","e","target","Context","React","TabContext","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","child","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","name","overridesResolver","styles","spacing","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","hidden","role","tabStripStyle","tabsContainer","tabsHeaderContainer","borderRight","marginBottom","tabContentContainer","tabPanel","selectedTab","routes","isRouteTabs","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","push","tabConfig","Box","newValue","orientation","scrollButtons","tabList","map","index","Tab","tabHeader","disableTouchRipple","focusRipple","setErrorSnackMessage","selectedGroup","deleteOpen","closeDeleteModalAndRefresh","useApi","deleteLoading","invokeDeleteApi","encodeURI","setModalErrorSnackMessage","buttonContainer","userSelector","modalStyleUtils","formFieldStyles","modalBasic","groupStatus","preSelectedUsers","selectedUsers","setSelectedUsers","ModalWrapper","formFieldRow","PredefinedList","UsersSelectors","editMode","Grid","modalButtonBar","Button","group","members","status","breadcrumLink","PageHeader","BackLink","IAM_PAGES","formatPolicy","policy","split","getPoliciesAsString","policies","join","pageContainer","statusLabel","statusValue","tableStyles","spacingUtils","actionsTray","flex","whiteSpace","textOverflow","containerForHeader","groupDetails","setGroupDetails","policyOpen","setPolicyOpen","usersOpen","setUsersOpen","setDeleteOpen","memberFilter","setMemberFilter","useParams","groupName","groupEnabled","filteredMembers","filter","elementItem","fetchGroupInfo","groupPolicies","isGroupEnabled","memberActionText","getGroupDetails","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","groupsTabContent","PanelTitle","SearchBox","searchText","SecureComponent","resource","scopes","errorProps","RBIconButton","tableBlock","TableWrapper","itemActions","userName","history","columns","elementKey","selectedItems","records","entityName","idField","policiesTabContent","PageLayout","ScreenTitle","matchAll","FormSwitchWrapper","indicatorLabels","checked","nextStatus","switchOnly","spacerLeft","VerticalTabs","SetPolicy","selectedUser","closeModalAndRefresh","onSaveClick","DeleteGroup","isDelSuccess","overflow","searchBox","actionsTitle","alignSelf","minWidth","noFound","selectorsCommon","setRecords","setFilter","fetchUsers","useCallback","users","get","sort","usersSort","selUsers","filteredRecords","accessKey","onSelect","targetD","elements","element","customPaperHeight","multiSelectTable","fieldLabel","filterBox","selectedPolicy","setSelectedPolicy","fetchPolicies","policySort","setLoading","actualPolicy","setActualPolicy","groupPolicy","userPolicy","spacerRight","entity","entityType","a","b","stringSort","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4061.72744aa0.chunk.js b/portal-ui/build/static/js/4061.72744aa0.chunk.js deleted file mode 100644 index f1c25107a..000000000 --- a/portal-ui/build/static/js/4061.72744aa0.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4061,8771,8896,9134],{84669:function(e,n,t){t(72791);var i=t(91523),a=t(11135),r=t(25787),o=t(74833),s=t(64554),l=t(80184);n.Z=(0,r.Z)((function(e){return(0,a.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var n=e.to,t=e.label,a=e.classes,r=e.className,c=e.executeOnClick;return(0,l.jsx)(s.Z,{sx:{display:"flex",alignItems:"center"},children:(0,l.jsx)(i.rU,{to:n,className:"".concat(a.link," ").concat(r||""),onClick:function(){c&&c()},children:(0,l.jsxs)("div",{className:a.iconBox,children:[(0,l.jsx)("div",{className:a.icon,children:(0,l.jsx)(o.xN,{})}),(0,l.jsx)("div",{className:a.label,children:t})]})})})}))},40603:function(e,n,t){var i=t(1413),a=t(45987),r=(t(72791),t(85531)),o=t(72455),s=t(80184),l=["onClick","text","disabled","tooltip","icon"],c=(0,o.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,i=n.color,a=e.palette.primary.main;return"primary"===i&&"contained"===t?a=e.palette.primary.contrastText:"primary"===i&&"outlined"===t?a=e.palette.primary.main:"secondary"===i&&(a=e.palette.secondary.main),a}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=c(e),t=e.onClick,o=e.text,d=void 0===o?"":o,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,f=e.icon,x=void 0===f?null:f,h=(0,a.Z)(e,l);return(0,s.jsxs)(r.Z,(0,i.Z)((0,i.Z)({classes:n,tooltip:p||d,variant:"outlined",onClick:t,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},h),{},{children:[(0,s.jsx)("span",{children:d})," ",x]}))}},85531:function(e,n,t){var i=t(1413),a=t(4942),r=t(45987),o=(t(72791),t(11135)),s=t(25787),l=t(13400),c=t(20068),d=t(28182),u=t(80184),m=["classes","children","variant","tooltip"];n.Z=(0,s.Z)((function(e){return(0,o.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,t=e.children,o=e.variant,s=void 0===o?"outlined":o,p=e.tooltip,f=(0,r.Z)(e,m),x=(0,u.jsx)(l.Z,(0,i.Z)((0,i.Z)({},f),{},{className:(0,d.Z)(n.root,(0,a.Z)({},n.contained,"contained"===s)),children:t}));return p&&""!==p?(0,u.jsx)(c.Z,{title:p,children:(0,u.jsx)("span",{children:x})}):x}))},64163:function(e,n,t){var i=t(1413),a=t(72791),r=t(61889),o=t(11135),s=t(25787),l=t(23814),c=t(80184);n.Z=(0,s.Z)((function(e){return(0,o.Z)((0,i.Z)({},l.xx))}))((function(e){var n=e.classes,t=e.label,i=void 0===t?"":t,o=e.content,s=e.multiLine,l=void 0!==s&&s;return(0,c.jsx)(a.Fragment,{children:(0,c.jsxs)(r.ZP,{className:n.prefinedContainer,children:[""!==i&&(0,c.jsx)(r.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:i}),(0,c.jsx)(r.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,c.jsx)(r.ZP,{item:!0,xs:12,className:l?n.innerContentMultiline:n.innerContent,children:o})})]})})}))},9505:function(e,n,t){var i=t(70885),a=t(72791),r=t(81207);n.Z=function(e,n){var t=(0,a.useState)(!1),o=(0,i.Z)(t,2),s=o[0],l=o[1];return[s,function(t,i,a){l(!0),r.Z.invoke(t,i,a).then((function(n){l(!1),e(n)})).catch((function(e){l(!1),n(e)}))}]}},74794:function(e,n,t){var i=t(1413),a=(t(72791),t(61889)),r=t(11135),o=t(25787),s=t(23814),l=t(80184);n.Z=(0,o.Z)((function(e){return(0,r.Z)((0,i.Z)({},s.Bw))}))((function(e){var n=e.classes,t=e.className,i=void 0===t?"":t,r=e.children;return(0,l.jsx)("div",{className:n.contentSpacer,children:(0,l.jsx)(a.ZP,{container:!0,children:(0,l.jsx)(a.ZP,{item:!0,xs:12,className:i,children:r})})})}))},23508:function(e,n,t){var i=t(1413),a=t(72791),r=t(5574),o=t(65661),s=t(39157),l=t(97123),c=t(36151),d=t(59860),u=t(13400),m=t(29823),p=t(11135),f=t(25787),x=t(23814),h=t(80184);n.Z=(0,f.Z)((function(e){return(0,p.Z)((0,i.Z)({},x.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,p=e.onClose,f=e.onCancel,x=e.onConfirm,Z=e.classes,g=void 0===Z?{}:Z,v=e.title,b=void 0===v?"":v,j=e.isLoading,y=e.confirmationContent,C=e.cancelText,N=void 0===C?"Cancel":C,S=e.confirmText,k=void 0===S?"Confirm":S,P=e.confirmButtonProps,M=void 0===P?{}:P,E=e.cancelButtonProps,T=void 0===E?{}:E,w=e.titleIcon,B=void 0===w?null:w;return(0,h.jsxs)(r.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&p()},className:g.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(o.Z,{className:g.title,children:[(0,h.jsxs)("div",{className:g.titleText,children:[B," ",b]}),(0,h.jsx)("div",{className:g.closeContainer,children:(0,h.jsx)(u.Z,{"aria-label":"close",className:g.closeButton,onClick:p,disableRipple:!0,size:"small",children:(0,h.jsx)(m.Z,{})})})]}),(0,h.jsx)(s.Z,{className:g.content,children:y}),(0,h.jsxs)(l.Z,{className:g.actions,children:[(0,h.jsx)(c.Z,(0,i.Z)((0,i.Z)({className:g.cancelButton,onClick:f||p,disabled:j,type:"button"},T),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:N})),(0,h.jsx)(d.Z,(0,i.Z)((0,i.Z)({className:g.confirmButton,type:"button",onClick:x,loading:j,disabled:j,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(a.Fragment,{}),autoFocus:!0,id:"confirm-ok"},M),{},{children:k}))]})]})}))},56028:function(e,n,t){var i=t(70885),a=t(1413),r=t(72791),o=t(60364),s=t(13400),l=t(55646),c=t(5574),d=t(65661),u=t(39157),m=t(11135),p=t(25787),f=t(23814),x=t(42649),h=t(29823),Z=t(28057),g=t(80184),v=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});n.Z=(0,p.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(v((function(e){var n=e.onClose,t=e.modalOpen,o=e.title,m=e.children,p=e.classes,f=e.wideLimit,x=void 0===f||f,v=e.modalSnackMessage,b=e.noContentPadding,j=e.setModalSnackMessage,y=e.titleIcon,C=void 0===y?null:y,N=(0,r.useState)(!1),S=(0,i.Z)(N,2),k=S[0],P=S[1];(0,r.useEffect)((function(){j("")}),[j]),(0,r.useEffect)((function(){if(v){if(""===v.message)return void P(!1);"error"!==v.type&&P(!0)}}),[v]);var M=x?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return v&&(E=v.detailedErrorMsg,(""===v.detailedErrorMsg||v.detailedErrorMsg.length<5)&&(E=v.message)),(0,g.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:t,classes:p},M),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:p.root,children:[(0,g.jsxs)(d.Z,{className:p.title,children:[(0,g.jsxs)("div",{className:p.titleText,children:[C," ",o]}),(0,g.jsx)("div",{className:p.closeContainer,children:(0,g.jsx)(s.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,g.jsx)(h.Z,{})})})]}),(0,g.jsx)(Z.Z,{isModal:!0}),(0,g.jsx)(l.Z,{open:k,className:p.snackBarModal,onClose:function(){P(!1),j("")},message:E,ContentProps:{className:"".concat(p.snackBar," ").concat(v&&"error"===v.type?p.errorSnackBar:"")},autoHideDuration:v&&"error"===v.type?1e4:5e3}),(0,g.jsx)(u.Z,{className:b?"":p.content,children:m})]}))})))},32291:function(e,n,t){var i=t(72791),a=t(60364),r=t(61889),o=t(11135),s=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),m=t(3925),p=t(74833),f=t(80184),x={toggleList:m.kQ},h=(0,a.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),x);n.Z=h((0,s.Z)((function(e){return(0,o.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,a=e.actions,o=e.sidebarOpen,s=e.operatorMode,m=e.managerObjects,x=e.toggleList,h=e.middleComponent;return e.features.includes("hide-menu")?(0,f.jsx)(i.Fragment,{}):(0,f.jsxs)(r.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,f.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:h?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!o&&(0,f.jsx)("div",{className:n.logo,children:s?(0,f.jsx)(d.Z,{}):(0,f.jsx)(u.Z,{})}),(0,f.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),h&&(0,f.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:h}),(0,f.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:h?3:6,className:n.rightMenu,children:[a&&a,m&&m.length>0&&(0,f.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){x()},id:"object-manager-toggle",size:"large",children:(0,f.jsx)(p.gx,{})})]})]})})))},60680:function(e,n,t){t(72791);var i=t(11135),a=t(25787),r=t(80184);n.Z=(0,a.Z)((function(e){return(0,i.Z)({root:{padding:0,margin:0,fontSize:".9rem"}})}))((function(e){var n=e.classes,t=e.children;return(0,r.jsx)("h1",{className:n.root,children:t})}))},14917:function(e,n,t){t(72791);var i=t(61889),a=t(11135),r=t(25787),o=t(80184);n.Z=(0,r.Z)((function(e){return(0,a.Z)({headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},screenTitle:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem",borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column"}},rightItems:{display:"flex",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.icon,a=e.title,r=e.subTitle,s=e.actions,l=e.className;return(0,o.jsx)(i.ZP,{container:!0,children:(0,o.jsxs)(i.ZP,{item:!0,xs:12,className:"".concat(n.screenTitle," ").concat(l||""),children:[(0,o.jsxs)("div",{className:n.leftItems,children:[t?(0,o.jsx)("div",{className:n.headerBarIcon,children:t}):null,(0,o.jsxs)("div",{className:n.titleColumn,children:[(0,o.jsx)("h1",{style:{margin:0},children:a}),(0,o.jsx)("span",{className:n.headerBarSubheader,children:r})]})]}),(0,o.jsx)("div",{className:n.rightItems,children:s})]})})}))},59114:function(e,n,t){var i=t(4942),a=t(1413),r=(t(72791),t(63466)),o=t(74900),s=t(27391),l=t(25787),c=t(11135),d=t(23814),u=t(80184);n.Z=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,a.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,a=e.classes,l=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,m=e.overrideClass,p=e.value,f=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(r.Z,{position:d,className:a.adornment,children:(0,u.jsx)(o.Z,{})}));return(0,u.jsx)(s.Z,{placeholder:t,className:m||a.searchField,id:"search-resource",label:"",InputProps:f,onChange:function(e){l(e.target.value)},variant:"standard",value:p})}))},14662:function(e,n,t){t.d(n,{Z:function(){return R}});var i=t(1413),a=t(70885),r=t(72791),o=t(64554),s=t(43896),l=t(80184),c=r.createContext(null);function d(e){var n=e.children,t=e.value,i=function(){var e=r.useState(null),n=(0,a.Z)(e,2),t=n[0],i=n[1];return r.useEffect((function(){i("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),o=r.useMemo((function(){return{idPrefix:i,value:t}}),[i,t]);return(0,l.jsx)(c.Provider,{value:o,children:n})}function u(){return r.useContext(c)}function m(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function p(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}var f=t(87462),x=t(63366),h=t(18073),Z=["children"],g=r.forwardRef((function(e,n){var t=e.children,i=(0,x.Z)(e,Z),a=u();if(null===a)throw new TypeError("No TabContext provided");var o=r.Children.map(t,(function(e){return r.isValidElement(e)?r.cloneElement(e,{"aria-controls":m(a,e.props.value),id:p(a,e.props.value)}):null}));return(0,l.jsx)(h.Z,(0,f.Z)({},i,{ref:n,value:a.value,children:o}))})),v=t(28182),b=t(47630),j=t(93736),y=t(90767),C=t(95159);function N(e){return(0,C.Z)("MuiTabPanel",e)}(0,t(30208).Z)("MuiTabPanel",["root"]);var S=["children","className","value"],k=(0,b.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),P=r.forwardRef((function(e,n){var t=(0,j.Z)({props:e,name:"MuiTabPanel"}),i=t.children,a=t.className,r=t.value,o=(0,x.Z)(t,S),s=(0,f.Z)({},t),c=function(e){var n=e.classes;return(0,y.Z)({root:["root"]},N,n)}(s),d=u();if(null===d)throw new TypeError("No TabContext provided");var h=m(d,r),Z=p(d,r);return(0,l.jsx)(k,(0,f.Z)({"aria-labelledby":Z,className:(0,v.Z)(c.root,a),hidden:r!==d.value,id:h,ref:n,role:"tabpanel",ownerState:s},o,{children:r===d.value&&i}))})),M=t(25787),E=t(13967),T=t(11135),w=t(95193),B={minHeight:60},R=(0,M.Z)((function(e){return(0,T.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var n=e.children,t=e.classes,c=e.selectedTab,u=void 0===c?"0":c,m=e.routes,p=e.isRouteTabs,f=r.useState(u),x=(0,a.Z)(f,2),h=x[0],Z=x[1],v=(0,E.Z)(),b=(0,w.Z)(v.breakpoints.down("md")),j=[],y=[];return n?(n.forEach((function(e){j.push(e.tabConfig),y.push(e.content)})),(0,l.jsx)(d,{value:"".concat(h),children:(0,l.jsxs)(o.Z,{className:t.tabsContainer,children:[(0,l.jsx)(o.Z,{className:t.tabsHeaderContainer,children:(0,l.jsx)(g,{onChange:function(e,n){Z(n)},orientation:b?"horizontal":"vertical",variant:b?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:j.map((function(e,n){return e?(0,l.jsx)(s.Z,(0,i.Z)((0,i.Z)({className:t.tabHeader,value:"".concat(n),style:B},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,l.jsxs)(o.Z,{className:t.tabContentContainer,children:[p?null:y.map((function(e,n){return(0,l.jsx)(P,{classes:(0,i.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),p?(0,l.jsx)("div",{className:t.tabPanel,children:m}):null]})]})})):null}))},88896:function(e,n,t){t.r(n);var i=t(70885),a=(t(72791),t(60364)),r=t(51691),o=t(42649),s=t(23508),l=t(9505),c=t(74833),d=t(80184),u={setErrorSnackMessage:o.Ih},m=(0,a.$j)(null,u);n.default=m((function(e){var n=e.selectedGroup,t=e.deleteOpen,a=e.closeDeleteModalAndRefresh,o=e.setErrorSnackMessage,u=(0,l.Z)((function(){return a(!0)}),(function(e){return o(e)})),m=(0,i.Z)(u,2),p=m[0],f=m[1];if(!n)return null;return(0,d.jsx)(s.Z,{title:"Delete Group",confirmText:"Delete",isOpen:t,titleIcon:(0,d.jsx)(c.Nv,{}),isLoading:p,onConfirm:function(){f("DELETE","/api/v1/group?name=".concat(encodeURI(n)))},onClose:function(){return a(!1)},confirmationContent:(0,d.jsxs)(r.Z,{children:["Are you sure you want to delete group",(0,d.jsx)("br",{}),(0,d.jsx)("b",{children:n}),"?"]})})}))},94061:function(e,n,t){t.r(n),t.d(n,{default:function(){return _},formatPolicy:function(){return O},getPoliciesAsString:function(){return D}});var i=t(70885),a=t(1413),r=t(72791),o=t(79271),s=t(11135),l=t(23814),c=t(42649),d=t(60364),u=t(25787),m=t(61889),p=t(14917),f=t(74833),x=t(92983),h=t(62666),Z=t(81207),g=t(39134),v=t(40228),b=t(56028),j=t(64163),y=t(36151),C=t(80184),N={setModalErrorSnackMessage:c.zb},S=(0,d.$j)(null,N),k=(0,u.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonContainer:{textAlign:"right",marginTop:"1rem"},userSelector:{"& .MuiPaper-root":{padding:0,marginBottom:15}}},l.ID),l.DF),l.oO))}))(S((function(e){var n=e.classes,t=e.title,a=void 0===t?"":t,o=e.groupStatus,s=void 0===o?"enabled":o,l=e.preSelectedUsers,d=void 0===l?[]:l,u=e.selectedGroup,p=void 0===u?"":u,x=e.open,h=e.onClose,g=(0,r.useState)(d),N=(0,i.Z)(g,2),S=N[0],k=N[1];return(0,C.jsxs)(b.Z,{modalOpen:x,onClose:h,title:a,titleIcon:(0,C.jsx)(f.Zm,{}),children:[(0,C.jsx)("div",{className:n.formFieldRow,children:(0,C.jsx)(j.Z,{label:"Selected Group",content:p})}),(0,C.jsx)("div",{className:n.userSelector,children:(0,C.jsx)(v.Z,{selectedUsers:S,setSelectedUsers:k,editMode:!p})}),(0,C.jsxs)(m.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,C.jsx)(y.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){k(d)},children:"Reset"}),(0,C.jsx)(y.Z,{type:"button",variant:"contained",color:"primary",onClick:function(){Z.Z.invoke("PUT","/api/v1/group?name=".concat(encodeURI(p)),{group:p,members:S,status:s}).then((function(e){h()})).catch((function(e){h(),(0,c.zb)(e)}))},children:"Save"})]})]})}))),P=t(88896),M=t(14662),E=t(37516),T=t(74794),w=t(60680),B=t(59114),R=t(56087),A=t(38442),F=t(32291),I=t(84669),U=(0,u.Z)((function(e){return(0,s.Z)({breadcrumLink:{textDecoration:"none",color:"black"}})}))((function(e){e.classes;return(0,C.jsx)(F.Z,{label:(0,C.jsx)(r.Fragment,{children:(0,C.jsx)(I.Z,{to:R.gA.GROUPS,label:"Groups"})}),actions:(0,C.jsx)(r.Fragment,{})})})),L=t(40603),O=function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:"";return e.length<=0?[]:e.split(",")},D=function(e){return e.join(", ")},z={setErrorSnackMessage:c.Ih},G=(0,d.$j)(null,z),_=(0,u.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)((0,a.Z)({pageContainer:{border:"1px solid #EAEAEA",width:"100%"},breadcrumLink:{textDecoration:"none",color:"black"},statusLabel:{fontSize:".8rem",marginRight:".7rem"},statusValue:{fontWeight:"bold",fontSize:".9rem",marginRight:".7rem"},searchField:(0,a.Z)((0,a.Z)({},l.qg.searchField),{},{maxWidth:280})},l.VX),l.bK),{},{actionsTray:(0,a.Z)((0,a.Z)({},l.OR.actionsTray),{},{alignItems:"center","& h1":{flex:1},"& button":{marginLeft:".8rem"},"@media (max-width: 900px)":{justifyContent:"flex-end","& h1":{display:"none"},"& button":{whiteSpace:"nowrap",textOverflow:"ellipsis"}}})},(0,l.Bz)(e.spacing(4))))}))(G((function(e){var n=e.classes,t=(0,r.useState)({}),a=(0,i.Z)(t,2),s=a[0],l=a[1],d=(0,r.useState)(!1),u=(0,i.Z)(d,2),v=u[0],b=u[1],j=(0,r.useState)(!1),y=(0,i.Z)(j,2),N=y[0],S=y[1],F=(0,r.useState)(!1),I=(0,i.Z)(F,2),D=I[0],z=I[1],G=(0,r.useState)(""),_=(0,i.Z)(G,2),K=_[0],H=_[1],W=(0,o.UO)().groupName,V=void 0===W?"":W,$=s.members,X=void 0===$?[]:$,Q=s.policy,q=void 0===Q?"":Q,Y=s.status,J=X.filter((function(e){return e.includes(K)}));(0,r.useEffect)((function(){V&&ae()}),[V]);var ee=O(q),ne="enabled"===Y,te=X.length>0?"Edit Members":"Add Members",ie=(0,A.F)(R.C3,[R.Ft.ADMIN_GET_GROUP]);function ae(){ie&&Z.Z.invoke("GET","/api/v1/group?name=".concat(encodeURI(V))).then((function(e){l(e)})).catch((function(e){(0,c.zb)(e),l({})}))}var re=(0,C.jsxs)(r.Fragment,{children:[(0,C.jsxs)("div",{className:n.actionsTray,children:[(0,C.jsx)(w.Z,{children:"Members"}),(0,C.jsx)(B.Z,{placeholder:"Search members",onChange:function(e){H(e)},overrideClass:n.searchField,value:K}),(0,C.jsx)(A.s,{resource:R.C3,scopes:[R.Ft.ADMIN_ADD_USER_TO_GROUP],errorProps:{disabled:!0},children:(0,C.jsx)(L.Z,{tooltip:te,text:te,variant:"contained",color:"primary",icon:(0,C.jsx)(f.dt,{}),onClick:function(){S(!0)}})})]}),(0,C.jsx)("div",{className:n.tableBlock,children:(0,C.jsx)(A.s,{resource:R.C3,scopes:[R.Ft.ADMIN_LIST_USERS],errorProps:{disabled:!0},children:(0,C.jsx)(x.Z,{itemActions:[{type:"view",onClick:function(e){h.Z.push("".concat(R.gA.USERS,"/").concat(e))}}],columns:[{label:"Access Key",elementKey:""}],selectedItems:[],isLoading:!1,records:J,entityName:"Users",idField:""})})})]}),oe=(0,C.jsxs)(r.Fragment,{children:[(0,C.jsxs)("div",{className:n.actionsTray,children:[(0,C.jsx)(w.Z,{children:"Policies"}),(0,C.jsx)(L.Z,{tooltip:"Set Policies",text:"Set Policies",variant:"contained",color:"primary",icon:(0,C.jsx)(f.v4,{}),onClick:function(){b(!0)}})]}),(0,C.jsx)("div",{className:n.tableBlock,children:(0,C.jsx)(x.Z,{itemActions:[{type:"view",onClick:function(e){h.Z.push("".concat(R.gA.POLICIES,"/").concat(e))}}],columns:[{label:"Policy",elementKey:""}],isLoading:!1,records:ee,entityName:"Policies",idField:""})})]});return(0,C.jsxs)(r.Fragment,{children:[(0,C.jsx)(U,{}),(0,C.jsxs)(T.Z,{className:n.pageContainer,children:[(0,C.jsx)(m.ZP,{item:!0,xs:12,children:(0,C.jsx)(p.Z,{icon:(0,C.jsx)(r.Fragment,{children:(0,C.jsx)(f.ww,{width:40})}),title:V,subTitle:null,actions:(0,C.jsxs)(r.Fragment,{children:[(0,C.jsx)("span",{className:n.statusLabel,children:"Group Status:"}),(0,C.jsx)("span",{id:"group-status",className:n.statusValue,children:ne?"Enabled":"Disabled"}),(0,C.jsx)(A.s,{resource:R.C3,scopes:[R.Ft.ADMIN_ENABLE_GROUP,R.Ft.ADMIN_DISABLE_GROUP],errorProps:{disabled:!0},matchAll:!0,children:(0,C.jsx)(E.Z,{indicatorLabels:["Enabled","Disabled"],checked:ne,value:"group_enabled",id:"group-status",name:"group-status",onChange:function(){var e;e=!ne,Z.Z.invoke("PUT","/api/v1/group?name=".concat(encodeURI(V)),{group:V,members:X,status:e?"enabled":"disabled"}).then((function(e){ae()})).catch((function(e){(0,c.zb)(e)}))},switchOnly:!0})}),(0,C.jsx)(A.s,{resource:R.C3,scopes:[R.Ft.ADMIN_REMOVE_USER_FROM_GROUP],errorProps:{disabled:!0},children:(0,C.jsx)("div",{className:n.spacerLeft,children:(0,C.jsx)(L.Z,{tooltip:"Delete Group",text:"",variant:"outlined",color:"secondary",icon:(0,C.jsx)(f.XH,{}),onClick:function(){z(!0)}})})})]})})}),(0,C.jsx)(m.ZP,{item:!0,xs:12,children:(0,C.jsxs)(M.Z,{children:[{tabConfig:{label:"Members"},content:re},{tabConfig:{label:"Policies"},content:oe}]})})]}),v?(0,C.jsx)(g.default,{open:v,selectedGroup:V,selectedUser:null,closeModalAndRefresh:function(){b(!1),ae()}}):null,N?(0,C.jsx)(k,{selectedGroup:V,onSaveClick:function(){},title:te,groupStatus:Y,preSelectedUsers:X,open:N,onClose:function(){S(!1),ae()}}):null,D&&(0,C.jsx)(P.default,{deleteOpen:D,selectedGroup:V,closeDeleteModalAndRefresh:function(e){z(!1),e&&h.Z.push(R.gA.GROUPS)}})]})})))},40228:function(e,n,t){var i=t(42982),a=t(70885),r=t(1413),o=t(72791),s=t(60364),l=t(11135),c=t(25787),d=t(40986),u=t(26181),m=t.n(u),p=t(10703),f=t(61889),x=t(21639),h=t(23814),Z=t(42649),g=t(81207),v=t(92983),b=t(59114),j=t(80184),y={setModalErrorSnackMessage:Z.zb},C=(0,s.$j)(null,y);n.Z=(0,c.Z)((function(e){return(0,l.Z)((0,r.Z)((0,r.Z)({paper:{display:"flex",overflow:"auto",flexDirection:"column",boxShadow:"none",border:0},tableBlock:(0,r.Z)({},h.VX.tableBlock),searchBox:{flex:1}},h.OR),{},{actionsTitle:{fontSize:14,alignSelf:"center",minWidth:160,marginRight:10},noFound:{textAlign:"center",padding:e.spacing(3),border:"1px solid #EAEAEA",fontSize:".9rem"}},h.jY))}))(C((function(e){var n=e.classes,t=e.selectedUsers,r=e.setSelectedUsers,s=e.editMode,l=void 0!==s&&s,c=e.setModalErrorSnackMessage,u=(0,o.useState)([]),h=(0,a.Z)(u,2),Z=h[0],y=h[1],C=(0,o.useState)(!1),N=(0,a.Z)(C,2),S=N[0],k=N[1],P=(0,o.useState)(""),M=(0,a.Z)(P,2),E=M[0],T=M[1],w=(0,o.useCallback)((function(){g.Z.invoke("GET","/api/v1/users").then((function(e){var n=m()(e,"users",[]);n||(n=[]),y(n.sort(x.LQ)),k(!1)})).catch((function(e){c(e),k(!1)}))}),[c]);(0,o.useEffect)((function(){k(!0)}),[]),(0,o.useEffect)((function(){S&&w()}),[S,w]);var B=t||[],R=Z.filter((function(e){return e.accessKey.includes(E)}));return(0,j.jsx)(o.Fragment,{children:(0,j.jsx)(f.ZP,{item:!0,xs:12,children:(0,j.jsxs)(p.Z,{className:n.paper,children:[S&&(0,j.jsx)(d.Z,{}),null!==Z&&Z.length>0?(0,j.jsxs)(o.Fragment,{children:[(0,j.jsxs)(f.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,j.jsx)("label",{className:n.actionsTitle,children:l?"Edit Members":"Assign Users"}),(0,j.jsx)("div",{className:n.searchBox,children:(0,j.jsx)(b.Z,{placeholder:"Filter Users",adornmentPosition:"end",onChange:T,value:E})})]}),(0,j.jsx)(f.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,j.jsx)(v.Z,{columns:[{label:"Access Key",elementKey:"accessKey"}],onSelect:function(e){var n=e.target,t=n.value,a=n.checked,o=(0,i.Z)(B);return a?o.push(t):o=o.filter((function(e){return e!==t})),r(o),o},selectedItems:B,isLoading:S,records:R,entityName:"Users",idField:"accessKey",customPaperHeight:n.multiSelectTable})})]}):(0,j.jsx)("div",{className:n.noFound,children:"No Users to display"})]})})})})))},58400:function(e,n,t){var i=t(42982),a=t(70885),r=t(1413),o=t(72791),s=t(60364),l=t(11135),c=t(25787),d=t(40986),u=t(61889),m=t(21639),p=t(23814),f=t(42649),x=t(81207),h=t(92983),Z=t(59114),g=t(80184),v=(0,s.$j)(null,{setModalErrorSnackMessage:f.zb});n.Z=(0,c.Z)((function(e){return(0,l.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({noFound:{textAlign:"center",padding:"10px 0"},searchBox:{flex:1},fieldLabel:{fontWeight:400,width:160,marginRight:10},tableBlock:(0,r.Z)({},p.VX.tableBlock),filterBox:{display:"flex",marginBottom:15,alignItems:"center","& span":{fontSize:14}}},p.qg),p.VX),p.OR),p.jY))}))(v((function(e){var n=e.classes,t=e.selectedPolicy,r=void 0===t?[]:t,s=e.setSelectedPolicy,l=e.setModalErrorSnackMessage,c=(0,o.useState)([]),p=(0,a.Z)(c,2),f=p[0],v=p[1],b=(0,o.useState)(!1),j=(0,a.Z)(b,2),y=j[0],C=j[1],N=(0,o.useState)(""),S=(0,a.Z)(N,2),k=S[0],P=S[1],M=(0,o.useCallback)((function(){C(!0),x.Z.invoke("GET","/api/v1/policies?limit=1000").then((function(e){var n=null===e.policies?[]:e.policies;C(!1),v(n.sort(m.g4))})).catch((function(e){C(!1),l(e)}))}),[l]);(0,o.useEffect)((function(){C(!0)}),[]),(0,o.useEffect)((function(){y&&M()}),[y,M]);var E=f.filter((function(e){return e.name.includes(k)}));return(0,g.jsx)(o.Fragment,{children:(0,g.jsxs)(u.ZP,{item:!0,xs:12,children:[y&&(0,g.jsx)(d.Z,{}),f.length>0?(0,g.jsxs)(o.Fragment,{children:[(0,g.jsxs)(u.ZP,{item:!0,xs:12,className:n.filterBox,children:[(0,g.jsx)("span",{className:n.fieldLabel,children:"Assign Policies"}),(0,g.jsx)("div",{className:n.searchBox,children:(0,g.jsx)(Z.Z,{placeholder:"Filter Policy",onChange:function(e){P(e)},value:k})})]}),(0,g.jsx)(u.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,g.jsx)(h.Z,{columns:[{label:"Policy",elementKey:"name"}],onSelect:function(e){var n=e.target,t=n.value,a=n.checked,o=(0,i.Z)(r);a?o.push(t):o=o.filter((function(e){return e!==t})),o=o.filter((function(e){return""!==e})),s(o)},selectedItems:r,isLoading:y,records:E,entityName:"Policies",idField:"name",customPaperHeight:n.multiSelectTable})})]}):(0,g.jsx)("div",{className:n.noFound,children:"No Policies Available"})]})})})))},39134:function(e,n,t){t.r(n);var i=t(70885),a=t(1413),r=t(72791),o=t(60364),s=t(26181),l=t.n(s),c=t(11135),d=t(25787),u=t(36151),m=t(40986),p=t(61889),f=t(23814),x=t(42649),h=t(56028),Z=t(81207),g=t(58400),v=t(64163),b=t(80184),j={setModalErrorSnackMessage:x.zb},y=(0,o.$j)(null,j);n.default=(0,d.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},f.oO),f.bK),{},{tableBlock:(0,a.Z)((0,a.Z)({},f.VX.tableBlock),{},{marginTop:15}),buttonContainer:{textAlign:"right",marginTop:".9rem"}}))}))(y((function(e){var n=e.classes,t=e.closeModalAndRefresh,a=e.selectedUser,o=e.selectedGroup,s=e.setModalErrorSnackMessage,c=e.open,d=(0,r.useState)(!1),f=(0,i.Z)(d,2),x=f[0],j=f[1],y=(0,r.useState)([]),C=(0,i.Z)(y,2),N=C[0],S=C[1],k=(0,r.useState)([]),P=(0,i.Z)(k,2),M=P[0],E=P[1];(0,r.useEffect)((function(){if(c){if(null!==o)return void(o&&Z.Z.invoke("GET","/api/v1/group?name=".concat(encodeURI(o))).then((function(e){var n=l()(e,"policy","");S(n.split(",")),E(n.split(","))})).catch((function(e){s(e),j(!1)})));var e=l()(a,"policy",[]);S(e),E(e)}}),[c,o,a]);var T=l()(a,"accessKey","");return(0,b.jsxs)(h.Z,{onClose:function(){t()},modalOpen:c,title:"Set Policies",children:[(0,b.jsx)(p.ZP,{item:!0,xs:12,children:(0,b.jsx)(v.Z,{label:"Selected ".concat(null!==o?"Group":"User"),content:null!==o?o:T})}),(0,b.jsx)(p.ZP,{item:!0,xs:12,children:(0,b.jsx)(v.Z,{label:"Current Policy",content:N.join(", ")})}),(0,b.jsx)("div",{className:n.tableBlock,children:(0,b.jsx)(g.Z,{selectedPolicy:M,setSelectedPolicy:E})}),(0,b.jsxs)(p.ZP,{item:!0,xs:12,className:n.buttonContainer,children:[(0,b.jsx)(u.Z,{type:"button",variant:"outlined",color:"primary",className:n.spacerRight,onClick:function(){E(N)},children:"Reset"}),(0,b.jsx)(u.Z,{type:"button",variant:"contained",color:"primary",disabled:x,onClick:function(){var e="user",n=null;null!==o?(e="group",n=o):null!==a&&(n=a.accessKey),j(!0),Z.Z.invoke("PUT","/api/v1/set-policy",{name:M,entityName:n,entityType:e}).then((function(){j(!1),t()})).catch((function(e){j(!1),s(e)}))},children:"Save"})]}),x&&(0,b.jsx)(p.ZP,{item:!0,xs:12,children:(0,b.jsx)(m.Z,{})})]})})))},21639:function(e,n,t){t.d(n,{LQ:function(){return i},V2:function(){return r},g4:function(){return a}});var i=function(e,n){return e.accessKey>n.accessKey?1:e.accessKeyn.name?1:e.namen?1:e.\n\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\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 BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\n","import React, { Fragment } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { predefinedList } from \"../common/styleLibrary\";\n\ninterface IPredefinedList {\n classes: any;\n label?: string;\n content: any;\n multiLine?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...predefinedList,\n });\n\nconst PredefinedList = ({\n classes,\n label = \"\",\n content,\n multiLine = false,\n}: IPredefinedList) => {\n return (\n \n \n {label !== \"\" && (\n \n {label}\n \n )}\n \n \n {content}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(PredefinedList);\n","import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n fontSize: \".9rem\",\n },\n });\n\ninterface IPanelTitle extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst PanelTitle = ({ classes, children }: IPanelTitle) => {\n return

    {children}

    ;\n};\n\nexport default withStyles(styles)(PanelTitle);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IScreenTitle {\n classes: any;\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n screenTitle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n },\n });\n\nconst ScreenTitle = ({\n classes,\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n return (\n \n \n
    \n {icon ?
    {icon}
    : null}\n
    \n

    {title}

    \n {subTitle}\n
    \n
    \n\n
    {actions}
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ScreenTitle);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of `` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n
    {routes}
    \n ) : null}\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport ConfirmDialog from \"../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../Common/Hooks/useApi\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\n\ninterface IDeleteGroup {\n selectedGroup: string;\n deleteOpen: boolean;\n closeDeleteModalAndRefresh: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteGroup = ({\n selectedGroup,\n deleteOpen,\n closeDeleteModalAndRefresh,\n setErrorSnackMessage,\n}: IDeleteGroup) => {\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedGroup) {\n return null;\n }\n const onDeleteGroup = () => {\n invokeDeleteApi(\"DELETE\", `/api/v1/group?name=${encodeURI(selectedGroup)}`);\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onDeleteGroup}\n onClose={onClose}\n confirmationContent={\n \n Are you sure you want to delete group\n
    \n {selectedGroup}?\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteGroup);\n","import React, { useState } from \"react\";\nimport UsersSelectors from \"./UsersSelectors\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport PredefinedList from \"../Common/FormComponents/PredefinedList/PredefinedList\";\nimport Grid from \"@mui/material/Grid\";\nimport { Button } from \"@mui/material\";\nimport api from \"../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n formFieldStyles,\n modalBasic,\n modalStyleUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AddMembersToGroupIcon } from \"../../../icons\";\n\ntype UserPickerModalProps = {\n classes?: any;\n title?: string;\n preSelectedUsers?: string[];\n selectedGroup?: string;\n open: boolean;\n onClose: () => void;\n onSaveClick: () => void;\n groupStatus?: string;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n userSelector: {\n \"& .MuiPaper-root\": {\n padding: 0,\n marginBottom: 15,\n },\n },\n ...modalStyleUtils,\n ...formFieldStyles,\n ...modalBasic,\n });\n\nconst AddGroupMember = ({\n classes,\n title = \"\",\n groupStatus = \"enabled\",\n preSelectedUsers = [],\n selectedGroup = \"\",\n open,\n onClose,\n}: UserPickerModalProps) => {\n const [selectedUsers, setSelectedUsers] = useState(preSelectedUsers);\n\n function addMembersToGroup() {\n return api\n .invoke(\"PUT\", `/api/v1/group?name=${encodeURI(selectedGroup)}`, {\n group: selectedGroup,\n members: selectedUsers,\n status: groupStatus,\n })\n .then((res) => {\n onClose();\n })\n .catch((err: ErrorResponseHandler) => {\n onClose();\n setModalErrorSnackMessage(err);\n });\n }\n\n return (\n }\n >\n
    \n \n
    \n
    \n \n
    \n\n \n {\n setSelectedUsers(preSelectedUsers);\n }}\n >\n Reset\n \n\n {\n addMembersToGroup();\n }}\n >\n Save\n \n \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\nexport default withStyles(styles)(connector(AddGroupMember));\n","import React, { Fragment } from \"react\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\nimport BackLink from \"../../../common/BackLink\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n });\n\ntype DetailsHeaderProps = {\n classes: any;\n};\n\nconst GroupDetailsHeader = ({ classes }: DetailsHeaderProps) => {\n return (\n \n \n
    \n }\n actions={}\n />\n );\n};\n\nexport default withStyles(styles)(GroupDetailsHeader);\n","import React, { Fragment, useEffect, useState } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n spacingUtils,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport {\n setErrorSnackMessage,\n setModalErrorSnackMessage,\n} from \"../../../actions\";\nimport { connect } from \"react-redux\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid } from \"@mui/material\";\nimport ScreenTitle from \"../Common/ScreenTitle/ScreenTitle\";\nimport {\n IAMPoliciesIcon,\n TrashIcon,\n GroupsIcon,\n AddIcon,\n} from \"../../../icons\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport history from \"../../../history\";\nimport api from \"../../../common/api\";\nimport SetPolicy from \"../Policies/SetPolicy\";\nimport AddGroupMember from \"./AddGroupMember\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport DeleteGroup from \"./DeleteGroup\";\nimport VerticalTabs from \"../Common/VerticalTabs/VerticalTabs\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport PanelTitle from \"../Common/PanelTitle/PanelTitle\";\nimport SearchBox from \"../Common/SearchBox\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../common/SecureComponent\";\nimport GroupDetailsHeader from \"./GroupDetailsHeader\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n pageContainer: {\n border: \"1px solid #EAEAEA\",\n width: \"100%\",\n },\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n statusLabel: {\n fontSize: \".8rem\",\n marginRight: \".7rem\",\n },\n statusValue: {\n fontWeight: \"bold\",\n fontSize: \".9rem\",\n marginRight: \".7rem\",\n },\n searchField: {\n ...searchField.searchField,\n maxWidth: 280,\n },\n ...tableStyles,\n ...spacingUtils,\n actionsTray: {\n ...actionsTray.actionsTray,\n\n alignItems: \"center\",\n \"& h1\": {\n flex: 1,\n },\n \"& button\": {\n marginLeft: \".8rem\",\n },\n \"@media (max-width: 900px)\": {\n justifyContent: \"flex-end\",\n \"& h1\": {\n display: \"none\",\n },\n \"& button\": {\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n },\n },\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IGroupDetailsProps {\n classes: any;\n match: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\ntype GroupInfo = {\n members?: any[];\n name?: string;\n policy?: string;\n status?: string;\n};\n\nexport const formatPolicy = (policy: string = \"\"): string[] => {\n if (policy.length <= 0) return [];\n return policy.split(\",\");\n};\n\nexport const getPoliciesAsString = (policies: string[]): string => {\n return policies.join(\", \");\n};\n\nconst GroupsDetails = ({ classes }: IGroupDetailsProps) => {\n const [groupDetails, setGroupDetails] = useState({});\n\n /*Modals*/\n const [policyOpen, setPolicyOpen] = useState(false);\n const [usersOpen, setUsersOpen] = useState(false);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [memberFilter, setMemberFilter] = useState(\"\");\n\n //const [policyFilter, setPolicyFilter] = useState(\"\");\n\n const { groupName = \"\" } = useParams>();\n\n const { members = [], policy = \"\", status: groupEnabled } = groupDetails;\n\n const filteredMembers = members.filter((elementItem) =>\n elementItem.includes(memberFilter)\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(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_GROUP,\n ]);\n\n function fetchGroupInfo() {\n if (getGroupDetails) {\n api\n .invoke(\"GET\", `/api/v1/group?name=${encodeURI(groupName)}`)\n .then((res: any) => {\n setGroupDetails(res);\n })\n .catch((err) => {\n setModalErrorSnackMessage(err);\n setGroupDetails({});\n });\n }\n }\n\n function toggleGroupStatus(nextStatus: boolean) {\n return api\n .invoke(\"PUT\", `/api/v1/group?name=${encodeURI(groupName)}`, {\n group: groupName,\n members: members,\n status: nextStatus ? \"enabled\" : \"disabled\",\n })\n .then((res) => {\n fetchGroupInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n });\n }\n\n const groupsTabContent = (\n \n
    \n Members\n {\n setMemberFilter(searchText);\n }}\n overrideClass={classes.searchField}\n value={memberFilter}\n />\n \n }\n onClick={() => {\n setUsersOpen(true);\n }}\n />\n \n
    \n\n
    \n \n {\n history.push(`${IAM_PAGES.USERS}/${userName}`);\n },\n },\n ]}\n columns={[{ label: \"Access Key\", elementKey: \"\" }]}\n selectedItems={[]}\n isLoading={false}\n records={filteredMembers}\n entityName=\"Users\"\n idField=\"\"\n />\n \n
    \n
    \n );\n\n const policiesTabContent = (\n \n
    \n Policies\n\n }\n onClick={() => {\n setPolicyOpen(true);\n }}\n />\n
    \n
    \n {\n history.push(`${IAM_PAGES.POLICIES}/${policy}`);\n },\n },\n ]}\n columns={[{ label: \"Policy\", elementKey: \"\" }]}\n isLoading={false}\n records={groupPolicies}\n entityName=\"Policies\"\n idField=\"\"\n />\n
    \n
    \n );\n return (\n \n \n\n \n \n \n \n
    \n }\n title={groupName}\n subTitle={null}\n actions={\n \n Group Status:\n \n {isGroupEnabled ? \"Enabled\" : \"Disabled\"}\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 }\n />\n \n\n \n \n {{\n tabConfig: { label: \"Members\" },\n content: groupsTabContent,\n }}\n {{\n tabConfig: { label: \"Policies\" },\n content: policiesTabContent,\n }}\n \n \n \n {/*Modals*/}\n {policyOpen ? (\n {\n setPolicyOpen(false);\n fetchGroupInfo();\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 history.push(IAM_PAGES.GROUPS);\n }\n }}\n />\n )}\n {/*Modals*/}\n \n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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 } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport Paper from \"@mui/material/Paper\";\nimport Grid from \"@mui/material/Grid\";\nimport { UsersList } from \"../Users/types\";\nimport { usersSort } from \"../../../utils/sortFunctions\";\nimport {\n actionsTray,\n selectorsCommon,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport SearchBox from \"../Common/SearchBox\";\n\ninterface IGroupsProps {\n classes: any;\n selectedUsers: string[];\n setSelectedUsers: any;\n editMode?: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n paper: {\n display: \"flex\",\n overflow: \"auto\",\n flexDirection: \"column\",\n // paddingTop: 15,\n boxShadow: \"none\",\n border: 0,\n },\n\n tableBlock: {\n ...tableStyles.tableBlock,\n },\n searchBox: {\n flex: 1,\n },\n ...actionsTray,\n actionsTitle: {\n fontSize: 14,\n alignSelf: \"center\",\n minWidth: 160,\n marginRight: 10,\n },\n noFound: {\n textAlign: \"center\",\n padding: theme.spacing(3),\n border: \"1px solid #EAEAEA\",\n fontSize: \".9rem\",\n },\n ...selectorsCommon,\n });\n\nconst UsersSelectors = ({\n classes,\n selectedUsers,\n setSelectedUsers,\n editMode = false,\n setModalErrorSnackMessage,\n}: IGroupsProps) => {\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\n .invoke(\"GET\", `/api/v1/users`)\n .then((res: UsersList) => {\n let users = get(res, \"users\", []);\n\n if (!users) {\n users = [];\n }\n\n setRecords(users.sort(usersSort));\n isLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n isLoading(false);\n });\n }, [setModalErrorSnackMessage]);\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 \n {loading && }\n {records !== null && records.length > 0 ? (\n \n \n \n
    \n \n
    \n
    \n \n \n \n
    \n ) : (\n
    No Users to display
    \n )}\n
    \n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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, { useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport { policySort } from \"../../../utils/sortFunctions\";\nimport {\n actionsTray,\n searchField,\n selectorsCommon,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { PolicyList } from \"./types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport SearchBox from \"../Common/SearchBox\";\n\ninterface ISelectPolicyProps {\n classes: any;\n selectedPolicy?: string[];\n setSelectedPolicy: any;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n noFound: {\n textAlign: \"center\",\n padding: \"10px 0\",\n },\n searchBox: {\n flex: 1,\n },\n fieldLabel: {\n fontWeight: 400,\n width: 160,\n marginRight: 10,\n },\n tableBlock: {\n ...tableStyles.tableBlock,\n },\n filterBox: {\n display: \"flex\",\n marginBottom: 15,\n alignItems: \"center\",\n \"& span\": {\n fontSize: 14,\n },\n },\n ...searchField,\n ...tableStyles,\n ...actionsTray,\n ...selectorsCommon,\n });\n\nconst PolicySelectors = ({\n classes,\n selectedPolicy = [],\n setSelectedPolicy,\n setModalErrorSnackMessage,\n}: ISelectPolicyProps) => {\n // Local State\n const [records, setRecords] = useState([]);\n const [loading, isLoading] = useState(false);\n const [filter, setFilter] = useState(\"\");\n\n const fetchPolicies = useCallback(() => {\n isLoading(true);\n\n api\n .invoke(\"GET\", `/api/v1/policies?limit=1000`)\n .then((res: PolicyList) => {\n const policies = res.policies === null ? [] : res.policies;\n isLoading(false);\n setRecords(policies.sort(policySort));\n })\n .catch((err: ErrorResponseHandler) => {\n isLoading(false);\n setModalErrorSnackMessage(err);\n });\n }, [setModalErrorSnackMessage]);\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[] = [...selectedPolicy]; // 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 setSelectedPolicy(elements);\n };\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.name.includes(filter)\n );\n\n return (\n \n \n {loading && }\n {records.length > 0 ? (\n \n \n Assign Policies\n
    \n {\n setFilter(value);\n }}\n value={filter}\n />\n
    \n
    \n \n \n \n
    \n ) : (\n
    No Policies Available
    \n )}\n
    \n
    \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(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, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n modalBasic,\n spacingUtils,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { User } from \"../Users/types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../common/api\";\nimport PolicySelectors from \"./PolicySelectors\";\nimport PredefinedList from \"../Common/FormComponents/PredefinedList/PredefinedList\";\n\ninterface ISetPolicyProps {\n classes: any;\n closeModalAndRefresh: () => void;\n selectedUser: User | null;\n selectedGroup: string | null;\n open: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n ...spacingUtils,\n tableBlock: {\n ...tableStyles.tableBlock,\n marginTop: 15,\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \".9rem\",\n },\n });\n\nconst SetPolicy = ({\n classes,\n closeModalAndRefresh,\n selectedUser,\n selectedGroup,\n setModalErrorSnackMessage,\n open,\n}: ISetPolicyProps) => {\n //Local States\n const [loading, setLoading] = useState(false);\n const [actualPolicy, setActualPolicy] = useState([]);\n const [selectedPolicy, setSelectedPolicy] = useState([]);\n\n const setPolicyAction = () => {\n let entity = \"user\";\n let value = null;\n if (selectedGroup !== null) {\n entity = \"group\";\n value = selectedGroup;\n } else {\n if (selectedUser !== null) {\n value = selectedUser.accessKey;\n }\n }\n\n setLoading(true);\n\n api\n .invoke(\"PUT\", `/api/v1/set-policy`, {\n name: selectedPolicy,\n entityName: value,\n entityType: entity,\n })\n .then(() => {\n setLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n };\n\n const fetchGroupInformation = () => {\n if (selectedGroup) {\n api\n .invoke(\"GET\", `/api/v1/group?name=${encodeURI(selectedGroup)}`)\n .then((res: any) => {\n const groupPolicy: String = get(res, \"policy\", \"\");\n setActualPolicy(groupPolicy.split(\",\"));\n setSelectedPolicy(groupPolicy.split(\",\"));\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n setLoading(false);\n });\n }\n };\n\n const resetSelection = () => {\n setSelectedPolicy(actualPolicy);\n };\n\n useEffect(() => {\n if (open) {\n if (selectedGroup !== null) {\n fetchGroupInformation();\n return;\n }\n\n const userPolicy: string[] = get(selectedUser, \"policy\", []);\n setActualPolicy(userPolicy);\n setSelectedPolicy(userPolicy);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [open, selectedGroup, 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 \n \n \n \n \n
    \n \n
    \n \n \n Reset\n \n \n Save\n \n \n {loading && (\n \n \n \n )}\n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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\ninterface userInterface {\n accessKey: string;\n}\n\ninterface policyInterface {\n name: string;\n}\n\nexport const usersSort = (a: userInterface, b: userInterface) => {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: policyInterface, b: policyInterface) => {\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","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","useStyles","makeStyles","root","padding","props","variant","tgtColor","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","disabled","tooltip","restProps","size","border","borderWidth","borderStyle","backgroundColor","opacity","contained","dark","children","rest","button","clsx","title","predefinedList","content","multiLine","Fragment","prefinedContainer","item","xs","predefinedTitle","innerContentMultiline","innerContent","onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","pageContentStyles","contentSpacer","container","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","titleText","closeContainer","closeButton","disableRipple","actions","cancelButton","type","id","confirmButton","loading","loadingPosition","startIcon","autoFocus","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","customDialogSize","maxWidth","snackBarCommon","modalOpen","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","toggleList","sidebarOpen","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","justifyContent","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","includes","direction","sm","md","component","margin","headerBarIcon","headerBarSubheader","screenTitle","borderBottom","flexFlow","titleColumn","leftItems","rightItems","subTitle","style","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","InputProps","e","target","Context","React","TabContext","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","child","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","name","overridesResolver","styles","spacing","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","hidden","role","tabStripStyle","tabsContainer","tabsHeaderContainer","borderRight","marginBottom","tabContentContainer","tabPanel","selectedTab","routes","isRouteTabs","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","push","tabConfig","Box","newValue","orientation","scrollButtons","tabList","map","index","Tab","tabHeader","disableTouchRipple","focusRipple","setErrorSnackMessage","selectedGroup","deleteOpen","closeDeleteModalAndRefresh","useApi","deleteLoading","invokeDeleteApi","encodeURI","setModalErrorSnackMessage","buttonContainer","userSelector","modalStyleUtils","formFieldStyles","modalBasic","groupStatus","preSelectedUsers","selectedUsers","setSelectedUsers","ModalWrapper","formFieldRow","PredefinedList","UsersSelectors","editMode","Grid","modalButtonBar","Button","group","members","status","breadcrumLink","PageHeader","BackLink","IAM_PAGES","formatPolicy","policy","split","getPoliciesAsString","policies","join","pageContainer","statusLabel","statusValue","tableStyles","spacingUtils","actionsTray","flex","whiteSpace","textOverflow","containerForHeader","groupDetails","setGroupDetails","policyOpen","setPolicyOpen","usersOpen","setUsersOpen","setDeleteOpen","memberFilter","setMemberFilter","useParams","groupName","groupEnabled","filteredMembers","filter","elementItem","fetchGroupInfo","groupPolicies","isGroupEnabled","memberActionText","getGroupDetails","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","groupsTabContent","PanelTitle","SearchBox","searchText","SecureComponent","resource","scopes","errorProps","RBIconButton","tableBlock","TableWrapper","itemActions","userName","history","columns","elementKey","selectedItems","records","entityName","idField","policiesTabContent","PageLayout","ScreenTitle","matchAll","FormSwitchWrapper","indicatorLabels","checked","nextStatus","switchOnly","spacerLeft","VerticalTabs","SetPolicy","selectedUser","closeModalAndRefresh","onSaveClick","DeleteGroup","isDelSuccess","overflow","searchBox","actionsTitle","alignSelf","minWidth","noFound","selectorsCommon","setRecords","setFilter","fetchUsers","useCallback","users","get","sort","usersSort","selUsers","filteredRecords","accessKey","onSelect","targetD","elements","element","customPaperHeight","multiSelectTable","fieldLabel","filterBox","selectedPolicy","setSelectedPolicy","fetchPolicies","policySort","setLoading","actualPolicy","setActualPolicy","groupPolicy","userPolicy","spacerRight","entity","entityType","a","b","stringSort","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4209.67dd1f00.chunk.js b/portal-ui/build/static/js/4209.67dd1f00.chunk.js new file mode 100644 index 000000000..f3b6a5f9e --- /dev/null +++ b/portal-ui/build/static/js/4209.67dd1f00.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4209],{40603:function(e,t,n){"use strict";var a=n(1413),o=n(45987),r=(n(72791),n(85531)),c=n(72455),i=n(80184),l=["onClick","text","disabled","tooltip","icon","className"],s=(0,c.Z)((function(e){return{root:{padding:"7px",color:function(t){return function(t){var n=t.variant,a=t.color,o=e.palette.primary.main;return"primary"===a&&"contained"===n?o=e.palette.primary.contrastText:"primary"===a&&"outlined"===n?o=e.palette.primary.main:"secondary"===a&&(o=e.palette.secondary.main),o}(t)},borderColor:function(t){return"secondary"===t.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));t.Z=function(e){var t=s(e),n=e.onClick,c=e.text,d=void 0===c?"":c,u=e.disabled,p=void 0!==u&&u,m=e.tooltip,h=e.icon,x=void 0===h?null:h,f=e.className,g=void 0===f?"":f,b=(0,o.Z)(e,l);return(0,i.jsxs)(r.Z,(0,a.Z)((0,a.Z)({className:g,classes:t,tooltip:m||d,variant:"outlined",onClick:n,disabled:p,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},b),{},{children:[(0,i.jsx)("span",{children:d})," ",x]}))}},85531:function(e,t,n){"use strict";var a=n(1413),o=n(4942),r=n(45987),c=(n(72791),n(11135)),i=n(25787),l=n(13400),s=n(20068),d=n(28182),u=n(80184),p=["classes","children","variant","tooltip"];t.Z=(0,i.Z)((function(e){return(0,c.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var t=e.classes,n=e.children,c=e.variant,i=void 0===c?"outlined":c,m=e.tooltip,h=(0,r.Z)(e,p),x=(0,u.jsx)(l.Z,(0,a.Z)((0,a.Z)({},h),{},{className:(0,d.Z)(t.root,(0,o.Z)({},t.contained,"contained"===i)),children:n}));return m&&""!==m?(0,u.jsx)(s.Z,{title:m,children:(0,u.jsx)("span",{children:x})}):x}))},74794:function(e,t,n){"use strict";var a=n(1413),o=(n(72791),n(61889)),r=n(11135),c=n(25787),i=n(23814),l=n(80184);t.Z=(0,c.Z)((function(e){return(0,r.Z)((0,a.Z)({},i.Bw))}))((function(e){var t=e.classes,n=e.className,a=void 0===n?"":n,r=e.children;return(0,l.jsx)("div",{className:t.contentSpacer,children:(0,l.jsx)(o.ZP,{container:!0,children:(0,l.jsx)(o.ZP,{item:!0,xs:12,className:a,children:r})})})}))},32291:function(e,t,n){"use strict";var a=n(72791),o=n(60364),r=n(61889),c=n(11135),i=n(25787),l=n(20890),s=n(13400),d=n(95466),u=n(84683),p=n(3925),m=n(13048),h=n(80184),x={toggleList:p.kQ},f=(0,o.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),x);t.Z=f((0,i.Z)((function(e){return(0,c.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,n=e.label,o=e.actions,c=e.sidebarOpen,i=e.operatorMode,p=e.managerObjects,x=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(a.Fragment,{}):(0,h.jsxs)(r.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!c&&(0,h.jsx)("div",{className:t.logo,children:i?(0,h.jsx)(d.Z,{}):(0,h.jsx)(u.Z,{})}),(0,h.jsx)(l.Z,{variant:"h4",className:t.labelStyle,children:n})]}),f&&(0,h.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,h.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.rightMenu,children:[o&&o,p&&p.length>0&&(0,h.jsx)(s.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){x()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(m.gx,{})})]})]})})))},59121:function(e,t,n){"use strict";n.r(t);var a=n(70885),o=n(1413),r=n(72791),c=n(61889),i=n(64554),l=n(95087),s=n(60364),d=n(30061),u=n(11135),p=n(25787),m=n(45248),h=n(26824),x=n(23814),f=n(92983),g=n(32291),b=n(34866),v=n(72426),Z=n.n(v),y=n(74794),k=n(13048),C=n(40603),j=n(21435),w=n(80184),S=null,I=(0,s.$j)((function(e){return{messages:e.trace.messages,traceStarted:e.trace.traceStarted}}),{traceMessageReceived:d.ho,traceResetMessages:d.At,setTraceStarted:d.qv});t.default=I((0,p.Z)((function(e){return(0,u.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({sizeItem:{width:150},timeItem:{width:100},startButton:{textAlign:"right"}},x.OR),x.qg),x.bp),x.VX),{},{searchField:(0,o.Z)((0,o.Z)({},x.qg.searchField),{},{margin:"0 5px","&:first-of-type":{marginLeft:0},"&:last-of-type":{marginRight:0}}),tableWrapper:{height:"calc(100vh - 292px)"},inlineCheckboxes:(0,o.Z)((0,o.Z)({},x.IX.inlineCheckboxes),{},{alignItems:"center","@media (max-width: 900px)":{flexFlow:"column",alignItems:"flex-start"}}),checkBoxLabel:{marginTop:10,fontSize:16,fontWeight:500},formBox:{border:"1px solid #EAEAEA",padding:25,marginBottom:15},traceCheckedIcon:{width:"14px",height:"14px",marginLeft:"0px"},unCheckedIcon:{width:"14px",height:"14px"},midColumnCheckboxes:{display:"flex"},separatorBar:{fontSize:16,fontWeight:700,paddingTop:19,"@media (max-width: 900px)":{display:"none"}}},(0,x.Bz)(e.spacing(4))))}))((function(e){var t=e.classes,n=e.traceMessageReceived,o=e.traceResetMessages,s=e.setTraceStarted,d=e.traceStarted,u=e.messages,p=(0,r.useState)(""),x=(0,a.Z)(p,2),v=x[0],I=x[1],T=(0,r.useState)(""),N=(0,a.Z)(T,2),z=N[0],M=N[1],F=(0,r.useState)(""),_=(0,a.Z)(F,2),O=_[0],L=_[1],B=(0,r.useState)(""),P=(0,a.Z)(B,2),E=P[0],R=P[1],W=(0,r.useState)(0),H=(0,a.Z)(W,2),A=H[0],D=H[1],V=(0,r.useState)(!1),K=(0,a.Z)(V,2),U=K[0],q=K[1],Y=(0,r.useState)(!0),G=(0,a.Z)(Y,2),X=G[0],$=G[1],J=(0,r.useState)(!1),Q=(0,a.Z)(J,2),ee=Q[0],te=Q[1],ne=(0,r.useState)(!1),ae=(0,a.Z)(ne,2),oe=ae[0],re=ae[1],ce=(0,r.useState)(!1),ie=(0,a.Z)(ce,2),le=ie[0],se=ie[1],de=(0,r.useState)(!1),ue=(0,a.Z)(de,2),pe=ue[0],me=ue[1],he=(0,r.useState)(!1),xe=(0,a.Z)(he,2),fe=xe[0],ge=xe[1];return(0,w.jsxs)(r.Fragment,{children:[(0,w.jsx)(g.Z,{label:"Trace"}),(0,w.jsx)(y.Z,{children:(0,w.jsxs)(c.ZP,{className:t.formBox,children:[(0,w.jsxs)(c.ZP,{item:!0,xs:12,sx:{display:"flex",flexFlow:"column","& .trace-checkbox-label":{fontSize:"14px",fontWeight:"normal"}},children:[(0,w.jsx)(i.Z,{sx:{fontSize:"16px",fontWeight:600,padding:"20px 0px 20px 0"},children:"Calls to Trace"}),(0,w.jsxs)(i.Z,{className:"".concat(d?"inactive-state":""),sx:{display:"flex",alignItems:"center",justifyContent:"space-between","&.inactive-state .trace-checkbox-label":{color:"#a6a5a5"}},children:[(0,w.jsxs)(i.Z,{sx:{display:"flex",flexFlow:"row",gap:{md:"30px"},"& .trace-checked-icon":{border:"1px solid red"}},children:[(0,w.jsx)(b.Z,{checked:U,id:"all_calls",name:"all_calls",label:"All",onChange:function(e){q(e.target.checked)},value:"all",disabled:d,overrideLabelClasses:"trace-checkbox-label",classes:{checkedIcon:t.traceCheckedIcon,unCheckedIcon:t.unCheckedIcon}}),(0,w.jsx)(b.Z,{checked:X||U,id:"s3_calls",name:"s3_calls",label:"S3",onChange:function(e){$(e.target.checked)},value:"s3",disabled:d,overrideLabelClasses:"trace-checkbox-label",classes:{checkedIcon:t.traceCheckedIcon,unCheckedIcon:t.unCheckedIcon}}),(0,w.jsx)(b.Z,{checked:ee||U,id:"internal_calls",name:"internal_calls",label:"Internal",onChange:function(e){te(e.target.checked)},value:"internal",disabled:U||d,overrideLabelClasses:"trace-checkbox-label",classes:{checkedIcon:t.traceCheckedIcon,unCheckedIcon:t.unCheckedIcon}}),(0,w.jsx)(b.Z,{checked:oe||U,id:"storage_calls",name:"storage_calls",label:"Storage",onChange:function(e){re(e.target.checked)},value:"storage",disabled:U||d,overrideLabelClasses:"trace-checkbox-label",classes:{checkedIcon:t.traceCheckedIcon,unCheckedIcon:t.unCheckedIcon}}),(0,w.jsx)(b.Z,{checked:le||U,id:"os_calls",name:"os_calls",label:"OS",onChange:function(e){se(e.target.checked)},value:"os",disabled:U||d,overrideLabelClasses:"trace-checkbox-label",classes:{checkedIcon:t.traceCheckedIcon,unCheckedIcon:t.unCheckedIcon}})]}),(0,w.jsxs)(i.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"space-between",gap:"15px"},children:[(0,w.jsx)(C.Z,{tooltip:"More filter options",onClick:function(){ge(!fe)},text:"Filters",icon:(0,w.jsx)(k.k1,{}),color:"primary",variant:"outlined",className:"filters-toggle-button",style:{width:"118px",background:fe?"rgba(8, 28, 66, 0.04)":""}}),!d&&(0,w.jsx)(C.Z,{text:"Start","data-test-id":"trace-start-button",icon:null,color:"primary",variant:"contained",onClick:function(){o();var e=new URL(window.location.toString()),t=e.port,a="".concat(X?"s3,":"").concat(ee?"internal,":"").concat(oe?"storage,":"").concat(le?"os,":"");U&&(a="all");var r=(0,h.x2)(e.protocol);S=new l.w3cwebsocket("".concat(r,"://").concat(e.hostname,":").concat(t,"/ws/trace?calls=").concat(a,"&threshold=").concat(A,"&onlyErrors=").concat(pe?"yes":"no","&statusCode=").concat(v,"&method=").concat(z,"&funcname=").concat(O,"&path=").concat(E));var c=null;if(null!==S)return S.onopen=function(){console.log("WebSocket Client Connected"),s(!0),S.send("ok"),c=setInterval((function(){S.send("ok")}),1e4)},S.onmessage=function(e){var t=JSON.parse(e.data.toString());t.ptime=Z()(t.time,"YYYY-MM-DD HH:mm:s.SSSS +0000 UTC").toDate(),t.key=Math.random(),n(t)},S.onclose=function(){clearInterval(c),console.log("connection closed by server"),s(!1)},function(){S.close(1e3),clearInterval(c),console.log("closing websockets"),s(!1)}},style:{width:"118px"}}),d&&(0,w.jsx)(C.Z,{text:"Stop Trace","data-test-id":"trace-stop-button",icon:null,color:"primary",variant:"contained",onClick:function(){S.close(1e3),s(!1)},style:{width:"118px"}})]})]})]}),fe?(0,w.jsxs)(c.ZP,{item:!0,className:"".concat(d?"inactive-state":""),xs:12,sx:{marginTop:"25px",display:"flex",flexFlow:"column",background:"#FBFAFA",padding:"30px","&.inactive-state label":{color:"#a6a5a5"},"& .orient-vertical":{flexFlow:"column","& label":{marginBottom:"10px",fontWeight:600}},"& .trace-checkbox-label":{fontSize:"14px",fontWeight:"normal"}},children:[(0,w.jsxs)(i.Z,{sx:{gap:"30px",display:"grid",gridTemplateColumns:"1fr 1fr 1fr",width:"100%"},children:[(0,w.jsx)(j.Z,{className:"orient-vertical",id:"trace-status-code",name:"trace-status-code",label:"Status Code",classes:{},placeholder:"e.g. 503",value:v,onChange:function(e){I(e.target.value)},disabled:d}),(0,w.jsx)(j.Z,{className:"orient-vertical",id:"trace-function-name",name:"trace-function-name",label:"Function Name",classes:{},placeholder:"e.g. FunctionName2055",value:O,onChange:function(e){L(e.target.value)},disabled:d}),(0,w.jsx)(j.Z,{className:"orient-vertical",id:"trace-method",name:"trace-method",label:"Method",classes:{},placeholder:"e.g. Method 2056",value:z,onChange:function(e){M(e.target.value)},disabled:d})]}),(0,w.jsxs)(i.Z,{sx:{gap:"30px",display:"grid",gridTemplateColumns:"2fr 1fr",width:"100%",marginTop:"33px"},children:[(0,w.jsx)(i.Z,{flex:"2",style:{width:"calc( 100% + 10px)"},children:(0,w.jsx)(j.Z,{className:"orient-vertical",id:"trace-path",name:"trace-path",label:"Path",classes:{},placeholder:"e.g. my-bucket/my-prefix/*",value:E,onChange:function(e){R(e.target.value)},disabled:d})}),(0,w.jsx)(i.Z,{sx:{marginLeft:"15px"},children:(0,w.jsx)(j.Z,{className:"orient-vertical",id:"trace-fthreshold",name:"trace-fthreshold",label:"Response Threshold",type:"number",classes:{},placeholder:"e.g. website.io.3249.114.12",value:"".concat(A),onChange:function(e){D(parseInt(e.target.value))},disabled:d})})]}),(0,w.jsx)(i.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start",marginTop:"40px"},children:(0,w.jsx)(b.Z,{checked:pe,id:"only_errors",name:"only_errors",label:"Display only Errors",onChange:function(e){me(e.target.checked)},value:"only_errors",disabled:d,overrideLabelClasses:"trace-checkbox-label",classes:{checkedIcon:t.traceCheckedIcon,unCheckedIcon:t.unCheckedIcon}})})]}):null,(0,w.jsx)(c.ZP,{item:!0,xs:12,children:(0,w.jsx)(i.Z,{sx:{fontSize:"16px",fontWeight:600,marginBottom:"30px",marginTop:"30px"},children:"Trace Results"})}),(0,w.jsx)(c.ZP,{item:!0,xs:12,className:t.tableBlock,children:(0,w.jsx)(f.Z,{itemActions:[],columns:[{label:"Time",elementKey:"ptime",renderFunction:function(e){var t=new Date(e);return(0,m.zk)(t)},globalClass:t.timeItem},{label:"Name",elementKey:"api"},{label:"Status",elementKey:"",renderFunction:function(e){return"".concat(e.statusCode," ").concat(e.statusMsg)},renderFullObject:!0},{label:"Location",elementKey:"configuration_id",renderFunction:function(e){return"".concat(e.host," ").concat(e.client)},renderFullObject:!0},{label:"Load Time",elementKey:"callStats.duration",globalClass:t.timeItem},{label:"Upload",elementKey:"callStats.rx",renderFunction:m.ae,globalClass:t.sizeItem},{label:"Download",elementKey:"callStats.tx",renderFunction:m.ae,globalClass:t.sizeItem}],isLoading:!1,records:u,entityName:"Traces",idField:"api",customEmptyMessage:d?"No Traced elements received yet":"Trace is not started yet",customPaperHeight:t.tableWrapper,autoScrollToBottom:!0})})]})})]})})))},26824:function(e,t,n){"use strict";n.d(t,{HE:function(){return r},V9:function(){return a},ci:function(){return o},x2:function(){return c}});var a=1006,o=1008,r=1011,c=function(e){var t="ws";return"https:"===e&&(t="wss"),t}},26759:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),r=n(80184),c=(0,o.default)((0,r.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=c},70366:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),r=n(80184),c=(0,o.default)((0,r.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=c},97911:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),r=n(80184),c=(0,o.default)((0,r.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=c},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return S}});var a=n(4942),o=n(63366),r=n(87462),c=n(72791),i=n(90767),l=n(12065),s=n(97278),d=n(76189),u=n(80184),p=(0,d.Z)((0,u.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),m=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),h=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox"),x=n(14036),f=n(93736),g=n(47630),b=n(95159);function v(e){return(0,b.Z)("MuiCheckbox",e)}var Z=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),y=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],k=(0,g.ZP)(s.Z,{shouldForwardProp:function(e){return(0,g.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.indeterminate&&t.indeterminate,"default"!==n.color&&t["color".concat((0,x.Z)(n.color))]]}})((function(e){var t,n=e.theme,o=e.ownerState;return(0,r.Z)({color:n.palette.text.secondary},!o.disableRipple&&{"&:hover":{backgroundColor:(0,l.Fq)("default"===o.color?n.palette.action.active:n.palette[o.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==o.color&&(t={},(0,a.Z)(t,"&.".concat(Z.checked,", &.").concat(Z.indeterminate),{color:n.palette[o.color].main}),(0,a.Z)(t,"&.".concat(Z.disabled),{color:n.palette.action.disabled}),t))})),C=(0,u.jsx)(m,{}),j=(0,u.jsx)(p,{}),w=(0,u.jsx)(h,{}),S=c.forwardRef((function(e,t){var n,a,l=(0,f.Z)({props:e,name:"MuiCheckbox"}),s=l.checkedIcon,d=void 0===s?C:s,p=l.color,m=void 0===p?"primary":p,h=l.icon,g=void 0===h?j:h,b=l.indeterminate,Z=void 0!==b&&b,S=l.indeterminateIcon,I=void 0===S?w:S,T=l.inputProps,N=l.size,z=void 0===N?"medium":N,M=(0,o.Z)(l,y),F=Z?I:g,_=Z?I:d,O=(0,r.Z)({},l,{color:m,indeterminate:Z,size:z}),L=function(e){var t=e.classes,n=e.indeterminate,a=e.color,o={root:["root",n&&"indeterminate","color".concat((0,x.Z)(a))]},c=(0,i.Z)(o,v,t);return(0,r.Z)({},t,c)}(O);return(0,u.jsx)(k,(0,r.Z)({type:"checkbox",inputProps:(0,r.Z)({"data-indeterminate":Z},T),icon:c.cloneElement(F,{fontSize:null!=(n=F.props.fontSize)?n:z}),checkedIcon:c.cloneElement(_,{fontSize:null!=(a=_.props.fontSize)?a:z}),ownerState:O,ref:t},M,{classes:L}))}))},94210:function(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__}}()},26769:function(e,t,n){var a=n(39066),o=n(93629),r=n(43141);e.exports=function(e){return"string"==typeof e||!o(e)&&r(e)&&"[object String]"==a(e)}},95087:function(e,t,n){var a;if("object"===typeof globalThis)a=globalThis;else try{a=n(94210)}catch(i){}finally{if(a||"undefined"===typeof window||(a=window),!a)throw new Error("Could not determine global this")}var o=a.WebSocket||a.MozWebSocket,r=n(51496);function c(e,t){return t?new o(e,t):new o(e)}o&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(c,e,{get:function(){return o[e]}})})),e.exports={w3cwebsocket:o?c:null,version:r}},51496:function(e,t,n){e.exports=n(19794).version},45987:function(e,t,n){"use strict";n.d(t,{Z:function(){return o}});var a=n(63366);function o(e,t){if(null==e)return{};var n,o,r=(0,a.Z)(e,t);if(Object.getOwnPropertySymbols){var c=Object.getOwnPropertySymbols(e);for(o=0;o=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); +//# sourceMappingURL=4209.67dd1f00.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4209.67dd1f00.chunk.js.map b/portal-ui/build/static/js/4209.67dd1f00.chunk.js.map new file mode 100644 index 000000000..9a1fe482a --- /dev/null +++ b/portal-ui/build/static/js/4209.67dd1f00.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4209.67dd1f00.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Trace/Trace.tsx","utils/wsUtils.ts","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/es5-ext/global.js","../node_modules/lodash/isString.js","../node_modules/websocket/lib/browser.js","../node_modules/websocket/lib/version.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { Box, Grid } from \"@mui/material\";\nimport { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport { AppState } from \"../../../store\";\nimport { connect } from \"react-redux\";\nimport {\n setTraceStarted,\n traceMessageReceived,\n traceResetMessages,\n} from \"./actions\";\nimport { TraceMessage } from \"./types\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { niceBytes, timeFromDate } from \"../../../common/utils\";\nimport { wsProtocol } from \"../../../utils/wsUtils\";\nimport {\n actionsTray,\n containerForHeader,\n hrClass,\n inlineCheckboxes,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport CheckboxWrapper from \"../Common/FormComponents/CheckboxWrapper/CheckboxWrapper\";\nimport moment from \"moment/moment\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport { FilterIcon } from \"../../../icons\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n sizeItem: {\n width: 150,\n },\n timeItem: {\n width: 100,\n },\n startButton: {\n textAlign: \"right\",\n },\n ...actionsTray,\n ...searchField,\n ...hrClass,\n\n ...tableStyles,\n searchField: {\n ...searchField.searchField,\n margin: \"0 5px\",\n \"&:first-of-type\": {\n marginLeft: 0,\n },\n \"&:last-of-type\": {\n marginRight: 0,\n },\n },\n tableWrapper: {\n height: \"calc(100vh - 292px)\",\n },\n inlineCheckboxes: {\n ...inlineCheckboxes.inlineCheckboxes,\n alignItems: \"center\",\n\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n },\n },\n checkBoxLabel: {\n marginTop: 10,\n fontSize: 16,\n fontWeight: 500,\n },\n formBox: {\n border: \"1px solid #EAEAEA\",\n padding: 25,\n marginBottom: 15,\n },\n traceCheckedIcon: {\n width: \"14px\",\n height: \"14px\",\n marginLeft: \"0px\",\n },\n unCheckedIcon: {\n width: \"14px\",\n height: \"14px\",\n },\n midColumnCheckboxes: {\n display: \"flex\",\n },\n separatorBar: {\n fontSize: 16,\n fontWeight: 700,\n paddingTop: 19,\n \"@media (max-width: 900px)\": {\n display: \"none\",\n },\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface ITrace {\n classes: any;\n traceMessageReceived: typeof traceMessageReceived;\n traceResetMessages: typeof traceResetMessages;\n setTraceStarted: typeof setTraceStarted;\n messages: TraceMessage[];\n namespace: string;\n tenant: string;\n traceStarted: boolean;\n}\n\nvar c: any = null;\n\nconst Trace = ({\n classes,\n traceMessageReceived,\n traceResetMessages,\n setTraceStarted,\n traceStarted,\n messages,\n}: ITrace) => {\n const [statusCode, setStatusCode] = useState(\"\");\n const [method, setMethod] = useState(\"\");\n const [func, setFunc] = useState(\"\");\n const [path, setPath] = useState(\"\");\n const [threshold, setThreshold] = useState(0);\n const [all, setAll] = useState(false);\n const [s3, setS3] = useState(true);\n const [internal, setInternal] = useState(false);\n const [storage, setStorage] = useState(false);\n const [os, setOS] = useState(false);\n const [errors, setErrors] = useState(false);\n\n const [toggleFilter, setToggleFilter] = useState(false);\n\n const startTrace = () => {\n traceResetMessages();\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 let calls = `${s3 ? \"s3,\" : \"\"}${internal ? \"internal,\" : \"\"}${\n storage ? \"storage,\" : \"\"\n }${os ? \"os,\" : \"\"}`;\n\n if (all) {\n calls = \"all\";\n }\n\n const wsProt = wsProtocol(url.protocol);\n c = new W3CWebSocket(\n `${wsProt}://${\n url.hostname\n }:${port}/ws/trace?calls=${calls}&threshold=${threshold}&onlyErrors=${\n errors ? \"yes\" : \"no\"\n }&statusCode=${statusCode}&method=${method}&funcname=${func}&path=${path}`\n );\n\n let interval: any | null = null;\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n setTraceStarted(true);\n c.send(\"ok\");\n interval = setInterval(() => {\n c.send(\"ok\");\n }, 10 * 1000);\n };\n c.onmessage = (message: IMessageEvent) => {\n let m: TraceMessage = JSON.parse(message.data.toString());\n m.ptime = moment(m.time, \"YYYY-MM-DD HH:mm:s.SSSS +0000 UTC\").toDate();\n m.key = Math.random();\n traceMessageReceived(m);\n };\n c.onclose = () => {\n clearInterval(interval);\n console.log(\"connection closed by server\");\n setTraceStarted(false);\n };\n return () => {\n c.close(1000);\n clearInterval(interval);\n console.log(\"closing websockets\");\n setTraceStarted(false);\n };\n }\n };\n\n const stopTrace = () => {\n c.close(1000);\n setTraceStarted(false);\n };\n\n return (\n \n \n \n \n \n \n Calls to Trace\n \n \n \n {\n setAll(item.target.checked);\n }}\n value={\"all\"}\n disabled={traceStarted}\n overrideLabelClasses=\"trace-checkbox-label\"\n classes={{\n checkedIcon: classes.traceCheckedIcon,\n unCheckedIcon: classes.unCheckedIcon,\n }}\n />\n {\n setS3(item.target.checked);\n }}\n value={\"s3\"}\n disabled={traceStarted}\n overrideLabelClasses=\"trace-checkbox-label\"\n classes={{\n checkedIcon: classes.traceCheckedIcon,\n unCheckedIcon: classes.unCheckedIcon,\n }}\n />\n {\n setInternal(item.target.checked);\n }}\n value={\"internal\"}\n disabled={all || traceStarted}\n overrideLabelClasses=\"trace-checkbox-label\"\n classes={{\n checkedIcon: classes.traceCheckedIcon,\n unCheckedIcon: classes.unCheckedIcon,\n }}\n />\n {\n setStorage(item.target.checked);\n }}\n value={\"storage\"}\n disabled={all || traceStarted}\n overrideLabelClasses=\"trace-checkbox-label\"\n classes={{\n checkedIcon: classes.traceCheckedIcon,\n unCheckedIcon: classes.unCheckedIcon,\n }}\n />\n {\n setOS(item.target.checked);\n }}\n value={\"os\"}\n disabled={all || traceStarted}\n overrideLabelClasses=\"trace-checkbox-label\"\n classes={{\n checkedIcon: classes.traceCheckedIcon,\n unCheckedIcon: classes.unCheckedIcon,\n }}\n />\n \n \n {\n setToggleFilter(!toggleFilter);\n }}\n text={\"Filters\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n className={\"filters-toggle-button\"}\n style={{\n width: \"118px\",\n background: toggleFilter ? \"rgba(8, 28, 66, 0.04)\" : \"\",\n }}\n />\n\n {!traceStarted && (\n \n )}\n {traceStarted && (\n \n )}\n \n \n \n {toggleFilter ? (\n \n \n {\n setStatusCode(e.target.value);\n }}\n disabled={traceStarted}\n />\n\n {\n setFunc(e.target.value);\n }}\n disabled={traceStarted}\n />\n\n {\n setMethod(e.target.value);\n }}\n disabled={traceStarted}\n />\n \n \n \n {\n setPath(e.target.value);\n }}\n disabled={traceStarted}\n />\n \n \n {\n setThreshold(parseInt(e.target.value));\n }}\n disabled={traceStarted}\n />\n \n \n \n {\n setErrors(item.target.checked);\n }}\n value={\"only_errors\"}\n disabled={traceStarted}\n overrideLabelClasses=\"trace-checkbox-label\"\n classes={{\n checkedIcon: classes.traceCheckedIcon,\n unCheckedIcon: classes.unCheckedIcon,\n }}\n />\n \n \n ) : null}\n\n \n \n Trace Results\n \n \n \n {\n const timeParse = new Date(time);\n return timeFromDate(timeParse);\n },\n globalClass: classes.timeItem,\n },\n { label: \"Name\", elementKey: \"api\" },\n {\n label: \"Status\",\n elementKey: \"\",\n renderFunction: (fullElement: TraceMessage) =>\n `${fullElement.statusCode} ${fullElement.statusMsg}`,\n renderFullObject: true,\n },\n {\n label: \"Location\",\n elementKey: \"configuration_id\",\n renderFunction: (fullElement: TraceMessage) =>\n `${fullElement.host} ${fullElement.client}`,\n renderFullObject: true,\n },\n {\n label: \"Load Time\",\n elementKey: \"callStats.duration\",\n globalClass: classes.timeItem,\n },\n {\n label: \"Upload\",\n elementKey: \"callStats.rx\",\n renderFunction: niceBytes,\n globalClass: classes.sizeItem,\n },\n {\n label: \"Download\",\n elementKey: \"callStats.tx\",\n renderFunction: niceBytes,\n globalClass: classes.sizeItem,\n },\n ]}\n isLoading={false}\n records={messages}\n entityName=\"Traces\"\n idField=\"api\"\n customEmptyMessage={\n traceStarted\n ? \"No Traced elements received yet\"\n : \"Trace is not started yet\"\n }\n customPaperHeight={classes.tableWrapper}\n autoScrollToBottom\n />\n \n \n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n messages: state.trace.messages,\n traceStarted: state.trace.traceStarted,\n});\n\nconst connector = connect(mapState, {\n traceMessageReceived: traceMessageReceived,\n traceResetMessages: traceResetMessages,\n setTraceStarted,\n});\n\nexport default connector(withStyles(styles)(Trace));\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseNormalClosure = 1000;\nexport const WSCloseCloseGoingAway = 1001;\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","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","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","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","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}"],"names":["useStyles","makeStyles","theme","root","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","width","marginLeft","text","classes","onClick","disabled","tooltip","icon","className","restProps","size","sx","border","fontSize","display","withStyles","createStyles","borderWidth","borderStyle","borderRadius","backgroundColor","opacity","contained","background","dark","light","children","rest","button","clsx","title","pageContentStyles","contentSpacer","container","item","xs","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","label","justifyContent","alignItems","labelStyle","fontWeight","marginTop","rightMenu","textAlign","logo","fill","middleComponent","actions","includes","Fragment","direction","sm","md","paddingTop","length","component","id","c","messages","trace","traceStarted","traceMessageReceived","traceResetMessages","setTraceStarted","sizeItem","timeItem","startButton","actionsTray","searchField","hrClass","tableStyles","margin","marginRight","tableWrapper","height","inlineCheckboxes","flexFlow","checkBoxLabel","formBox","marginBottom","traceCheckedIcon","unCheckedIcon","midColumnCheckboxes","separatorBar","containerForHeader","spacing","useState","statusCode","setStatusCode","method","setMethod","func","setFunc","path","setPath","threshold","setThreshold","all","setAll","s3","setS3","internal","setInternal","storage","setStorage","os","setOS","errors","setErrors","toggleFilter","setToggleFilter","gap","checked","name","onChange","target","value","overrideLabelClasses","checkedIcon","style","url","URL","window","location","toString","port","calls","wsProt","wsProtocol","protocol","W3CWebSocket","hostname","interval","onopen","log","send","setInterval","onmessage","message","m","JSON","parse","data","ptime","moment","time","toDate","key","Math","random","onclose","clearInterval","close","gridTemplateColumns","placeholder","e","flex","type","parseInt","tableBlock","itemActions","columns","elementKey","renderFunction","timeParse","Date","timeFromDate","globalClass","fullElement","statusMsg","renderFullObject","host","client","niceBytes","isLoading","records","entityName","idField","customEmptyMessage","customPaperHeight","autoScrollToBottom","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","createSvgIcon","_jsx","getCheckboxUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CheckboxRoot","styled","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","overridesResolver","styles","ownerState","indeterminate","capitalize","_extends","disableRipple","alpha","action","active","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","React","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","naiveFallback","self","Error","module","this","globalThis","Object","defineProperty","prototype","get","configurable","error","__global__","baseGetTag","isArray","isObjectLike","_globalThis","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","forEach","_objectWithoutProperties","source","excluded","i","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","call"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4335.daa02fff.chunk.js b/portal-ui/build/static/js/4335.bce36690.chunk.js similarity index 98% rename from portal-ui/build/static/js/4335.daa02fff.chunk.js rename to portal-ui/build/static/js/4335.bce36690.chunk.js index 5fbf47bce..61f12b56c 100644 --- a/portal-ui/build/static/js/4335.daa02fff.chunk.js +++ b/portal-ui/build/static/js/4335.bce36690.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4335],{84669:function(e,a,l){l(72791);var t=l(91523),n=l(11135),i=l(25787),s=l(74833),r=l(64554),o=l(80184);a.Z=(0,i.Z)((function(e){return(0,n.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var a=e.to,l=e.label,n=e.classes,i=e.className,u=e.executeOnClick;return(0,o.jsx)(r.Z,{sx:{display:"flex",alignItems:"center"},children:(0,o.jsx)(t.rU,{to:a,className:"".concat(n.link," ").concat(i||""),onClick:function(){u&&u()},children:(0,o.jsxs)("div",{className:n.iconBox,children:[(0,o.jsx)("div",{className:n.icon,children:(0,o.jsx)(s.xN,{})}),(0,o.jsx)("div",{className:n.label,children:l})]})})})}))},54639:function(e,a,l){l.d(a,{Z:function(){return S}});var t=l(70885),n=l(1413),i=l(72791),s=l(26181),r=l.n(s),o=l(61889),u=l(30829),c=l(20068),d=l(13400),v=l(99663),p=l(86711),b=l(11135),h=l(25787),g=l(23814),m=l(84570),f=l(22512),x=l(80184),S=(0,h.Z)((function(e){return(0,b.Z)((0,n.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},g.YI),g.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},g.bV),{},{inputLabel:(0,n.Z)((0,n.Z)({},g.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,n.Z)((0,n.Z)({},g.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var a=e.label,l=e.classes,n=e.onChange,s=e.id,b=e.name,h=e.disabled,g=void 0!==h&&h,S=e.tooltip,Z=void 0===S?"":S,j=e.required,C=e.error,A=void 0===C?"":C,E=e.accept,y=void 0===E?"":E,w=e.value,T=void 0===w?"":w,N=(0,i.useState)(!1),U=(0,t.Z)(N,2),I=U[0],k=U[1];return(0,x.jsx)(i.Fragment,{children:(0,x.jsxs)(o.ZP,{item:!0,xs:12,className:"".concat(l.fileInputField," ").concat(l.fieldBottom," ").concat(l.fieldContainer," ").concat(""!==A?l.errorInField:""),children:[""!==a&&(0,x.jsxs)(u.Z,{htmlFor:s,className:"".concat(""!==A?l.fieldLabelError:""," ").concat(l.inputLabel),children:[(0,x.jsxs)("span",{children:[a,j?"*":""]}),""!==Z&&(0,x.jsx)("div",{className:l.tooltipContainer,children:(0,x.jsx)(c.Z,{title:Z,placement:"top-start",children:(0,x.jsx)("div",{className:l.tooltip,children:(0,x.jsx)(m.Z,{})})})})]}),I||""===T?(0,x.jsxs)("div",{className:l.textBoxContainer,children:[(0,x.jsx)("input",{type:"file",name:b,onChange:function(e){var a=r()(e,"target.files[0].name","");!function(e,a){var l=e.target.files[0],t=new FileReader;t.readAsDataURL(l),t.onload=function(){var e=t.result;if(e){var l=e.toString().split("base64,");2===l.length&&a(l[1])}}}(e,(function(e){n(e,a)}))},accept:y,required:j,disabled:g,className:l.fileInputField}),""!==T&&(0,x.jsx)(d.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){k(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,x.jsx)(p.Z,{})}),""!==A&&(0,x.jsx)(f.Z,{errorMessage:A})]}):(0,x.jsxs)("div",{className:l.fileReselect,children:[(0,x.jsx)("div",{className:l.valueString,children:T}),(0,x.jsx)(d.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){k(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,x.jsx)(v.Z,{})})]})]})})}))},74794:function(e,a,l){var t=l(1413),n=(l(72791),l(61889)),i=l(11135),s=l(25787),r=l(23814),o=l(80184);a.Z=(0,s.Z)((function(e){return(0,i.Z)((0,t.Z)({},r.Bw))}))((function(e){var a=e.classes,l=e.className,t=void 0===l?"":l,i=e.children;return(0,o.jsx)("div",{className:a.contentSpacer,children:(0,o.jsx)(n.ZP,{container:!0,children:(0,o.jsx)(n.ZP,{item:!0,xs:12,className:t,children:i})})})}))},32291:function(e,a,l){var t=l(72791),n=l(60364),i=l(61889),s=l(11135),r=l(25787),o=l(20890),u=l(13400),c=l(95466),d=l(84683),v=l(3925),p=l(74833),b=l(80184),h={toggleList:v.kQ},g=(0,n.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),h);a.Z=g((0,r.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var a=e.classes,l=e.label,n=e.actions,s=e.sidebarOpen,r=e.operatorMode,v=e.managerObjects,h=e.toggleList,g=e.middleComponent;return e.features.includes("hide-menu")?(0,b.jsx)(t.Fragment,{}):(0,b.jsxs)(i.ZP,{container:!0,className:"".concat(a.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,b.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:a.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,b.jsx)("div",{className:a.logo,children:r?(0,b.jsx)(c.Z,{}):(0,b.jsx)(d.Z,{})}),(0,b.jsx)(o.Z,{variant:"h4",className:a.labelStyle,children:l})]}),g&&(0,b.jsx)(i.ZP,{item:!0,xs:12,sm:12,md:6,className:a.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:g}),(0,b.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:a.rightMenu,children:[n&&n,v&&v.length>0&&(0,b.jsx)(u.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,b.jsx)(p.gx,{})})]})]})})))},84335:function(e,a,l){l.r(a),l.d(a,{default:function(){return B}});var t=l(70885),n=l(1413),i=l(72791),s=l(60364),r=l(26181),o=l.n(r),u=l(61889),c=l(11135),d=l(25787),v=l(64554),p=l(36151),b=l(42649),h=l(23814),g=l(81207),m=l(21435),f=l(54639),x=l(32291),S=l(34345),Z=l(84669),j=l(74794),C=l(56087),A=l(30829),E=l(20068),y=l(13400),w=l(72455),T=l(84570),N=l(28182),U=l(66172),I=l(27391),k=[{label:"US East (Ohio)",value:"us-east-2"},{label:"US East (N. Virginia)",value:"us-east-1"},{label:"US West (N. California)",value:"us-west-1"},{label:"US West (Oregon)",value:"us-west-2"},{label:"Africa (Cape Town)",value:"af-south-1"},{label:"Asia Pacific (Hong Kong)***",value:"ap-east-1"},{label:"Asia Pacific (Jakarta)",value:"ap-southeast-3"},{label:"Asia Pacific (Mumbai)",value:"ap-south-1"},{label:"Asia Pacific (Osaka)",value:"ap-northeast-3"},{label:"Asia Pacific (Seoul)",value:"ap-northeast-2"},{label:"Asia Pacific (Singapore)",value:"ap-southeast-1"},{label:"Asia Pacific (Sydney)",value:"ap-southeast-2"},{label:"Asia Pacific (Tokyo)",value:"ap-northeast-1"},{label:"Canada (Central)",value:"ca-central-1"},{label:"China (Beijing)",value:"cn-north-1"},{label:"China (Ningxia)",value:"cn-northwest-1"},{label:"Europe (Frankfurt)",value:"eu-central-1"},{label:"Europe (Ireland)",value:"eu-west-1"},{label:"Europe (London)",value:"eu-west-2"},{label:"Europe (Milan)",value:"eu-south-1"},{label:"Europe (Paris)",value:"eu-west-3"},{label:"Europe (Stockholm)",value:"eu-north-1"},{label:"South America (S\xe3o Paulo)",value:"sa-east-1"},{label:"Middle East (Bahrain)",value:"me-south-1"},{label:"AWS GovCloud (US-East)",value:"us-gov-east-1"},{label:"AWS GovCloud (US-West)",value:"us-gov-west-1"}],O=[{label:"Montr\xe9al",value:"NORTHAMERICA-NORTHEAST1"},{label:"Toronto",value:"NORTHAMERICA-NORTHEAST2"},{label:"Iowa",value:"US-CENTRAL1"},{label:"South Carolina",value:"US-EAST1"},{label:"Northern Virginia",value:"US-EAST4"},{label:"Oregon",value:"US-WEST1"},{label:"Los Angeles",value:"US-WEST2"},{label:"Salt Lake City",value:"US-WEST3"},{label:"Las Vegas",value:"US-WEST4"},{label:"S\xe3o Paulo",value:"SOUTHAMERICA-EAST1"},{label:"Santiago",value:"SOUTHAMERICA-WEST1"},{label:"Warsaw",value:"EUROPE-CENTRAL2"},{label:"Finland",value:"EUROPE-NORTH1"},{label:"Belgium",value:"EUROPE-WEST1"},{label:"London",value:"EUROPE-WEST2"},{label:"Frankfurt",value:"EUROPE-WEST3"},{label:"Netherlands",value:"EUROPE-WEST4"},{label:"Z\xfcrich",value:"EUROPE-WEST6"},{label:"Taiwan",value:"ASIA-EAST1"},{label:"Hong Kong",value:"ASIA-EAST2"},{label:"Tokyo",value:"ASIA-NORTHEAST1"},{label:"Osaka",value:"ASIA-NORTHEAST2"},{label:"Seoul",value:"ASIA-NORTHEAST3"},{label:"Mumbai",value:"ASIA-SOUTH1"},{label:"Delhi",value:"ASIA-SOUTH2"},{label:"Singapore",value:"ASIA-SOUTHEAST1"},{label:"Jakarta",value:"ASIA-SOUTHEAST2"},{label:"Sydney",value:"AUSTRALIA-SOUTHEAST1"},{label:"Melbourne",value:"AUSTRALIA-SOUTHEAST2"}],W=[{label:"Asia",value:"asia"},{label:"Asia Pacific",value:"asiapacific"},{label:"Australia",value:"australia"},{label:"Australia Central",value:"australiacentral"},{label:"Australia Central 2",value:"australiacentral2"},{label:"Australia East",value:"australiaeast"},{label:"Australia Southeast",value:"australiasoutheast"},{label:"Brazil",value:"brazil"},{label:"Brazil South",value:"brazilsouth"},{label:"Brazil Southeast",value:"brazilsoutheast"},{label:"Canada",value:"canada"},{label:"Canada Central",value:"canadacentral"},{label:"Canada East",value:"canadaeast"},{label:"Central India",value:"centralindia"},{label:"Central US",value:"centralus"},{label:"Central US (Stage)",value:"centralusstage"},{label:"Central US EUAP",value:"centraluseuap"},{label:"East Asia",value:"eastasia"},{label:"East Asia (Stage)",value:"eastasiastage"},{label:"East US",value:"eastus"},{label:"East US (Stage)",value:"eastusstage"},{label:"East US 2",value:"eastus2"},{label:"East US 2 (Stage)",value:"eastus2stage"},{label:"East US 2 EUAP",value:"eastus2euap"},{label:"Europe",value:"europe"},{label:"France",value:"france"},{label:"France Central",value:"francecentral"},{label:"France South",value:"francesouth"},{label:"Germany",value:"germany"},{label:"Germany North",value:"germanynorth"},{label:"Germany West Central",value:"germanywestcentral"},{label:"Global",value:"global"},{label:"India",value:"india"},{label:"Japan",value:"japan"},{label:"Japan East",value:"japaneast"},{label:"Japan West",value:"japanwest"},{label:"Jio India Central",value:"jioindiacentral"},{label:"Jio India West",value:"jioindiawest"},{label:"Korea",value:"korea"},{label:"Korea Central",value:"koreacentral"},{label:"Korea South",value:"koreasouth"},{label:"North Central US",value:"northcentralus"},{label:"North Central US (Stage)",value:"northcentralusstage"},{label:"North Europe",value:"northeurope"},{label:"Norway",value:"norway"},{label:"Norway East",value:"norwayeast"},{label:"Norway West",value:"norwaywest"},{label:"South Africa",value:"southafrica"},{label:"South Africa North",value:"southafricanorth"},{label:"South Africa West",value:"southafricawest"},{label:"South Central US",value:"southcentralus"},{label:"South Central US (Stage)",value:"southcentralusstage"},{label:"South India",value:"southindia"},{label:"Southeast Asia",value:"southeastasia"},{label:"Southeast Asia (Stage)",value:"southeastasiastage"},{label:"Sweden Central",value:"swedencentral"},{label:"Switzerland",value:"switzerland"},{label:"Switzerland North",value:"switzerlandnorth"},{label:"Switzerland West",value:"switzerlandwest"},{label:"UAE Central",value:"uaecentral"},{label:"UAE North",value:"uaenorth"},{label:"UK South",value:"uksouth"},{label:"UK West",value:"ukwest"},{label:"United Arab Emirates",value:"uae"},{label:"United Kingdom",value:"uk"},{label:"United States",value:"unitedstates"},{label:"United States EUAP",value:"unitedstateseuap"},{label:"West Central US",value:"westcentralus"},{label:"West Europe",value:"westeurope"},{label:"West India",value:"westindia"},{label:"West US",value:"westus"},{label:"West US (Stage)",value:"westusstage"},{label:"West US 2",value:"westus2"},{label:"West US 2 (Stage)",value:"westus2stage"},{label:"West US 3",value:"westus3"}],R=l(80184),P=function(e){var a=e.type,l=e.onChange,s=e.inputProps,r=function(e){return"s3"===e?k:"gcs"===e?O:"azure"===e?W:[]}(a),o=i.useState(""),u=(0,t.Z)(o,2),c=u[0],d=u[1];return(0,R.jsx)(U.Z,{sx:{"& .MuiOutlinedInput-root":{padding:0,paddingLeft:"10px",fontSize:13,fontWeight:600},"& .MuiAutocomplete-inputRoot":{"& .MuiOutlinedInput-notchedOutline":{borderColor:"#e5e5e5",borderWidth:1},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1}}},freeSolo:!0,selectOnFocus:!0,handleHomeEndKeys:!0,onChange:function(e,a){var t,n=a;n="string"===typeof a?{label:a}:a&&a.inputValue?{label:a.inputValue}:a,d(n),l(null===(t=n)||void 0===t?void 0:t.value)},value:c,onInputChange:function(e){var a=(e||{}).target,t=(a=void 0===a?{}:a).value;l(void 0===t?"":t)},getOptionLabel:function(e){return"string"===typeof e?e:e.inputValue?e.inputValue:e.value},options:r,filterOptions:function(e,a){var l=a.inputValue.toLowerCase();return e.filter((function(e){return"".concat(e.label.toLowerCase()).concat(e.value.toLowerCase()).includes(l)}))},renderOption:function(e,a){return(0,R.jsx)("li",(0,n.Z)((0,n.Z)({},e),{},{children:(0,R.jsxs)(v.Z,{sx:{display:"flex",flexFlow:"column",alignItems:"baseline",padding:"4px",borderBottom:"1px solid #eaeaea",cursor:"pointer",width:"100%","& .label":{fontSize:"13px",fontWeight:500},"& .value":{fontSize:"11px",fontWeight:400}},children:[(0,R.jsx)("span",{className:"label",children:a.value}),(0,R.jsx)("span",{className:"value",children:a.label})]})}))},renderInput:function(e){return(0,R.jsx)(I.Z,(0,n.Z)((0,n.Z)((0,n.Z)({},e),s),{},{fullWidth:!0}))}})},F=(0,w.Z)((function(e){return(0,c.Z)((0,n.Z)({},h.gM))})),L=(0,d.Z)((function(e){return(0,c.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},h.YI),h.Hr),{},{textBoxContainer:{flexGrow:1,position:"relative",minWidth:160},overlayAction:{position:"absolute",right:5,top:6,"& svg":{maxWidth:15,maxHeight:15},"&.withLabel":{top:5}},inputLabel:(0,n.Z)((0,n.Z)({},h.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var a=e.label,l=e.onChange,t=e.id,s=e.name,r=e.type,o=e.tooltip,c=void 0===o?"":o,d=e.index,v=void 0===d?0:d,p=e.error,b=void 0===p?"":p,h=e.required,g=void 0!==h&&h,m=e.overlayId,f=e.overlayIcon,x=void 0===f?null:f,S=e.overlayObject,Z=void 0===S?null:S,j=e.extraInputProps,C=void 0===j?{}:j,w=e.overlayAction,U=e.noLabelMinWidth,I=void 0!==U&&U,k=e.classes,O=e.className,W=void 0===O?"":O,L=F(),z=(0,n.Z)((0,n.Z)({"data-index":v},C),{},{name:s,id:t,classes:L});return(0,R.jsx)(i.Fragment,{children:(0,R.jsxs)(u.ZP,{container:!0,className:(0,N.Z)(""!==W?W:"",""!==b?k.errorInField:k.inputBoxContainer),children:[""!==a&&(0,R.jsxs)(A.Z,{htmlFor:t,className:I?k.noMinWidthLabel:k.inputLabel,children:[(0,R.jsxs)("span",{children:[a,g?"*":""]}),""!==c&&(0,R.jsx)("div",{className:k.tooltipContainer,children:(0,R.jsx)(E.Z,{title:c,placement:"top-start",children:(0,R.jsx)("div",{className:k.tooltip,children:(0,R.jsx)(T.Z,{})})})})]}),(0,R.jsxs)("div",{className:k.textBoxContainer,children:[(0,R.jsx)(P,{type:r,inputProps:z,onChange:l}),x&&(0,R.jsx)("div",{className:"".concat(k.overlayAction," ").concat(""!==a?"withLabel":""),children:(0,R.jsx)(y.Z,{onClick:w?function(){w()}:function(){return null},id:m,size:"small",disableFocusRipple:!1,disableRipple:!1,disableTouchRipple:!1,children:x})}),Z&&(0,R.jsx)("div",{className:"".concat(k.overlayAction," ").concat(""!==a?"withLabel":""),children:Z})]})]})})})),z={setErrorSnackMessage:b.Ih},M=(0,s.$j)(null,z),B=(0,d.Z)((function(e){return(0,c.Z)((0,n.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},h.oO),h.Je),h.DF),{},{lambdaNotifTitle:{color:"#07193E",fontSize:16,fontFamily:"Lato,sans-serif",paddingLeft:18},fileInputFieldCss:{margin:"0"},fileTextBoxContainer:{maxWidth:" 100%",flex:1},fileReselectCss:{maxWidth:" 100%",flex:1}},h.bV))}))(M((function(e){var a=e.classes,l=e.setErrorSnackMessage,s=e.match,r=e.history,c=(0,i.useState)(!1),d=(0,t.Z)(c,2),b=d[0],h=d[1],A=(0,i.useState)(""),E=(0,t.Z)(A,2),y=E[0],w=E[1],T=(0,i.useState)(""),N=(0,t.Z)(T,2),U=N[0],I=N[1],k=(0,i.useState)(""),O=(0,t.Z)(k,2),W=O[0],P=O[1],F=(0,i.useState)(""),z=(0,t.Z)(F,2),M=z[0],B=z[1],H=(0,i.useState)(""),K=(0,t.Z)(H,2),V=K[0],q=K[1],G=(0,i.useState)(""),D=(0,t.Z)(G,2),J=D[0],Y=D[1],X=(0,i.useState)(""),$=(0,t.Z)(X,2),_=$[0],Q=$[1],ee=(0,i.useState)(""),ae=(0,t.Z)(ee,2),le=ae[0],te=ae[1],ne=(0,i.useState)(""),ie=(0,t.Z)(ne,2),se=ie[0],re=ie[1],oe=(0,i.useState)(""),ue=(0,t.Z)(oe,2),ce=ue[0],de=ue[1],ve=(0,i.useState)(""),pe=(0,t.Z)(ve,2),be=pe[0],he=pe[1],ge=(0,i.useState)(""),me=(0,t.Z)(ge,2),fe=me[0],xe=me[1],Se=(0,i.useState)(""),Ze=(0,t.Z)(Se,2),je=Ze[0],Ce=Ze[1],Ae=o()(s,"params.service","s3"),Ee=(0,i.useState)(!0),ye=(0,t.Z)(Ee,2),we=ye[0],Te=ye[1],Ne=(0,i.useState)(""),Ue=(0,t.Z)(Ne,2),Ie=Ue[0],ke=Ue[1],Oe=(0,i.useCallback)((function(){return/^[A-Z0-9-_]+$/.test(y)?(ke(""),!0):(ke("Please verify that string is uppercase only and contains valid characters (numbers, dashes & underscores)."),!1)}),[y]);(0,i.useEffect)((function(){if(b){var e={},a={name:y,endpoint:U,bucket:W,prefix:M,region:V},t=Ae;switch("minio"===Ae&&(t="s3"),Ae){case"minio":case"s3":e={s3:(0,n.Z)((0,n.Z)({},a),{},{accesskey:_,secretkey:le,storageclass:J})};break;case"gcs":e={gcs:(0,n.Z)((0,n.Z)({},a),{},{creds:ce})};break;case"azure":e={azure:(0,n.Z)((0,n.Z)({},a),{},{accountname:be,accountkey:fe})}}var i=(0,n.Z)({type:t},e);g.Z.invoke("POST","/api/v1/admin/tiers",i).then((function(){h(!1),r.push(C.gA.TIERS)})).catch((function(e){h(!1),l(e)}))}}),[_,fe,be,W,ce,U,r,y,M,V,b,le,l,J,Ae]),(0,i.useEffect)((function(){var e=!0;""===Ae&&(e=!1),""!==y&&Oe()||(e=!1),""===U&&(e=!1),""===W&&(e=!1),""===M&&(e=!1),""===V&&"minio"!==Ae&&(e=!1),"s3"!==Ae&&"minio"!==Ae||(""===_&&(e=!1),""===le&&(e=!1)),"gcs"===Ae&&""===ce&&(e=!1),"azure"===Ae&&(""===be&&(e=!1),""===fe&&(e=!1)),Te(e)}),[_,fe,be,W,ce,U,we,y,M,V,le,J,Ae,Oe]),(0,i.useEffect)((function(){switch(Ae){case"gcs":I("https://storage.googleapis.com/"),Ce("Google Cloud");break;case"s3":I("https://s3.amazonaws.com"),Ce("Amazon S3");break;case"azure":I("http://blob.core.windows.net"),Ce("Azure");break;case"minio":I(""),Ce("MinIO")}}),[Ae]);var We=S.Bh.find((function(e){return e.serviceName===Ae}));return(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(x.Z,{label:(0,R.jsx)(i.Fragment,{children:(0,R.jsx)(Z.Z,{to:C.gA.TIERS_ADD,label:"Add Tier"})}),actions:(0,R.jsx)(i.Fragment,{})}),(0,R.jsx)(j.Z,{children:(0,R.jsx)(u.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea",padding:"25px"},children:(0,R.jsxs)("form",{noValidate:!0,onSubmit:function(e){e.preventDefault(),h(!0)},children:[""!==Ae&&We?(0,R.jsxs)(u.ZP,{item:!0,xs:12,sx:{display:"flex",alignItems:"center",justifyContent:"start",marginBottom:"20px"},children:[We.logo?(0,R.jsx)(v.Z,{sx:{"& .min-icon":{height:"60px",width:"60px"}},children:We.logo}):null,(0,R.jsx)("div",{className:a.lambdaNotifTitle,children:(0,R.jsxs)("b",{children:[je||""," - Add Tier Configuration"]})})]},"icon-".concat(We.targetTitle)):null,(0,R.jsx)(u.ZP,{item:!0,xs:12,sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gridRowGap:25,gridColumnGap:50},children:""!==Ae&&(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(m.Z,{id:"name",name:"name",label:"Name",placeholder:"Enter Name (Eg. REMOTE-TIER)",value:y,onChange:function(e){w(e.target.value.toUpperCase())},error:Ie,required:!0}),(0,R.jsx)(m.Z,{id:"endpoint",name:"endpoint",label:"Endpoint",placeholder:"Enter Endpoint",value:U,onChange:function(e){I(e.target.value)},required:!0}),(Ae===S.b2||Ae===S.Pp)&&(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(m.Z,{id:"accessKey",name:"accessKey",label:"Access Key",placeholder:"Enter Access Key",value:_,onChange:function(e){Q(e.target.value)},required:!0}),(0,R.jsx)(m.Z,{id:"secretKey",name:"secretKey",label:"Secret Key",placeholder:"Enter Secret Key",value:le,onChange:function(e){te(e.target.value)},required:!0})]}),Ae===S.f0&&(0,R.jsx)(f.Z,{accept:".json",classes:{fileInputField:a.fileInputFieldCss,textBoxContainer:a.fileTextBoxContainer,fileReselect:a.fileReselectCss},id:"creds",label:"Credentials",name:"creds",onChange:function(e,a){de(e),re(a)},value:se,required:!0}),Ae===S.vB&&(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(m.Z,{id:"accountName",name:"accountName",label:"Account Name",placeholder:"Enter Account Name",value:be,onChange:function(e){he(e.target.value)},required:!0}),(0,R.jsx)(m.Z,{id:"accountKey",name:"accountKey",label:"Account Key",placeholder:"Enter Account Key",value:fe,onChange:function(e){xe(e.target.value)},required:!0})]}),(0,R.jsx)(m.Z,{id:"bucket",name:"bucket",label:"Bucket",placeholder:"Enter Bucket",value:W,onChange:function(e){P(e.target.value)},required:!0}),(0,R.jsx)(m.Z,{id:"prefix",name:"prefix",label:"Prefix",placeholder:"Enter Prefix",value:M,onChange:function(e){B(e.target.value)},required:!0}),(0,R.jsx)(L,{onChange:function(e){q(e)},required:"minio"!==Ae,label:"Region",id:"region",name:"region",type:Ae}),Ae===S.b2||Ae===S.Pp&&(0,R.jsx)(m.Z,{id:"storageClass",name:"storageClass",label:"Storage Class",placeholder:"Enter Storage Class",value:J,onChange:function(e){Y(e.target.value)}})]})}),(0,R.jsx)(u.ZP,{item:!0,xs:12,className:a.settingsButtonContainer,children:(0,R.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:b||!we,children:"Save Tier Configuration"})})]})})})]})})))},34345:function(e,a,l){l.d(a,{Bh:function(){return u},Pp:function(){return i},b2:function(){return r},f0:function(){return s},vB:function(){return o}});var t=l(74833),n=l(80184),i="minio",s="gcs",r="s3",o="azure",u=[{serviceName:i,targetTitle:"MinIO",logo:(0,n.jsx)(t.$E,{}),logoXs:(0,n.jsx)(t.YE,{})},{serviceName:s,targetTitle:"Google Cloud Storage",logo:(0,n.jsx)(t.UQ,{}),logoXs:(0,n.jsx)(t.Vw,{})},{serviceName:r,targetTitle:"AWS S3",logo:(0,n.jsx)(t.fe,{}),logoXs:(0,n.jsx)(t.Xj,{})},{serviceName:o,targetTitle:"Azure",logo:(0,n.jsx)(t.jz,{}),logoXs:(0,n.jsx)(t.nA,{})}]},22512:function(e,a,l){var t=l(72791),n=l(20890),i=l(11135),s=l(25787),r=l(80184);a.Z=(0,s.Z)((function(e){var a;return(0,i.Z)({errorBlock:{color:(null===(a=e.palette)||void 0===a?void 0:a.error.main)||"#C83B51"}})}))((function(e){var a=e.classes,l=e.errorMessage,i=e.withBreak,s=void 0===i||i;return(0,r.jsxs)(t.Fragment,{children:[s&&(0,r.jsx)("br",{}),(0,r.jsx)(n.Z,{component:"p",variant:"body1",className:a.errorBlock,children:l})]})}))},99663:function(e,a,l){var t=l(95318);a.Z=void 0;var n=t(l(45649)),i=l(80184),s=(0,n.default)((0,i.jsx)("path",{d:"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"}),"AttachFile");a.Z=s},86711:function(e,a,l){var t=l(95318);a.Z=void 0;var n=t(l(45649)),i=l(80184),s=(0,n.default)((0,i.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");a.Z=s}}]); -//# sourceMappingURL=4335.daa02fff.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4335],{84669:function(e,a,l){l(72791);var t=l(91523),n=l(11135),i=l(25787),s=l(13048),r=l(64554),o=l(80184);a.Z=(0,i.Z)((function(e){return(0,n.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var a=e.to,l=e.label,n=e.classes,i=e.className,u=e.executeOnClick;return(0,o.jsx)(r.Z,{sx:{display:"flex",alignItems:"center"},children:(0,o.jsx)(t.rU,{to:a,className:"".concat(n.link," ").concat(i||""),onClick:function(){u&&u()},children:(0,o.jsxs)("div",{className:n.iconBox,children:[(0,o.jsx)("div",{className:n.icon,children:(0,o.jsx)(s.xN,{})}),(0,o.jsx)("div",{className:n.label,children:l})]})})})}))},54639:function(e,a,l){l.d(a,{Z:function(){return S}});var t=l(70885),n=l(1413),i=l(72791),s=l(26181),r=l.n(s),o=l(61889),u=l(30829),c=l(20068),d=l(13400),v=l(99663),p=l(86711),b=l(11135),h=l(25787),g=l(23814),m=l(84570),f=l(22512),x=l(80184),S=(0,h.Z)((function(e){return(0,b.Z)((0,n.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},g.YI),g.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},g.bV),{},{inputLabel:(0,n.Z)((0,n.Z)({},g.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,n.Z)((0,n.Z)({},g.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var a=e.label,l=e.classes,n=e.onChange,s=e.id,b=e.name,h=e.disabled,g=void 0!==h&&h,S=e.tooltip,Z=void 0===S?"":S,j=e.required,C=e.error,A=void 0===C?"":C,E=e.accept,y=void 0===E?"":E,w=e.value,T=void 0===w?"":w,N=(0,i.useState)(!1),U=(0,t.Z)(N,2),I=U[0],k=U[1];return(0,x.jsx)(i.Fragment,{children:(0,x.jsxs)(o.ZP,{item:!0,xs:12,className:"".concat(l.fileInputField," ").concat(l.fieldBottom," ").concat(l.fieldContainer," ").concat(""!==A?l.errorInField:""),children:[""!==a&&(0,x.jsxs)(u.Z,{htmlFor:s,className:"".concat(""!==A?l.fieldLabelError:""," ").concat(l.inputLabel),children:[(0,x.jsxs)("span",{children:[a,j?"*":""]}),""!==Z&&(0,x.jsx)("div",{className:l.tooltipContainer,children:(0,x.jsx)(c.Z,{title:Z,placement:"top-start",children:(0,x.jsx)("div",{className:l.tooltip,children:(0,x.jsx)(m.Z,{})})})})]}),I||""===T?(0,x.jsxs)("div",{className:l.textBoxContainer,children:[(0,x.jsx)("input",{type:"file",name:b,onChange:function(e){var a=r()(e,"target.files[0].name","");!function(e,a){var l=e.target.files[0],t=new FileReader;t.readAsDataURL(l),t.onload=function(){var e=t.result;if(e){var l=e.toString().split("base64,");2===l.length&&a(l[1])}}}(e,(function(e){n(e,a)}))},accept:y,required:j,disabled:g,className:l.fileInputField}),""!==T&&(0,x.jsx)(d.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){k(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,x.jsx)(p.Z,{})}),""!==A&&(0,x.jsx)(f.Z,{errorMessage:A})]}):(0,x.jsxs)("div",{className:l.fileReselect,children:[(0,x.jsx)("div",{className:l.valueString,children:T}),(0,x.jsx)(d.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){k(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,x.jsx)(v.Z,{})})]})]})})}))},74794:function(e,a,l){var t=l(1413),n=(l(72791),l(61889)),i=l(11135),s=l(25787),r=l(23814),o=l(80184);a.Z=(0,s.Z)((function(e){return(0,i.Z)((0,t.Z)({},r.Bw))}))((function(e){var a=e.classes,l=e.className,t=void 0===l?"":l,i=e.children;return(0,o.jsx)("div",{className:a.contentSpacer,children:(0,o.jsx)(n.ZP,{container:!0,children:(0,o.jsx)(n.ZP,{item:!0,xs:12,className:t,children:i})})})}))},32291:function(e,a,l){var t=l(72791),n=l(60364),i=l(61889),s=l(11135),r=l(25787),o=l(20890),u=l(13400),c=l(95466),d=l(84683),v=l(3925),p=l(13048),b=l(80184),h={toggleList:v.kQ},g=(0,n.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),h);a.Z=g((0,r.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var a=e.classes,l=e.label,n=e.actions,s=e.sidebarOpen,r=e.operatorMode,v=e.managerObjects,h=e.toggleList,g=e.middleComponent;return e.features.includes("hide-menu")?(0,b.jsx)(t.Fragment,{}):(0,b.jsxs)(i.ZP,{container:!0,className:"".concat(a.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,b.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:a.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,b.jsx)("div",{className:a.logo,children:r?(0,b.jsx)(c.Z,{}):(0,b.jsx)(d.Z,{})}),(0,b.jsx)(o.Z,{variant:"h4",className:a.labelStyle,children:l})]}),g&&(0,b.jsx)(i.ZP,{item:!0,xs:12,sm:12,md:6,className:a.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:g}),(0,b.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:a.rightMenu,children:[n&&n,v&&v.length>0&&(0,b.jsx)(u.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,b.jsx)(p.gx,{})})]})]})})))},84335:function(e,a,l){l.r(a),l.d(a,{default:function(){return B}});var t=l(70885),n=l(1413),i=l(72791),s=l(60364),r=l(26181),o=l.n(r),u=l(61889),c=l(11135),d=l(25787),v=l(64554),p=l(36151),b=l(42649),h=l(23814),g=l(81207),m=l(21435),f=l(54639),x=l(32291),S=l(34345),Z=l(84669),j=l(74794),C=l(56087),A=l(30829),E=l(20068),y=l(13400),w=l(72455),T=l(84570),N=l(28182),U=l(66172),I=l(27391),k=[{label:"US East (Ohio)",value:"us-east-2"},{label:"US East (N. Virginia)",value:"us-east-1"},{label:"US West (N. California)",value:"us-west-1"},{label:"US West (Oregon)",value:"us-west-2"},{label:"Africa (Cape Town)",value:"af-south-1"},{label:"Asia Pacific (Hong Kong)***",value:"ap-east-1"},{label:"Asia Pacific (Jakarta)",value:"ap-southeast-3"},{label:"Asia Pacific (Mumbai)",value:"ap-south-1"},{label:"Asia Pacific (Osaka)",value:"ap-northeast-3"},{label:"Asia Pacific (Seoul)",value:"ap-northeast-2"},{label:"Asia Pacific (Singapore)",value:"ap-southeast-1"},{label:"Asia Pacific (Sydney)",value:"ap-southeast-2"},{label:"Asia Pacific (Tokyo)",value:"ap-northeast-1"},{label:"Canada (Central)",value:"ca-central-1"},{label:"China (Beijing)",value:"cn-north-1"},{label:"China (Ningxia)",value:"cn-northwest-1"},{label:"Europe (Frankfurt)",value:"eu-central-1"},{label:"Europe (Ireland)",value:"eu-west-1"},{label:"Europe (London)",value:"eu-west-2"},{label:"Europe (Milan)",value:"eu-south-1"},{label:"Europe (Paris)",value:"eu-west-3"},{label:"Europe (Stockholm)",value:"eu-north-1"},{label:"South America (S\xe3o Paulo)",value:"sa-east-1"},{label:"Middle East (Bahrain)",value:"me-south-1"},{label:"AWS GovCloud (US-East)",value:"us-gov-east-1"},{label:"AWS GovCloud (US-West)",value:"us-gov-west-1"}],O=[{label:"Montr\xe9al",value:"NORTHAMERICA-NORTHEAST1"},{label:"Toronto",value:"NORTHAMERICA-NORTHEAST2"},{label:"Iowa",value:"US-CENTRAL1"},{label:"South Carolina",value:"US-EAST1"},{label:"Northern Virginia",value:"US-EAST4"},{label:"Oregon",value:"US-WEST1"},{label:"Los Angeles",value:"US-WEST2"},{label:"Salt Lake City",value:"US-WEST3"},{label:"Las Vegas",value:"US-WEST4"},{label:"S\xe3o Paulo",value:"SOUTHAMERICA-EAST1"},{label:"Santiago",value:"SOUTHAMERICA-WEST1"},{label:"Warsaw",value:"EUROPE-CENTRAL2"},{label:"Finland",value:"EUROPE-NORTH1"},{label:"Belgium",value:"EUROPE-WEST1"},{label:"London",value:"EUROPE-WEST2"},{label:"Frankfurt",value:"EUROPE-WEST3"},{label:"Netherlands",value:"EUROPE-WEST4"},{label:"Z\xfcrich",value:"EUROPE-WEST6"},{label:"Taiwan",value:"ASIA-EAST1"},{label:"Hong Kong",value:"ASIA-EAST2"},{label:"Tokyo",value:"ASIA-NORTHEAST1"},{label:"Osaka",value:"ASIA-NORTHEAST2"},{label:"Seoul",value:"ASIA-NORTHEAST3"},{label:"Mumbai",value:"ASIA-SOUTH1"},{label:"Delhi",value:"ASIA-SOUTH2"},{label:"Singapore",value:"ASIA-SOUTHEAST1"},{label:"Jakarta",value:"ASIA-SOUTHEAST2"},{label:"Sydney",value:"AUSTRALIA-SOUTHEAST1"},{label:"Melbourne",value:"AUSTRALIA-SOUTHEAST2"}],W=[{label:"Asia",value:"asia"},{label:"Asia Pacific",value:"asiapacific"},{label:"Australia",value:"australia"},{label:"Australia Central",value:"australiacentral"},{label:"Australia Central 2",value:"australiacentral2"},{label:"Australia East",value:"australiaeast"},{label:"Australia Southeast",value:"australiasoutheast"},{label:"Brazil",value:"brazil"},{label:"Brazil South",value:"brazilsouth"},{label:"Brazil Southeast",value:"brazilsoutheast"},{label:"Canada",value:"canada"},{label:"Canada Central",value:"canadacentral"},{label:"Canada East",value:"canadaeast"},{label:"Central India",value:"centralindia"},{label:"Central US",value:"centralus"},{label:"Central US (Stage)",value:"centralusstage"},{label:"Central US EUAP",value:"centraluseuap"},{label:"East Asia",value:"eastasia"},{label:"East Asia (Stage)",value:"eastasiastage"},{label:"East US",value:"eastus"},{label:"East US (Stage)",value:"eastusstage"},{label:"East US 2",value:"eastus2"},{label:"East US 2 (Stage)",value:"eastus2stage"},{label:"East US 2 EUAP",value:"eastus2euap"},{label:"Europe",value:"europe"},{label:"France",value:"france"},{label:"France Central",value:"francecentral"},{label:"France South",value:"francesouth"},{label:"Germany",value:"germany"},{label:"Germany North",value:"germanynorth"},{label:"Germany West Central",value:"germanywestcentral"},{label:"Global",value:"global"},{label:"India",value:"india"},{label:"Japan",value:"japan"},{label:"Japan East",value:"japaneast"},{label:"Japan West",value:"japanwest"},{label:"Jio India Central",value:"jioindiacentral"},{label:"Jio India West",value:"jioindiawest"},{label:"Korea",value:"korea"},{label:"Korea Central",value:"koreacentral"},{label:"Korea South",value:"koreasouth"},{label:"North Central US",value:"northcentralus"},{label:"North Central US (Stage)",value:"northcentralusstage"},{label:"North Europe",value:"northeurope"},{label:"Norway",value:"norway"},{label:"Norway East",value:"norwayeast"},{label:"Norway West",value:"norwaywest"},{label:"South Africa",value:"southafrica"},{label:"South Africa North",value:"southafricanorth"},{label:"South Africa West",value:"southafricawest"},{label:"South Central US",value:"southcentralus"},{label:"South Central US (Stage)",value:"southcentralusstage"},{label:"South India",value:"southindia"},{label:"Southeast Asia",value:"southeastasia"},{label:"Southeast Asia (Stage)",value:"southeastasiastage"},{label:"Sweden Central",value:"swedencentral"},{label:"Switzerland",value:"switzerland"},{label:"Switzerland North",value:"switzerlandnorth"},{label:"Switzerland West",value:"switzerlandwest"},{label:"UAE Central",value:"uaecentral"},{label:"UAE North",value:"uaenorth"},{label:"UK South",value:"uksouth"},{label:"UK West",value:"ukwest"},{label:"United Arab Emirates",value:"uae"},{label:"United Kingdom",value:"uk"},{label:"United States",value:"unitedstates"},{label:"United States EUAP",value:"unitedstateseuap"},{label:"West Central US",value:"westcentralus"},{label:"West Europe",value:"westeurope"},{label:"West India",value:"westindia"},{label:"West US",value:"westus"},{label:"West US (Stage)",value:"westusstage"},{label:"West US 2",value:"westus2"},{label:"West US 2 (Stage)",value:"westus2stage"},{label:"West US 3",value:"westus3"}],R=l(80184),P=function(e){var a=e.type,l=e.onChange,s=e.inputProps,r=function(e){return"s3"===e?k:"gcs"===e?O:"azure"===e?W:[]}(a),o=i.useState(""),u=(0,t.Z)(o,2),c=u[0],d=u[1];return(0,R.jsx)(U.Z,{sx:{"& .MuiOutlinedInput-root":{padding:0,paddingLeft:"10px",fontSize:13,fontWeight:600},"& .MuiAutocomplete-inputRoot":{"& .MuiOutlinedInput-notchedOutline":{borderColor:"#e5e5e5",borderWidth:1},"&:hover .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1},"&.Mui-focused .MuiOutlinedInput-notchedOutline":{borderColor:"#07193E",borderWidth:1}}},freeSolo:!0,selectOnFocus:!0,handleHomeEndKeys:!0,onChange:function(e,a){var t,n=a;n="string"===typeof a?{label:a}:a&&a.inputValue?{label:a.inputValue}:a,d(n),l(null===(t=n)||void 0===t?void 0:t.value)},value:c,onInputChange:function(e){var a=(e||{}).target,t=(a=void 0===a?{}:a).value;l(void 0===t?"":t)},getOptionLabel:function(e){return"string"===typeof e?e:e.inputValue?e.inputValue:e.value},options:r,filterOptions:function(e,a){var l=a.inputValue.toLowerCase();return e.filter((function(e){return"".concat(e.label.toLowerCase()).concat(e.value.toLowerCase()).includes(l)}))},renderOption:function(e,a){return(0,R.jsx)("li",(0,n.Z)((0,n.Z)({},e),{},{children:(0,R.jsxs)(v.Z,{sx:{display:"flex",flexFlow:"column",alignItems:"baseline",padding:"4px",borderBottom:"1px solid #eaeaea",cursor:"pointer",width:"100%","& .label":{fontSize:"13px",fontWeight:500},"& .value":{fontSize:"11px",fontWeight:400}},children:[(0,R.jsx)("span",{className:"label",children:a.value}),(0,R.jsx)("span",{className:"value",children:a.label})]})}))},renderInput:function(e){return(0,R.jsx)(I.Z,(0,n.Z)((0,n.Z)((0,n.Z)({},e),s),{},{fullWidth:!0}))}})},F=(0,w.Z)((function(e){return(0,c.Z)((0,n.Z)({},h.gM))})),L=(0,d.Z)((function(e){return(0,c.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},h.YI),h.Hr),{},{textBoxContainer:{flexGrow:1,position:"relative",minWidth:160},overlayAction:{position:"absolute",right:5,top:6,"& svg":{maxWidth:15,maxHeight:15},"&.withLabel":{top:5}},inputLabel:(0,n.Z)((0,n.Z)({},h.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var a=e.label,l=e.onChange,t=e.id,s=e.name,r=e.type,o=e.tooltip,c=void 0===o?"":o,d=e.index,v=void 0===d?0:d,p=e.error,b=void 0===p?"":p,h=e.required,g=void 0!==h&&h,m=e.overlayId,f=e.overlayIcon,x=void 0===f?null:f,S=e.overlayObject,Z=void 0===S?null:S,j=e.extraInputProps,C=void 0===j?{}:j,w=e.overlayAction,U=e.noLabelMinWidth,I=void 0!==U&&U,k=e.classes,O=e.className,W=void 0===O?"":O,L=F(),z=(0,n.Z)((0,n.Z)({"data-index":v},C),{},{name:s,id:t,classes:L});return(0,R.jsx)(i.Fragment,{children:(0,R.jsxs)(u.ZP,{container:!0,className:(0,N.Z)(""!==W?W:"",""!==b?k.errorInField:k.inputBoxContainer),children:[""!==a&&(0,R.jsxs)(A.Z,{htmlFor:t,className:I?k.noMinWidthLabel:k.inputLabel,children:[(0,R.jsxs)("span",{children:[a,g?"*":""]}),""!==c&&(0,R.jsx)("div",{className:k.tooltipContainer,children:(0,R.jsx)(E.Z,{title:c,placement:"top-start",children:(0,R.jsx)("div",{className:k.tooltip,children:(0,R.jsx)(T.Z,{})})})})]}),(0,R.jsxs)("div",{className:k.textBoxContainer,children:[(0,R.jsx)(P,{type:r,inputProps:z,onChange:l}),x&&(0,R.jsx)("div",{className:"".concat(k.overlayAction," ").concat(""!==a?"withLabel":""),children:(0,R.jsx)(y.Z,{onClick:w?function(){w()}:function(){return null},id:m,size:"small",disableFocusRipple:!1,disableRipple:!1,disableTouchRipple:!1,children:x})}),Z&&(0,R.jsx)("div",{className:"".concat(k.overlayAction," ").concat(""!==a?"withLabel":""),children:Z})]})]})})})),z={setErrorSnackMessage:b.Ih},M=(0,s.$j)(null,z),B=(0,d.Z)((function(e){return(0,c.Z)((0,n.Z)((0,n.Z)((0,n.Z)((0,n.Z)({},h.oO),h.Je),h.DF),{},{lambdaNotifTitle:{color:"#07193E",fontSize:16,fontFamily:"Lato,sans-serif",paddingLeft:18},fileInputFieldCss:{margin:"0"},fileTextBoxContainer:{maxWidth:" 100%",flex:1},fileReselectCss:{maxWidth:" 100%",flex:1}},h.bV))}))(M((function(e){var a=e.classes,l=e.setErrorSnackMessage,s=e.match,r=e.history,c=(0,i.useState)(!1),d=(0,t.Z)(c,2),b=d[0],h=d[1],A=(0,i.useState)(""),E=(0,t.Z)(A,2),y=E[0],w=E[1],T=(0,i.useState)(""),N=(0,t.Z)(T,2),U=N[0],I=N[1],k=(0,i.useState)(""),O=(0,t.Z)(k,2),W=O[0],P=O[1],F=(0,i.useState)(""),z=(0,t.Z)(F,2),M=z[0],B=z[1],H=(0,i.useState)(""),K=(0,t.Z)(H,2),V=K[0],q=K[1],G=(0,i.useState)(""),D=(0,t.Z)(G,2),J=D[0],Y=D[1],X=(0,i.useState)(""),$=(0,t.Z)(X,2),_=$[0],Q=$[1],ee=(0,i.useState)(""),ae=(0,t.Z)(ee,2),le=ae[0],te=ae[1],ne=(0,i.useState)(""),ie=(0,t.Z)(ne,2),se=ie[0],re=ie[1],oe=(0,i.useState)(""),ue=(0,t.Z)(oe,2),ce=ue[0],de=ue[1],ve=(0,i.useState)(""),pe=(0,t.Z)(ve,2),be=pe[0],he=pe[1],ge=(0,i.useState)(""),me=(0,t.Z)(ge,2),fe=me[0],xe=me[1],Se=(0,i.useState)(""),Ze=(0,t.Z)(Se,2),je=Ze[0],Ce=Ze[1],Ae=o()(s,"params.service","s3"),Ee=(0,i.useState)(!0),ye=(0,t.Z)(Ee,2),we=ye[0],Te=ye[1],Ne=(0,i.useState)(""),Ue=(0,t.Z)(Ne,2),Ie=Ue[0],ke=Ue[1],Oe=(0,i.useCallback)((function(){return/^[A-Z0-9-_]+$/.test(y)?(ke(""),!0):(ke("Please verify that string is uppercase only and contains valid characters (numbers, dashes & underscores)."),!1)}),[y]);(0,i.useEffect)((function(){if(b){var e={},a={name:y,endpoint:U,bucket:W,prefix:M,region:V},t=Ae;switch("minio"===Ae&&(t="s3"),Ae){case"minio":case"s3":e={s3:(0,n.Z)((0,n.Z)({},a),{},{accesskey:_,secretkey:le,storageclass:J})};break;case"gcs":e={gcs:(0,n.Z)((0,n.Z)({},a),{},{creds:ce})};break;case"azure":e={azure:(0,n.Z)((0,n.Z)({},a),{},{accountname:be,accountkey:fe})}}var i=(0,n.Z)({type:t},e);g.Z.invoke("POST","/api/v1/admin/tiers",i).then((function(){h(!1),r.push(C.gA.TIERS)})).catch((function(e){h(!1),l(e)}))}}),[_,fe,be,W,ce,U,r,y,M,V,b,le,l,J,Ae]),(0,i.useEffect)((function(){var e=!0;""===Ae&&(e=!1),""!==y&&Oe()||(e=!1),""===U&&(e=!1),""===W&&(e=!1),""===M&&(e=!1),""===V&&"minio"!==Ae&&(e=!1),"s3"!==Ae&&"minio"!==Ae||(""===_&&(e=!1),""===le&&(e=!1)),"gcs"===Ae&&""===ce&&(e=!1),"azure"===Ae&&(""===be&&(e=!1),""===fe&&(e=!1)),Te(e)}),[_,fe,be,W,ce,U,we,y,M,V,le,J,Ae,Oe]),(0,i.useEffect)((function(){switch(Ae){case"gcs":I("https://storage.googleapis.com/"),Ce("Google Cloud");break;case"s3":I("https://s3.amazonaws.com"),Ce("Amazon S3");break;case"azure":I("http://blob.core.windows.net"),Ce("Azure");break;case"minio":I(""),Ce("MinIO")}}),[Ae]);var We=S.Bh.find((function(e){return e.serviceName===Ae}));return(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(x.Z,{label:(0,R.jsx)(i.Fragment,{children:(0,R.jsx)(Z.Z,{to:C.gA.TIERS_ADD,label:"Add Tier"})}),actions:(0,R.jsx)(i.Fragment,{})}),(0,R.jsx)(j.Z,{children:(0,R.jsx)(u.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea",padding:"25px"},children:(0,R.jsxs)("form",{noValidate:!0,onSubmit:function(e){e.preventDefault(),h(!0)},children:[""!==Ae&&We?(0,R.jsxs)(u.ZP,{item:!0,xs:12,sx:{display:"flex",alignItems:"center",justifyContent:"start",marginBottom:"20px"},children:[We.logo?(0,R.jsx)(v.Z,{sx:{"& .min-icon":{height:"60px",width:"60px"}},children:We.logo}):null,(0,R.jsx)("div",{className:a.lambdaNotifTitle,children:(0,R.jsxs)("b",{children:[je||""," - Add Tier Configuration"]})})]},"icon-".concat(We.targetTitle)):null,(0,R.jsx)(u.ZP,{item:!0,xs:12,sx:{display:"grid",gridTemplateColumns:{xs:"1fr",sm:"1fr 1fr"},gridAutoFlow:{xs:"dense",sm:"row"},gridRowGap:25,gridColumnGap:50},children:""!==Ae&&(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(m.Z,{id:"name",name:"name",label:"Name",placeholder:"Enter Name (Eg. REMOTE-TIER)",value:y,onChange:function(e){w(e.target.value.toUpperCase())},error:Ie,required:!0}),(0,R.jsx)(m.Z,{id:"endpoint",name:"endpoint",label:"Endpoint",placeholder:"Enter Endpoint",value:U,onChange:function(e){I(e.target.value)},required:!0}),(Ae===S.b2||Ae===S.Pp)&&(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(m.Z,{id:"accessKey",name:"accessKey",label:"Access Key",placeholder:"Enter Access Key",value:_,onChange:function(e){Q(e.target.value)},required:!0}),(0,R.jsx)(m.Z,{id:"secretKey",name:"secretKey",label:"Secret Key",placeholder:"Enter Secret Key",value:le,onChange:function(e){te(e.target.value)},required:!0})]}),Ae===S.f0&&(0,R.jsx)(f.Z,{accept:".json",classes:{fileInputField:a.fileInputFieldCss,textBoxContainer:a.fileTextBoxContainer,fileReselect:a.fileReselectCss},id:"creds",label:"Credentials",name:"creds",onChange:function(e,a){de(e),re(a)},value:se,required:!0}),Ae===S.vB&&(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(m.Z,{id:"accountName",name:"accountName",label:"Account Name",placeholder:"Enter Account Name",value:be,onChange:function(e){he(e.target.value)},required:!0}),(0,R.jsx)(m.Z,{id:"accountKey",name:"accountKey",label:"Account Key",placeholder:"Enter Account Key",value:fe,onChange:function(e){xe(e.target.value)},required:!0})]}),(0,R.jsx)(m.Z,{id:"bucket",name:"bucket",label:"Bucket",placeholder:"Enter Bucket",value:W,onChange:function(e){P(e.target.value)},required:!0}),(0,R.jsx)(m.Z,{id:"prefix",name:"prefix",label:"Prefix",placeholder:"Enter Prefix",value:M,onChange:function(e){B(e.target.value)},required:!0}),(0,R.jsx)(L,{onChange:function(e){q(e)},required:"minio"!==Ae,label:"Region",id:"region",name:"region",type:Ae}),Ae===S.b2||Ae===S.Pp&&(0,R.jsx)(m.Z,{id:"storageClass",name:"storageClass",label:"Storage Class",placeholder:"Enter Storage Class",value:J,onChange:function(e){Y(e.target.value)}})]})}),(0,R.jsx)(u.ZP,{item:!0,xs:12,className:a.settingsButtonContainer,children:(0,R.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:b||!we,children:"Save Tier Configuration"})})]})})})]})})))},34345:function(e,a,l){l.d(a,{Bh:function(){return u},Pp:function(){return i},b2:function(){return r},f0:function(){return s},vB:function(){return o}});var t=l(13048),n=l(80184),i="minio",s="gcs",r="s3",o="azure",u=[{serviceName:i,targetTitle:"MinIO",logo:(0,n.jsx)(t.$E,{}),logoXs:(0,n.jsx)(t.YE,{})},{serviceName:s,targetTitle:"Google Cloud Storage",logo:(0,n.jsx)(t.UQ,{}),logoXs:(0,n.jsx)(t.Vw,{})},{serviceName:r,targetTitle:"AWS S3",logo:(0,n.jsx)(t.fe,{}),logoXs:(0,n.jsx)(t.Xj,{})},{serviceName:o,targetTitle:"Azure",logo:(0,n.jsx)(t.jz,{}),logoXs:(0,n.jsx)(t.nA,{})}]},22512:function(e,a,l){var t=l(72791),n=l(20890),i=l(11135),s=l(25787),r=l(80184);a.Z=(0,s.Z)((function(e){var a;return(0,i.Z)({errorBlock:{color:(null===(a=e.palette)||void 0===a?void 0:a.error.main)||"#C83B51"}})}))((function(e){var a=e.classes,l=e.errorMessage,i=e.withBreak,s=void 0===i||i;return(0,r.jsxs)(t.Fragment,{children:[s&&(0,r.jsx)("br",{}),(0,r.jsx)(n.Z,{component:"p",variant:"body1",className:a.errorBlock,children:l})]})}))},99663:function(e,a,l){var t=l(95318);a.Z=void 0;var n=t(l(45649)),i=l(80184),s=(0,n.default)((0,i.jsx)("path",{d:"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"}),"AttachFile");a.Z=s},86711:function(e,a,l){var t=l(95318);a.Z=void 0;var n=t(l(45649)),i=l(80184),s=(0,n.default)((0,i.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");a.Z=s}}]); +//# sourceMappingURL=4335.bce36690.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4335.daa02fff.chunk.js.map b/portal-ui/build/static/js/4335.bce36690.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/4335.daa02fff.chunk.js.map rename to portal-ui/build/static/js/4335.bce36690.chunk.js.map index 2391bf205..fa4e27ffa 100644 --- a/portal-ui/build/static/js/4335.daa02fff.chunk.js.map +++ b/portal-ui/build/static/js/4335.bce36690.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4335.daa02fff.chunk.js","mappings":"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hC,MAAO,oBACPgC,MAAO,iBAET,CACEhC,MAAO,UACPgC,MAAO,UAET,CACEhC,MAAO,kBACPgC,MAAO,eAET,CACEhC,MAAO,YACPgC,MAAO,WAET,CACEhC,MAAO,oBACPgC,MAAO,gBAET,CACEhC,MAAO,iBACPgC,MAAO,eAET,CACEhC,MAAO,SACPgC,MAAO,UAET,CACEhC,MAAO,SACPgC,MAAO,UAET,CACEhC,MAAO,iBACPgC,MAAO,iBAET,CACEhC,MAAO,eACPgC,MAAO,eAET,CACEhC,MAAO,UACPgC,MAAO,WAET,CACEhC,MAAO,gBACPgC,MAAO,gBAET,CACEhC,MAAO,uBACPgC,MAAO,sBAET,CACEhC,MAAO,SACPgC,MAAO,UAET,CACEhC,MAAO,QACPgC,MAAO,SAET,CACEhC,MAAO,QACPgC,MAAO,SAET,CACEhC,MAAO,aACPgC,MAAO,aAET,CACEhC,MAAO,aACPgC,MAAO,aAET,CACEhC,MAAO,oBACPgC,MAAO,mBAET,CACEhC,MAAO,iBACPgC,MAAO,gBAET,CACEhC,MAAO,QACPgC,MAAO,SAET,CACEhC,MAAO,gBACPgC,MAAO,gBAET,CACEhC,MAAO,cACPgC,MAAO,cAET,CACEhC,MAAO,mBACPgC,MAAO,kBAET,CACEhC,MAAO,2BACPgC,MAAO,uBAET,CACEhC,MAAO,eACPgC,MAAO,eAET,CACEhC,MAAO,SACPgC,MAAO,UAET,CACEhC,MAAO,cACPgC,MAAO,cAET,CACEhC,MAAO,cACPgC,MAAO,cAET,CACEhC,MAAO,eACPgC,MAAO,eAET,CACEhC,MAAO,qBACPgC,MAAO,oBAET,CACEhC,MAAO,oBACPgC,MAAO,mBAET,CACEhC,MAAO,mBACPgC,MAAO,kBAET,CACEhC,MAAO,2BACPgC,MAAO,uBAET,CACEhC,MAAO,cACPgC,MAAO,cAET,CACEhC,MAAO,iBACPgC,MAAO,iBAET,CACEhC,MAAO,yBACPgC,MAAO,sBAET,CACEhC,MAAO,iBACPgC,MAAO,iBAET,CACEhC,MAAO,cACPgC,MAAO,eAET,CACEhC,MAAO,oBACPgC,MAAO,oBAET,CACEhC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","sources":["common/BackLink.tsx","screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Configurations/TiersConfiguration/s3-regions.tsx","screens/Console/Configurations/TiersConfiguration/gcs-regions.ts","screens/Console/Configurations/TiersConfiguration/azure-regions.ts","screens/Console/Configurations/TiersConfiguration/RegionSelect.tsx","screens/Console/Configurations/TiersConfiguration/RegionSelectWrapper.tsx","screens/Console/Configurations/TiersConfiguration/AddTierConfiguration.tsx","screens/Console/Configurations/TiersConfiguration/utils.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/AttachFile.js","../node_modules/@mui/icons-material/Cancel.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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n
    \n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
    \n ) : (\n
    \n
    {value}
    \n {\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
    \n )}\n \n
    \n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { RegionEntry } from \"./types\";\n\nconst s3Regions: RegionEntry[] = [\n { label: \"US East (Ohio)\", value: \"us-east-2\" },\n { label: \"US East (N. Virginia)\", value: \"us-east-1\" },\n { label: \"US West (N. California)\", value: \"us-west-1\" },\n { label: \"US West (Oregon)\", value: \"us-west-2\" },\n { label: \"Africa (Cape Town)\", value: \"af-south-1\" },\n { label: \"Asia Pacific (Hong Kong)***\", value: \"ap-east-1\" },\n { label: \"Asia Pacific (Jakarta)\", value: \"ap-southeast-3\" },\n { label: \"Asia Pacific (Mumbai)\", value: \"ap-south-1\" },\n { label: \"Asia Pacific (Osaka)\", value: \"ap-northeast-3\" },\n { label: \"Asia Pacific (Seoul)\", value: \"ap-northeast-2\" },\n { label: \"Asia Pacific (Singapore)\", value: \"ap-southeast-1\" },\n { label: \"Asia Pacific (Sydney)\", value: \"ap-southeast-2\" },\n { label: \"Asia Pacific (Tokyo)\", value: \"ap-northeast-1\" },\n { label: \"Canada (Central)\", value: \"ca-central-1\" },\n { label: \"China (Beijing)\", value: \"cn-north-1\" },\n { label: \"China (Ningxia)\", value: \"cn-northwest-1\" },\n { label: \"Europe (Frankfurt)\", value: \"eu-central-1\" },\n { label: \"Europe (Ireland)\", value: \"eu-west-1\" },\n { label: \"Europe (London)\", value: \"eu-west-2\" },\n { label: \"Europe (Milan)\", value: \"eu-south-1\" },\n { label: \"Europe (Paris)\", value: \"eu-west-3\" },\n { label: \"Europe (Stockholm)\", value: \"eu-north-1\" },\n { label: \"South America (São Paulo)\", value: \"sa-east-1\" },\n { label: \"Middle East (Bahrain)\", value: \"me-south-1\" },\n { label: \"AWS GovCloud (US-East)\", value: \"us-gov-east-1\" },\n { label: \"AWS GovCloud (US-West)\", value: \"us-gov-west-1\" },\n];\n\nexport default s3Regions;\n","import { RegionEntry } from \"./types\";\n\nconst gcsRegions: RegionEntry[] = [\n { label: \"Montréal\", value: \"NORTHAMERICA-NORTHEAST1\" },\n { label: \"Toronto\", value: \"NORTHAMERICA-NORTHEAST2\" },\n { label: \"Iowa\", value: \"US-CENTRAL1\" },\n { label: \"South Carolina\", value: \"US-EAST1\" },\n { label: \"Northern Virginia\", value: \"US-EAST4\" },\n { label: \"Oregon\", value: \"US-WEST1\" },\n { label: \"Los Angeles\", value: \"US-WEST2\" },\n { label: \"Salt Lake City\", value: \"US-WEST3\" },\n { label: \"Las Vegas\", value: \"US-WEST4\" },\n { label: \"São Paulo\", value: \"SOUTHAMERICA-EAST1\" },\n { label: \"Santiago\", value: \"SOUTHAMERICA-WEST1\" },\n { label: \"Warsaw\", value: \"EUROPE-CENTRAL2\" },\n { label: \"Finland\", value: \"EUROPE-NORTH1\" },\n { label: \"Belgium\", value: \"EUROPE-WEST1\" },\n { label: \"London\", value: \"EUROPE-WEST2\" },\n { label: \"Frankfurt\", value: \"EUROPE-WEST3\" },\n { label: \"Netherlands\", value: \"EUROPE-WEST4\" },\n { label: \"Zürich\", value: \"EUROPE-WEST6\" },\n { label: \"Taiwan\", value: \"ASIA-EAST1\" },\n { label: \"Hong Kong\", value: \"ASIA-EAST2\" },\n { label: \"Tokyo\", value: \"ASIA-NORTHEAST1\" },\n { label: \"Osaka\", value: \"ASIA-NORTHEAST2\" },\n { label: \"Seoul\", value: \"ASIA-NORTHEAST3\" },\n { label: \"Mumbai\", value: \"ASIA-SOUTH1\" },\n { label: \"Delhi\", value: \"ASIA-SOUTH2\" },\n { label: \"Singapore\", value: \"ASIA-SOUTHEAST1\" },\n { label: \"Jakarta\", value: \"ASIA-SOUTHEAST2\" },\n { label: \"Sydney\", value: \"AUSTRALIA-SOUTHEAST1\" },\n { label: \"Melbourne\", value: \"AUSTRALIA-SOUTHEAST2\" },\n];\n\nexport default gcsRegions;\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 { RegionEntry } from \"./types\";\n\nconst azureRegions: RegionEntry[] = [\n {\n label: \"Asia\",\n value: \"asia\",\n },\n {\n label: \"Asia Pacific\",\n value: \"asiapacific\",\n },\n {\n label: \"Australia\",\n value: \"australia\",\n },\n {\n label: \"Australia Central\",\n value: \"australiacentral\",\n },\n {\n label: \"Australia Central 2\",\n value: \"australiacentral2\",\n },\n {\n label: \"Australia East\",\n value: \"australiaeast\",\n },\n {\n label: \"Australia Southeast\",\n value: \"australiasoutheast\",\n },\n {\n label: \"Brazil\",\n value: \"brazil\",\n },\n {\n label: \"Brazil South\",\n value: \"brazilsouth\",\n },\n {\n label: \"Brazil Southeast\",\n value: \"brazilsoutheast\",\n },\n {\n label: \"Canada\",\n value: \"canada\",\n },\n {\n label: \"Canada Central\",\n value: \"canadacentral\",\n },\n {\n label: \"Canada East\",\n value: \"canadaeast\",\n },\n {\n label: \"Central India\",\n value: \"centralindia\",\n },\n {\n label: \"Central US\",\n value: \"centralus\",\n },\n {\n label: \"Central US (Stage)\",\n value: \"centralusstage\",\n },\n {\n label: \"Central US EUAP\",\n value: \"centraluseuap\",\n },\n {\n label: \"East Asia\",\n value: \"eastasia\",\n },\n {\n label: \"East Asia (Stage)\",\n value: \"eastasiastage\",\n },\n {\n label: \"East US\",\n value: \"eastus\",\n },\n {\n label: \"East US (Stage)\",\n value: \"eastusstage\",\n },\n {\n label: \"East US 2\",\n value: \"eastus2\",\n },\n {\n label: \"East US 2 (Stage)\",\n value: \"eastus2stage\",\n },\n {\n label: \"East US 2 EUAP\",\n value: \"eastus2euap\",\n },\n {\n label: \"Europe\",\n value: \"europe\",\n },\n {\n label: \"France\",\n value: \"france\",\n },\n {\n label: \"France Central\",\n value: \"francecentral\",\n },\n {\n label: \"France South\",\n value: \"francesouth\",\n },\n {\n label: \"Germany\",\n value: \"germany\",\n },\n {\n label: \"Germany North\",\n value: \"germanynorth\",\n },\n {\n label: \"Germany West Central\",\n value: \"germanywestcentral\",\n },\n {\n label: \"Global\",\n value: \"global\",\n },\n {\n label: \"India\",\n value: \"india\",\n },\n {\n label: \"Japan\",\n value: \"japan\",\n },\n {\n label: \"Japan East\",\n value: \"japaneast\",\n },\n {\n label: \"Japan West\",\n value: \"japanwest\",\n },\n {\n label: \"Jio India Central\",\n value: \"jioindiacentral\",\n },\n {\n label: \"Jio India West\",\n value: \"jioindiawest\",\n },\n {\n label: \"Korea\",\n value: \"korea\",\n },\n {\n label: \"Korea Central\",\n value: \"koreacentral\",\n },\n {\n label: \"Korea South\",\n value: \"koreasouth\",\n },\n {\n label: \"North Central US\",\n value: \"northcentralus\",\n },\n {\n label: \"North Central US (Stage)\",\n value: \"northcentralusstage\",\n },\n {\n label: \"North Europe\",\n value: \"northeurope\",\n },\n {\n label: \"Norway\",\n value: \"norway\",\n },\n {\n label: \"Norway East\",\n value: \"norwayeast\",\n },\n {\n label: \"Norway West\",\n value: \"norwaywest\",\n },\n {\n label: \"South Africa\",\n value: \"southafrica\",\n },\n {\n label: \"South Africa North\",\n value: \"southafricanorth\",\n },\n {\n label: \"South Africa West\",\n value: \"southafricawest\",\n },\n {\n label: \"South Central US\",\n value: \"southcentralus\",\n },\n {\n label: \"South Central US (Stage)\",\n value: \"southcentralusstage\",\n },\n {\n label: \"South India\",\n value: \"southindia\",\n },\n {\n label: \"Southeast Asia\",\n value: \"southeastasia\",\n },\n {\n label: \"Southeast Asia (Stage)\",\n value: \"southeastasiastage\",\n },\n {\n label: \"Sweden Central\",\n value: \"swedencentral\",\n },\n {\n label: \"Switzerland\",\n value: \"switzerland\",\n },\n {\n label: \"Switzerland North\",\n value: \"switzerlandnorth\",\n },\n {\n label: \"Switzerland West\",\n value: \"switzerlandwest\",\n },\n {\n label: \"UAE Central\",\n value: \"uaecentral\",\n },\n {\n label: \"UAE North\",\n value: \"uaenorth\",\n },\n {\n label: \"UK South\",\n value: \"uksouth\",\n },\n {\n label: \"UK West\",\n value: \"ukwest\",\n },\n {\n label: \"United Arab Emirates\",\n value: \"uae\",\n },\n {\n label: \"United Kingdom\",\n value: \"uk\",\n },\n {\n label: \"United States\",\n value: \"unitedstates\",\n },\n {\n label: \"United States EUAP\",\n value: \"unitedstateseuap\",\n },\n {\n label: \"West Central US\",\n value: \"westcentralus\",\n },\n {\n label: \"West Europe\",\n value: \"westeurope\",\n },\n {\n label: \"West India\",\n value: \"westindia\",\n },\n {\n label: \"West US\",\n value: \"westus\",\n },\n {\n label: \"West US (Stage)\",\n value: \"westusstage\",\n },\n {\n label: \"West US 2\",\n value: \"westus2\",\n },\n {\n label: \"West US 2 (Stage)\",\n value: \"westus2stage\",\n },\n {\n label: \"West US 3\",\n value: \"westus3\",\n },\n];\nexport default azureRegions;\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\nimport { Autocomplete, Box, TextField } from \"@mui/material\";\n\nimport s3Regions from \"./s3-regions\";\nimport gcsRegions from \"./gcs-regions\";\nimport azRegions from \"./azure-regions\";\n\nconst getRegions = (type: string): any => {\n if (type === \"s3\") {\n return s3Regions;\n }\n if (type === \"gcs\") {\n return gcsRegions;\n }\n if (type === \"azure\") {\n return azRegions;\n }\n\n return [];\n};\n\nconst RegionSelect = ({\n type,\n onChange,\n inputProps,\n}: {\n type: \"minio\" | \"s3\" | \"gcs\" | \"azure\" | \"unsupported\";\n onChange: (obj: any) => void;\n inputProps?: any;\n}) => {\n const regionList = getRegions(type);\n const [value, setValue] = React.useState(\"\");\n\n return (\n {\n let newVal: any = newValue;\n\n if (typeof newValue === \"string\") {\n newVal = {\n label: newValue,\n };\n } else if (newValue && newValue.inputValue) {\n // Create a new value from the user input\n newVal = {\n label: newValue.inputValue,\n };\n } else {\n newVal = newValue;\n }\n setValue(newVal);\n onChange(newVal?.value);\n }}\n value={value}\n onInputChange={(e: any) => {\n const { target: { value = \"\" } = {} } = e || {};\n onChange(value);\n }}\n getOptionLabel={(option) => {\n // Value selected with enter, right from the input\n if (typeof option === \"string\") {\n return option;\n }\n // Add \"xxx\" option created dynamically\n if (option.inputValue) {\n return option.inputValue;\n }\n // Regular option\n return option.value;\n }}\n options={regionList}\n filterOptions={(opts: any[], state: any) => {\n const filterText = state.inputValue.toLowerCase();\n\n return opts.filter((opt) =>\n `${opt.label.toLowerCase()}${opt.value.toLowerCase()}`.includes(\n filterText\n )\n );\n }}\n renderOption={(props: any, opt: any) => {\n return (\n
  • \n \n {opt.value}\n {opt.label}\n \n
  • \n );\n }}\n renderInput={(params) => (\n \n )}\n />\n );\n};\n\nexport default RegionSelect;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { Grid, IconButton, InputLabel, Tooltip } from \"@mui/material\";\nimport { InputProps as StandardInputProps } from \"@mui/material/Input\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n inputFieldStyles,\n tooltipHelper,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport HelpIcon from \"../../../../icons/HelpIcon\";\nimport clsx from \"clsx\";\nimport RegionSelect from \"./RegionSelect\";\n\ninterface RegionSelectBoxProps {\n label: string;\n classes?: any;\n onChange: (value: string) => void;\n onKeyPress?: (e: any) => void;\n value?: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n type: \"minio\" | \"s3\" | \"gcs\" | \"azure\";\n tooltip?: string;\n index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n overlayId?: string;\n overlayIcon?: any;\n overlayAction?: () => void;\n overlayObject?: any;\n extraInputProps?: StandardInputProps[\"inputProps\"];\n noLabelMinWidth?: boolean;\n pattern?: string;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n minWidth: 160,\n },\n overlayAction: {\n position: \"absolute\",\n right: 5,\n top: 6,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"&.withLabel\": {\n top: 5,\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...inputFieldStyles,\n })\n);\n\nconst RegionSelectWrapper = ({\n label,\n onChange,\n id,\n name,\n type,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n overlayId,\n overlayIcon = null,\n overlayObject = null,\n extraInputProps = {},\n overlayAction,\n noLabelMinWidth = false,\n classes,\n className = \"\",\n}: RegionSelectBoxProps) => {\n const inputClasses = inputStyles();\n\n let inputProps: any = {\n \"data-index\": index,\n ...extraInputProps,\n name: name,\n id: id,\n classes: inputClasses,\n };\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n \n )}\n\n
    \n \n {overlayIcon && (\n \n {\n overlayAction();\n }\n : () => null\n }\n id={overlayId}\n size={\"small\"}\n disableFocusRipple={false}\n disableRipple={false}\n disableTouchRipple={false}\n >\n {overlayIcon}\n \n
    \n )}\n {overlayObject && (\n \n {overlayObject}\n \n )}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(RegionSelectWrapper);\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 { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, Button } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport {\n fileInputStyles,\n formFieldStyles,\n modalBasic,\n settingsCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FileSelector from \"../../Common/FormComponents/FileSelector/FileSelector\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport {\n azureServiceName,\n gcsServiceName,\n minioServiceName,\n s3ServiceName,\n tierTypes,\n} from \"./utils\";\nimport BackLink from \"../../../../common/BackLink\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\n\nimport RegionSelectWrapper from \"./RegionSelectWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n ...settingsCommon,\n ...formFieldStyles,\n lambdaNotifTitle: {\n color: \"#07193E\",\n fontSize: 16,\n fontFamily: \"Lato,sans-serif\",\n paddingLeft: 18,\n },\n fileInputFieldCss: {\n margin: \"0\",\n },\n fileTextBoxContainer: {\n maxWidth: \" 100%\",\n flex: 1,\n },\n fileReselectCss: {\n maxWidth: \" 100%\",\n flex: 1,\n },\n ...fileInputStyles,\n });\n\ninterface IAddNotificationEndpointProps {\n setErrorSnackMessage: typeof setErrorSnackMessage;\n classes: any;\n match: any;\n history: any;\n}\n\nconst AddTierConfiguration = ({\n classes,\n setErrorSnackMessage,\n match,\n history,\n}: IAddNotificationEndpointProps) => {\n //Local States\n const [saving, setSaving] = useState(false);\n\n // Form Items\n const [name, setName] = useState(\"\");\n const [endpoint, setEndpoint] = useState(\"\");\n const [bucket, setBucket] = useState(\"\");\n const [prefix, setPrefix] = useState(\"\");\n const [region, setRegion] = useState(\"\");\n const [storageClass, setStorageClass] = useState(\"\");\n\n const [accessKey, setAccessKey] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n\n const [creds, setCreds] = useState(\"\");\n const [encodedCreds, setEncodedCreds] = useState(\"\");\n\n const [accountName, setAccountName] = useState(\"\");\n const [accountKey, setAccountKey] = useState(\"\");\n\n const [titleSelection, setTitleSelection] = useState(\"\");\n\n const type = get(match, \"params.service\", \"s3\");\n\n // Validations\n const [isFormValid, setIsFormValid] = useState(true);\n const [nameInputError, setNameInputError] = useState(\"\");\n\n // Extra validation functions\n\n const validName = useCallback(() => {\n const patternAgainst = /^[A-Z0-9-_]+$/; // Only allow uppercase, numbers, dashes and underscores\n if (patternAgainst.test(name)) {\n setNameInputError(\"\");\n return true;\n }\n\n setNameInputError(\n \"Please verify that string is uppercase only and contains valid characters (numbers, dashes & underscores).\"\n );\n return false;\n }, [name]);\n\n //Effects\n\n useEffect(() => {\n if (saving) {\n let request = {};\n let fields = {\n name,\n endpoint,\n bucket,\n prefix,\n region,\n };\n\n let tierType = type;\n\n if (type === \"minio\") {\n tierType = \"s3\";\n }\n\n switch (type) {\n case \"minio\":\n case \"s3\":\n request = {\n s3: {\n ...fields,\n accesskey: accessKey,\n secretkey: secretKey,\n storageclass: storageClass,\n },\n };\n break;\n case \"gcs\":\n request = {\n gcs: {\n ...fields,\n creds: encodedCreds,\n },\n };\n break;\n case \"azure\":\n request = {\n azure: {\n ...fields,\n accountname: accountName,\n accountkey: accountKey,\n },\n };\n }\n\n let payload = {\n type: tierType,\n ...request,\n };\n\n api\n .invoke(\"POST\", `/api/v1/admin/tiers`, payload)\n .then(() => {\n setSaving(false);\n\n history.push(IAM_PAGES.TIERS);\n })\n .catch((err: ErrorResponseHandler) => {\n setSaving(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n accessKey,\n accountKey,\n accountName,\n bucket,\n encodedCreds,\n endpoint,\n history,\n name,\n prefix,\n region,\n saving,\n secretKey,\n setErrorSnackMessage,\n storageClass,\n type,\n ]);\n\n useEffect(() => {\n let valid = true;\n if (type === \"\") {\n valid = false;\n }\n if (name === \"\" || !validName()) {\n valid = false;\n }\n if (endpoint === \"\") {\n valid = false;\n }\n if (bucket === \"\") {\n valid = false;\n }\n if (prefix === \"\") {\n valid = false;\n }\n if (region === \"\" && type !== \"minio\") {\n valid = false;\n }\n\n if (type === \"s3\" || type === \"minio\") {\n if (accessKey === \"\") {\n valid = false;\n }\n if (secretKey === \"\") {\n valid = false;\n }\n }\n\n if (type === \"gcs\") {\n if (encodedCreds === \"\") {\n valid = false;\n }\n }\n\n if (type === \"azure\") {\n if (accountName === \"\") {\n valid = false;\n }\n if (accountKey === \"\") {\n valid = false;\n }\n }\n\n setIsFormValid(valid);\n }, [\n accessKey,\n accountKey,\n accountName,\n bucket,\n encodedCreds,\n endpoint,\n isFormValid,\n name,\n prefix,\n region,\n secretKey,\n storageClass,\n type,\n validName,\n ]);\n\n useEffect(() => {\n switch (type) {\n case \"gcs\":\n setEndpoint(\"https://storage.googleapis.com/\");\n setTitleSelection(\"Google Cloud\");\n break;\n case \"s3\":\n setEndpoint(\"https://s3.amazonaws.com\");\n setTitleSelection(\"Amazon S3\");\n break;\n case \"azure\":\n setEndpoint(\"http://blob.core.windows.net\");\n setTitleSelection(\"Azure\");\n break;\n case \"minio\":\n setEndpoint(\"\");\n setTitleSelection(\"MinIO\");\n }\n }, [type]);\n\n //Fetch Actions\n const submitForm = (event: React.FormEvent) => {\n event.preventDefault();\n setSaving(true);\n };\n\n // Input actions\n const updateTierName = (e: React.ChangeEvent) => {\n setName(e.target.value.toUpperCase());\n };\n\n const targetElement = tierTypes.find((item) => item.serviceName === type);\n\n return (\n \n \n \n \n }\n actions={}\n />\n\n \n \n
    \n {type !== \"\" && targetElement ? (\n \n {targetElement.logo ? (\n \n {targetElement.logo}\n \n ) : null}\n\n
    \n \n {titleSelection ? titleSelection : \"\"} - Add Tier\n Configuration\n \n
    \n \n ) : null}\n\n \n {type !== \"\" && (\n \n \n ) => {\n setEndpoint(e.target.value);\n }}\n required\n />\n {(type === s3ServiceName || type === minioServiceName) && (\n \n ) => {\n setAccessKey(e.target.value);\n }}\n required\n />\n ) => {\n setSecretKey(e.target.value);\n }}\n required\n />\n \n )}\n {type === gcsServiceName && (\n {\n setEncodedCreds(encodedValue);\n setCreds(fileName);\n }}\n value={creds}\n required\n />\n )}\n {type === azureServiceName && (\n \n ) => {\n setAccountName(e.target.value);\n }}\n required\n />\n ) => {\n setAccountKey(e.target.value);\n }}\n required\n />\n \n )}\n ) => {\n setBucket(e.target.value);\n }}\n required\n />\n ) => {\n setPrefix(e.target.value);\n }}\n required\n />\n {\n setRegion(value);\n }}\n required={type !== \"minio\"}\n label={\"Region\"}\n id=\"region\"\n name=\"region\"\n type={type}\n />\n {type === s3ServiceName ||\n (type === minioServiceName && (\n ) => {\n setStorageClass(e.target.value);\n }}\n />\n ))}\n \n )}\n \n \n \n Save Tier Configuration\n \n \n \n \n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(AddTierConfiguration));\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 GoogleTierIcon,\n MinIOTierIcon,\n MinIOTierIconXs,\n S3TierIcon,\n GoogleTierIconXs,\n S3TierIconXs,\n AzureTierIconXs,\n} from \"../../../../icons\";\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","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
    }\n \n {errorMessage}\n \n
    \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"\n}), 'AttachFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","fieldBasic","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","marginTop","fileInputField","margin","flexFlow","fileInputStyles","inputLabel","textBoxContainer","border","onChange","id","name","disabled","tooltip","required","error","accept","value","useState","showFileSelector","setShowSelector","Grid","item","xs","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","title","placement","HelpIcon","type","e","fileName","get","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","length","fileProcess","data","IconButton","component","disableRipple","disableFocusRipple","size","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","pageContentStyles","children","contentSpacer","container","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","backgroundColor","left","boxShadow","justifyContent","labelStyle","marginLeft","rightMenu","textAlign","logo","fill","main","middleComponent","actions","includes","Fragment","direction","sm","md","variant","inputProps","regionList","s3Regions","gcsRegions","azRegions","getRegions","React","setValue","Autocomplete","padding","borderColor","borderWidth","freeSolo","selectOnFocus","handleHomeEndKeys","event","newValue","newVal","inputValue","onInputChange","getOptionLabel","option","options","filterOptions","opts","filterText","toLowerCase","filter","opt","renderOption","props","Box","borderBottom","cursor","renderInput","params","TextField","fullWidth","inputStyles","makeStyles","inputFieldStyles","flexGrow","position","minWidth","overlayAction","right","top","maxHeight","index","overlayId","overlayIcon","overlayObject","extraInputProps","noLabelMinWidth","inputClasses","clsx","inputBoxContainer","noMinWidthLabel","disableTouchRipple","setErrorSnackMessage","modalBasic","settingsCommon","formFieldStyles","lambdaNotifTitle","fontFamily","fileInputFieldCss","fileTextBoxContainer","flex","fileReselectCss","match","history","saving","setSaving","setName","endpoint","setEndpoint","bucket","setBucket","prefix","setPrefix","region","setRegion","storageClass","setStorageClass","accessKey","setAccessKey","secretKey","setSecretKey","creds","setCreds","encodedCreds","setEncodedCreds","accountName","setAccountName","accountKey","setAccountKey","titleSelection","setTitleSelection","isFormValid","setIsFormValid","nameInputError","setNameInputError","validName","useCallback","test","useEffect","request","fields","tierType","s3","accesskey","secretkey","storageclass","gcs","azure","accountname","accountkey","payload","api","then","push","IAM_PAGES","catch","err","valid","targetElement","tierTypes","serviceName","PageHeader","BackLink","PageLayout","noValidate","onSubmit","preventDefault","marginBottom","targetTitle","gridTemplateColumns","gridAutoFlow","gridRowGap","gridColumnGap","InputBoxWrapper","placeholder","toUpperCase","s3ServiceName","minioServiceName","gcsServiceName","FileSelector","encodedValue","azureServiceName","settingsButtonContainer","Button","logoXs","errorBlock","withBreak","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4335.bce36690.chunk.js","mappings":"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hC,MAAO,oBACPgC,MAAO,iBAET,CACEhC,MAAO,UACPgC,MAAO,UAET,CACEhC,MAAO,kBACPgC,MAAO,eAET,CACEhC,MAAO,YACPgC,MAAO,WAET,CACEhC,MAAO,oBACPgC,MAAO,gBAET,CACEhC,MAAO,iBACPgC,MAAO,eAET,CACEhC,MAAO,SACPgC,MAAO,UAET,CACEhC,MAAO,SACPgC,MAAO,UAET,CACEhC,MAAO,iBACPgC,MAAO,iBAET,CACEhC,MAAO,eACPgC,MAAO,eAET,CACEhC,MAAO,UACPgC,MAAO,WAET,CACEhC,MAAO,gBACPgC,MAAO,gBAET,CACEhC,MAAO,uBACPgC,MAAO,sBAET,CACEhC,MAAO,SACPgC,MAAO,UAET,CACEhC,MAAO,QACPgC,MAAO,SAET,CACEhC,MAAO,QACPgC,MAAO,SAET,CACEhC,MAAO,aACPgC,MAAO,aAET,CACEhC,MAAO,aACPgC,MAAO,aAET,CACEhC,MAAO,oBACPgC,MAAO,mBAET,CACEhC,MAAO,iBACPgC,MAAO,gBAET,CACEhC,MAAO,QACPgC,MAAO,SAET,CACEhC,MAAO,gBACPgC,MAAO,gBAET,CACEhC,MAAO,cACPgC,MAAO,cAET,CACEhC,MAAO,mBACPgC,MAAO,kBAET,CACEhC,MAAO,2BACPgC,MAAO,uBAET,CACEhC,MAAO,eACPgC,MAAO,eAET,CACEhC,MAAO,SACPgC,MAAO,UAET,CACEhC,MAAO,cACPgC,MAAO,cAET,CACEhC,MAAO,cACPgC,MAAO,cAET,CACEhC,MAAO,eACPgC,MAAO,eAET,CACEhC,MAAO,qBACPgC,MAAO,oBAET,CACEhC,MAAO,oBACPgC,MAAO,mBAET,CACEhC,MAAO,mBACPgC,MAAO,kBAET,CACEhC,MAAO,2BACPgC,MAAO,uBAET,CACEhC,MAAO,cACPgC,MAAO,cAET,CACEhC,MAAO,iBACPgC,MAAO,iBAET,CACEhC,MAAO,yBACPgC,MAAO,sBAET,CACEhC,MAAO,iBACPgC,MAAO,iBAET,CACEhC,MAAO,cACPgC,MAAO,eAET,CACEhC,MAAO,oBACPgC,MAAO,oBAET,CACEhC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","sources":["common/BackLink.tsx","screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Configurations/TiersConfiguration/s3-regions.tsx","screens/Console/Configurations/TiersConfiguration/gcs-regions.ts","screens/Console/Configurations/TiersConfiguration/azure-regions.ts","screens/Console/Configurations/TiersConfiguration/RegionSelect.tsx","screens/Console/Configurations/TiersConfiguration/RegionSelectWrapper.tsx","screens/Console/Configurations/TiersConfiguration/AddTierConfiguration.tsx","screens/Console/Configurations/TiersConfiguration/utils.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/AttachFile.js","../node_modules/@mui/icons-material/Cancel.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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n
    \n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
    \n ) : (\n
    \n
    {value}
    \n {\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
    \n )}\n \n
    \n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { RegionEntry } from \"./types\";\n\nconst s3Regions: RegionEntry[] = [\n { label: \"US East (Ohio)\", value: \"us-east-2\" },\n { label: \"US East (N. Virginia)\", value: \"us-east-1\" },\n { label: \"US West (N. California)\", value: \"us-west-1\" },\n { label: \"US West (Oregon)\", value: \"us-west-2\" },\n { label: \"Africa (Cape Town)\", value: \"af-south-1\" },\n { label: \"Asia Pacific (Hong Kong)***\", value: \"ap-east-1\" },\n { label: \"Asia Pacific (Jakarta)\", value: \"ap-southeast-3\" },\n { label: \"Asia Pacific (Mumbai)\", value: \"ap-south-1\" },\n { label: \"Asia Pacific (Osaka)\", value: \"ap-northeast-3\" },\n { label: \"Asia Pacific (Seoul)\", value: \"ap-northeast-2\" },\n { label: \"Asia Pacific (Singapore)\", value: \"ap-southeast-1\" },\n { label: \"Asia Pacific (Sydney)\", value: \"ap-southeast-2\" },\n { label: \"Asia Pacific (Tokyo)\", value: \"ap-northeast-1\" },\n { label: \"Canada (Central)\", value: \"ca-central-1\" },\n { label: \"China (Beijing)\", value: \"cn-north-1\" },\n { label: \"China (Ningxia)\", value: \"cn-northwest-1\" },\n { label: \"Europe (Frankfurt)\", value: \"eu-central-1\" },\n { label: \"Europe (Ireland)\", value: \"eu-west-1\" },\n { label: \"Europe (London)\", value: \"eu-west-2\" },\n { label: \"Europe (Milan)\", value: \"eu-south-1\" },\n { label: \"Europe (Paris)\", value: \"eu-west-3\" },\n { label: \"Europe (Stockholm)\", value: \"eu-north-1\" },\n { label: \"South America (São Paulo)\", value: \"sa-east-1\" },\n { label: \"Middle East (Bahrain)\", value: \"me-south-1\" },\n { label: \"AWS GovCloud (US-East)\", value: \"us-gov-east-1\" },\n { label: \"AWS GovCloud (US-West)\", value: \"us-gov-west-1\" },\n];\n\nexport default s3Regions;\n","import { RegionEntry } from \"./types\";\n\nconst gcsRegions: RegionEntry[] = [\n { label: \"Montréal\", value: \"NORTHAMERICA-NORTHEAST1\" },\n { label: \"Toronto\", value: \"NORTHAMERICA-NORTHEAST2\" },\n { label: \"Iowa\", value: \"US-CENTRAL1\" },\n { label: \"South Carolina\", value: \"US-EAST1\" },\n { label: \"Northern Virginia\", value: \"US-EAST4\" },\n { label: \"Oregon\", value: \"US-WEST1\" },\n { label: \"Los Angeles\", value: \"US-WEST2\" },\n { label: \"Salt Lake City\", value: \"US-WEST3\" },\n { label: \"Las Vegas\", value: \"US-WEST4\" },\n { label: \"São Paulo\", value: \"SOUTHAMERICA-EAST1\" },\n { label: \"Santiago\", value: \"SOUTHAMERICA-WEST1\" },\n { label: \"Warsaw\", value: \"EUROPE-CENTRAL2\" },\n { label: \"Finland\", value: \"EUROPE-NORTH1\" },\n { label: \"Belgium\", value: \"EUROPE-WEST1\" },\n { label: \"London\", value: \"EUROPE-WEST2\" },\n { label: \"Frankfurt\", value: \"EUROPE-WEST3\" },\n { label: \"Netherlands\", value: \"EUROPE-WEST4\" },\n { label: \"Zürich\", value: \"EUROPE-WEST6\" },\n { label: \"Taiwan\", value: \"ASIA-EAST1\" },\n { label: \"Hong Kong\", value: \"ASIA-EAST2\" },\n { label: \"Tokyo\", value: \"ASIA-NORTHEAST1\" },\n { label: \"Osaka\", value: \"ASIA-NORTHEAST2\" },\n { label: \"Seoul\", value: \"ASIA-NORTHEAST3\" },\n { label: \"Mumbai\", value: \"ASIA-SOUTH1\" },\n { label: \"Delhi\", value: \"ASIA-SOUTH2\" },\n { label: \"Singapore\", value: \"ASIA-SOUTHEAST1\" },\n { label: \"Jakarta\", value: \"ASIA-SOUTHEAST2\" },\n { label: \"Sydney\", value: \"AUSTRALIA-SOUTHEAST1\" },\n { label: \"Melbourne\", value: \"AUSTRALIA-SOUTHEAST2\" },\n];\n\nexport default gcsRegions;\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 { RegionEntry } from \"./types\";\n\nconst azureRegions: RegionEntry[] = [\n {\n label: \"Asia\",\n value: \"asia\",\n },\n {\n label: \"Asia Pacific\",\n value: \"asiapacific\",\n },\n {\n label: \"Australia\",\n value: \"australia\",\n },\n {\n label: \"Australia Central\",\n value: \"australiacentral\",\n },\n {\n label: \"Australia Central 2\",\n value: \"australiacentral2\",\n },\n {\n label: \"Australia East\",\n value: \"australiaeast\",\n },\n {\n label: \"Australia Southeast\",\n value: \"australiasoutheast\",\n },\n {\n label: \"Brazil\",\n value: \"brazil\",\n },\n {\n label: \"Brazil South\",\n value: \"brazilsouth\",\n },\n {\n label: \"Brazil Southeast\",\n value: \"brazilsoutheast\",\n },\n {\n label: \"Canada\",\n value: \"canada\",\n },\n {\n label: \"Canada Central\",\n value: \"canadacentral\",\n },\n {\n label: \"Canada East\",\n value: \"canadaeast\",\n },\n {\n label: \"Central India\",\n value: \"centralindia\",\n },\n {\n label: \"Central US\",\n value: \"centralus\",\n },\n {\n label: \"Central US (Stage)\",\n value: \"centralusstage\",\n },\n {\n label: \"Central US EUAP\",\n value: \"centraluseuap\",\n },\n {\n label: \"East Asia\",\n value: \"eastasia\",\n },\n {\n label: \"East Asia (Stage)\",\n value: \"eastasiastage\",\n },\n {\n label: \"East US\",\n value: \"eastus\",\n },\n {\n label: \"East US (Stage)\",\n value: \"eastusstage\",\n },\n {\n label: \"East US 2\",\n value: \"eastus2\",\n },\n {\n label: \"East US 2 (Stage)\",\n value: \"eastus2stage\",\n },\n {\n label: \"East US 2 EUAP\",\n value: \"eastus2euap\",\n },\n {\n label: \"Europe\",\n value: \"europe\",\n },\n {\n label: \"France\",\n value: \"france\",\n },\n {\n label: \"France Central\",\n value: \"francecentral\",\n },\n {\n label: \"France South\",\n value: \"francesouth\",\n },\n {\n label: \"Germany\",\n value: \"germany\",\n },\n {\n label: \"Germany North\",\n value: \"germanynorth\",\n },\n {\n label: \"Germany West Central\",\n value: \"germanywestcentral\",\n },\n {\n label: \"Global\",\n value: \"global\",\n },\n {\n label: \"India\",\n value: \"india\",\n },\n {\n label: \"Japan\",\n value: \"japan\",\n },\n {\n label: \"Japan East\",\n value: \"japaneast\",\n },\n {\n label: \"Japan West\",\n value: \"japanwest\",\n },\n {\n label: \"Jio India Central\",\n value: \"jioindiacentral\",\n },\n {\n label: \"Jio India West\",\n value: \"jioindiawest\",\n },\n {\n label: \"Korea\",\n value: \"korea\",\n },\n {\n label: \"Korea Central\",\n value: \"koreacentral\",\n },\n {\n label: \"Korea South\",\n value: \"koreasouth\",\n },\n {\n label: \"North Central US\",\n value: \"northcentralus\",\n },\n {\n label: \"North Central US (Stage)\",\n value: \"northcentralusstage\",\n },\n {\n label: \"North Europe\",\n value: \"northeurope\",\n },\n {\n label: \"Norway\",\n value: \"norway\",\n },\n {\n label: \"Norway East\",\n value: \"norwayeast\",\n },\n {\n label: \"Norway West\",\n value: \"norwaywest\",\n },\n {\n label: \"South Africa\",\n value: \"southafrica\",\n },\n {\n label: \"South Africa North\",\n value: \"southafricanorth\",\n },\n {\n label: \"South Africa West\",\n value: \"southafricawest\",\n },\n {\n label: \"South Central US\",\n value: \"southcentralus\",\n },\n {\n label: \"South Central US (Stage)\",\n value: \"southcentralusstage\",\n },\n {\n label: \"South India\",\n value: \"southindia\",\n },\n {\n label: \"Southeast Asia\",\n value: \"southeastasia\",\n },\n {\n label: \"Southeast Asia (Stage)\",\n value: \"southeastasiastage\",\n },\n {\n label: \"Sweden Central\",\n value: \"swedencentral\",\n },\n {\n label: \"Switzerland\",\n value: \"switzerland\",\n },\n {\n label: \"Switzerland North\",\n value: \"switzerlandnorth\",\n },\n {\n label: \"Switzerland West\",\n value: \"switzerlandwest\",\n },\n {\n label: \"UAE Central\",\n value: \"uaecentral\",\n },\n {\n label: \"UAE North\",\n value: \"uaenorth\",\n },\n {\n label: \"UK South\",\n value: \"uksouth\",\n },\n {\n label: \"UK West\",\n value: \"ukwest\",\n },\n {\n label: \"United Arab Emirates\",\n value: \"uae\",\n },\n {\n label: \"United Kingdom\",\n value: \"uk\",\n },\n {\n label: \"United States\",\n value: \"unitedstates\",\n },\n {\n label: \"United States EUAP\",\n value: \"unitedstateseuap\",\n },\n {\n label: \"West Central US\",\n value: \"westcentralus\",\n },\n {\n label: \"West Europe\",\n value: \"westeurope\",\n },\n {\n label: \"West India\",\n value: \"westindia\",\n },\n {\n label: \"West US\",\n value: \"westus\",\n },\n {\n label: \"West US (Stage)\",\n value: \"westusstage\",\n },\n {\n label: \"West US 2\",\n value: \"westus2\",\n },\n {\n label: \"West US 2 (Stage)\",\n value: \"westus2stage\",\n },\n {\n label: \"West US 3\",\n value: \"westus3\",\n },\n];\nexport default azureRegions;\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\nimport { Autocomplete, Box, TextField } from \"@mui/material\";\n\nimport s3Regions from \"./s3-regions\";\nimport gcsRegions from \"./gcs-regions\";\nimport azRegions from \"./azure-regions\";\n\nconst getRegions = (type: string): any => {\n if (type === \"s3\") {\n return s3Regions;\n }\n if (type === \"gcs\") {\n return gcsRegions;\n }\n if (type === \"azure\") {\n return azRegions;\n }\n\n return [];\n};\n\nconst RegionSelect = ({\n type,\n onChange,\n inputProps,\n}: {\n type: \"minio\" | \"s3\" | \"gcs\" | \"azure\" | \"unsupported\";\n onChange: (obj: any) => void;\n inputProps?: any;\n}) => {\n const regionList = getRegions(type);\n const [value, setValue] = React.useState(\"\");\n\n return (\n {\n let newVal: any = newValue;\n\n if (typeof newValue === \"string\") {\n newVal = {\n label: newValue,\n };\n } else if (newValue && newValue.inputValue) {\n // Create a new value from the user input\n newVal = {\n label: newValue.inputValue,\n };\n } else {\n newVal = newValue;\n }\n setValue(newVal);\n onChange(newVal?.value);\n }}\n value={value}\n onInputChange={(e: any) => {\n const { target: { value = \"\" } = {} } = e || {};\n onChange(value);\n }}\n getOptionLabel={(option) => {\n // Value selected with enter, right from the input\n if (typeof option === \"string\") {\n return option;\n }\n // Add \"xxx\" option created dynamically\n if (option.inputValue) {\n return option.inputValue;\n }\n // Regular option\n return option.value;\n }}\n options={regionList}\n filterOptions={(opts: any[], state: any) => {\n const filterText = state.inputValue.toLowerCase();\n\n return opts.filter((opt) =>\n `${opt.label.toLowerCase()}${opt.value.toLowerCase()}`.includes(\n filterText\n )\n );\n }}\n renderOption={(props: any, opt: any) => {\n return (\n
  • \n \n {opt.value}\n {opt.label}\n \n
  • \n );\n }}\n renderInput={(params) => (\n \n )}\n />\n );\n};\n\nexport default RegionSelect;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { Grid, IconButton, InputLabel, Tooltip } from \"@mui/material\";\nimport { InputProps as StandardInputProps } from \"@mui/material/Input\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n inputFieldStyles,\n tooltipHelper,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport HelpIcon from \"../../../../icons/HelpIcon\";\nimport clsx from \"clsx\";\nimport RegionSelect from \"./RegionSelect\";\n\ninterface RegionSelectBoxProps {\n label: string;\n classes?: any;\n onChange: (value: string) => void;\n onKeyPress?: (e: any) => void;\n value?: string | boolean;\n id: string;\n name: string;\n disabled?: boolean;\n type: \"minio\" | \"s3\" | \"gcs\" | \"azure\";\n tooltip?: string;\n index?: number;\n error?: string;\n required?: boolean;\n placeholder?: string;\n overlayId?: string;\n overlayIcon?: any;\n overlayAction?: () => void;\n overlayObject?: any;\n extraInputProps?: StandardInputProps[\"inputProps\"];\n noLabelMinWidth?: boolean;\n pattern?: string;\n autoFocus?: boolean;\n className?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n textBoxContainer: {\n flexGrow: 1,\n position: \"relative\",\n minWidth: 160,\n },\n overlayAction: {\n position: \"absolute\",\n right: 5,\n top: 6,\n \"& svg\": {\n maxWidth: 15,\n maxHeight: 15,\n },\n \"&.withLabel\": {\n top: 5,\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst inputStyles = makeStyles((theme: Theme) =>\n createStyles({\n ...inputFieldStyles,\n })\n);\n\nconst RegionSelectWrapper = ({\n label,\n onChange,\n id,\n name,\n type,\n tooltip = \"\",\n index = 0,\n error = \"\",\n required = false,\n overlayId,\n overlayIcon = null,\n overlayObject = null,\n extraInputProps = {},\n overlayAction,\n noLabelMinWidth = false,\n classes,\n className = \"\",\n}: RegionSelectBoxProps) => {\n const inputClasses = inputStyles();\n\n let inputProps: any = {\n \"data-index\": index,\n ...extraInputProps,\n name: name,\n id: id,\n classes: inputClasses,\n };\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n \n )}\n\n
    \n \n {overlayIcon && (\n \n {\n overlayAction();\n }\n : () => null\n }\n id={overlayId}\n size={\"small\"}\n disableFocusRipple={false}\n disableRipple={false}\n disableTouchRipple={false}\n >\n {overlayIcon}\n \n
    \n )}\n {overlayObject && (\n \n {overlayObject}\n \n )}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(RegionSelectWrapper);\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 { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, Button } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport {\n fileInputStyles,\n formFieldStyles,\n modalBasic,\n settingsCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FileSelector from \"../../Common/FormComponents/FileSelector/FileSelector\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport {\n azureServiceName,\n gcsServiceName,\n minioServiceName,\n s3ServiceName,\n tierTypes,\n} from \"./utils\";\nimport BackLink from \"../../../../common/BackLink\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\n\nimport RegionSelectWrapper from \"./RegionSelectWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n ...settingsCommon,\n ...formFieldStyles,\n lambdaNotifTitle: {\n color: \"#07193E\",\n fontSize: 16,\n fontFamily: \"Lato,sans-serif\",\n paddingLeft: 18,\n },\n fileInputFieldCss: {\n margin: \"0\",\n },\n fileTextBoxContainer: {\n maxWidth: \" 100%\",\n flex: 1,\n },\n fileReselectCss: {\n maxWidth: \" 100%\",\n flex: 1,\n },\n ...fileInputStyles,\n });\n\ninterface IAddNotificationEndpointProps {\n setErrorSnackMessage: typeof setErrorSnackMessage;\n classes: any;\n match: any;\n history: any;\n}\n\nconst AddTierConfiguration = ({\n classes,\n setErrorSnackMessage,\n match,\n history,\n}: IAddNotificationEndpointProps) => {\n //Local States\n const [saving, setSaving] = useState(false);\n\n // Form Items\n const [name, setName] = useState(\"\");\n const [endpoint, setEndpoint] = useState(\"\");\n const [bucket, setBucket] = useState(\"\");\n const [prefix, setPrefix] = useState(\"\");\n const [region, setRegion] = useState(\"\");\n const [storageClass, setStorageClass] = useState(\"\");\n\n const [accessKey, setAccessKey] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n\n const [creds, setCreds] = useState(\"\");\n const [encodedCreds, setEncodedCreds] = useState(\"\");\n\n const [accountName, setAccountName] = useState(\"\");\n const [accountKey, setAccountKey] = useState(\"\");\n\n const [titleSelection, setTitleSelection] = useState(\"\");\n\n const type = get(match, \"params.service\", \"s3\");\n\n // Validations\n const [isFormValid, setIsFormValid] = useState(true);\n const [nameInputError, setNameInputError] = useState(\"\");\n\n // Extra validation functions\n\n const validName = useCallback(() => {\n const patternAgainst = /^[A-Z0-9-_]+$/; // Only allow uppercase, numbers, dashes and underscores\n if (patternAgainst.test(name)) {\n setNameInputError(\"\");\n return true;\n }\n\n setNameInputError(\n \"Please verify that string is uppercase only and contains valid characters (numbers, dashes & underscores).\"\n );\n return false;\n }, [name]);\n\n //Effects\n\n useEffect(() => {\n if (saving) {\n let request = {};\n let fields = {\n name,\n endpoint,\n bucket,\n prefix,\n region,\n };\n\n let tierType = type;\n\n if (type === \"minio\") {\n tierType = \"s3\";\n }\n\n switch (type) {\n case \"minio\":\n case \"s3\":\n request = {\n s3: {\n ...fields,\n accesskey: accessKey,\n secretkey: secretKey,\n storageclass: storageClass,\n },\n };\n break;\n case \"gcs\":\n request = {\n gcs: {\n ...fields,\n creds: encodedCreds,\n },\n };\n break;\n case \"azure\":\n request = {\n azure: {\n ...fields,\n accountname: accountName,\n accountkey: accountKey,\n },\n };\n }\n\n let payload = {\n type: tierType,\n ...request,\n };\n\n api\n .invoke(\"POST\", `/api/v1/admin/tiers`, payload)\n .then(() => {\n setSaving(false);\n\n history.push(IAM_PAGES.TIERS);\n })\n .catch((err: ErrorResponseHandler) => {\n setSaving(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n accessKey,\n accountKey,\n accountName,\n bucket,\n encodedCreds,\n endpoint,\n history,\n name,\n prefix,\n region,\n saving,\n secretKey,\n setErrorSnackMessage,\n storageClass,\n type,\n ]);\n\n useEffect(() => {\n let valid = true;\n if (type === \"\") {\n valid = false;\n }\n if (name === \"\" || !validName()) {\n valid = false;\n }\n if (endpoint === \"\") {\n valid = false;\n }\n if (bucket === \"\") {\n valid = false;\n }\n if (prefix === \"\") {\n valid = false;\n }\n if (region === \"\" && type !== \"minio\") {\n valid = false;\n }\n\n if (type === \"s3\" || type === \"minio\") {\n if (accessKey === \"\") {\n valid = false;\n }\n if (secretKey === \"\") {\n valid = false;\n }\n }\n\n if (type === \"gcs\") {\n if (encodedCreds === \"\") {\n valid = false;\n }\n }\n\n if (type === \"azure\") {\n if (accountName === \"\") {\n valid = false;\n }\n if (accountKey === \"\") {\n valid = false;\n }\n }\n\n setIsFormValid(valid);\n }, [\n accessKey,\n accountKey,\n accountName,\n bucket,\n encodedCreds,\n endpoint,\n isFormValid,\n name,\n prefix,\n region,\n secretKey,\n storageClass,\n type,\n validName,\n ]);\n\n useEffect(() => {\n switch (type) {\n case \"gcs\":\n setEndpoint(\"https://storage.googleapis.com/\");\n setTitleSelection(\"Google Cloud\");\n break;\n case \"s3\":\n setEndpoint(\"https://s3.amazonaws.com\");\n setTitleSelection(\"Amazon S3\");\n break;\n case \"azure\":\n setEndpoint(\"http://blob.core.windows.net\");\n setTitleSelection(\"Azure\");\n break;\n case \"minio\":\n setEndpoint(\"\");\n setTitleSelection(\"MinIO\");\n }\n }, [type]);\n\n //Fetch Actions\n const submitForm = (event: React.FormEvent) => {\n event.preventDefault();\n setSaving(true);\n };\n\n // Input actions\n const updateTierName = (e: React.ChangeEvent) => {\n setName(e.target.value.toUpperCase());\n };\n\n const targetElement = tierTypes.find((item) => item.serviceName === type);\n\n return (\n \n \n \n \n }\n actions={}\n />\n\n \n \n
    \n {type !== \"\" && targetElement ? (\n \n {targetElement.logo ? (\n \n {targetElement.logo}\n \n ) : null}\n\n
    \n \n {titleSelection ? titleSelection : \"\"} - Add Tier\n Configuration\n \n
    \n \n ) : null}\n\n \n {type !== \"\" && (\n \n \n ) => {\n setEndpoint(e.target.value);\n }}\n required\n />\n {(type === s3ServiceName || type === minioServiceName) && (\n \n ) => {\n setAccessKey(e.target.value);\n }}\n required\n />\n ) => {\n setSecretKey(e.target.value);\n }}\n required\n />\n \n )}\n {type === gcsServiceName && (\n {\n setEncodedCreds(encodedValue);\n setCreds(fileName);\n }}\n value={creds}\n required\n />\n )}\n {type === azureServiceName && (\n \n ) => {\n setAccountName(e.target.value);\n }}\n required\n />\n ) => {\n setAccountKey(e.target.value);\n }}\n required\n />\n \n )}\n ) => {\n setBucket(e.target.value);\n }}\n required\n />\n ) => {\n setPrefix(e.target.value);\n }}\n required\n />\n {\n setRegion(value);\n }}\n required={type !== \"minio\"}\n label={\"Region\"}\n id=\"region\"\n name=\"region\"\n type={type}\n />\n {type === s3ServiceName ||\n (type === minioServiceName && (\n ) => {\n setStorageClass(e.target.value);\n }}\n />\n ))}\n \n )}\n \n \n \n Save Tier Configuration\n \n \n \n \n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(AddTierConfiguration));\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 GoogleTierIcon,\n MinIOTierIcon,\n MinIOTierIconXs,\n S3TierIcon,\n GoogleTierIconXs,\n S3TierIconXs,\n AzureTierIconXs,\n} from \"../../../../icons\";\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","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
    }\n \n {errorMessage}\n \n
    \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"\n}), 'AttachFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","fieldBasic","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","marginTop","fileInputField","margin","flexFlow","fileInputStyles","inputLabel","textBoxContainer","border","onChange","id","name","disabled","tooltip","required","error","accept","value","useState","showFileSelector","setShowSelector","Grid","item","xs","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","title","placement","HelpIcon","type","e","fileName","get","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","length","fileProcess","data","IconButton","component","disableRipple","disableFocusRipple","size","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","pageContentStyles","children","contentSpacer","container","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","backgroundColor","left","boxShadow","justifyContent","labelStyle","marginLeft","rightMenu","textAlign","logo","fill","main","middleComponent","actions","includes","Fragment","direction","sm","md","variant","inputProps","regionList","s3Regions","gcsRegions","azRegions","getRegions","React","setValue","Autocomplete","padding","borderColor","borderWidth","freeSolo","selectOnFocus","handleHomeEndKeys","event","newValue","newVal","inputValue","onInputChange","getOptionLabel","option","options","filterOptions","opts","filterText","toLowerCase","filter","opt","renderOption","props","Box","borderBottom","cursor","renderInput","params","TextField","fullWidth","inputStyles","makeStyles","inputFieldStyles","flexGrow","position","minWidth","overlayAction","right","top","maxHeight","index","overlayId","overlayIcon","overlayObject","extraInputProps","noLabelMinWidth","inputClasses","clsx","inputBoxContainer","noMinWidthLabel","disableTouchRipple","setErrorSnackMessage","modalBasic","settingsCommon","formFieldStyles","lambdaNotifTitle","fontFamily","fileInputFieldCss","fileTextBoxContainer","flex","fileReselectCss","match","history","saving","setSaving","setName","endpoint","setEndpoint","bucket","setBucket","prefix","setPrefix","region","setRegion","storageClass","setStorageClass","accessKey","setAccessKey","secretKey","setSecretKey","creds","setCreds","encodedCreds","setEncodedCreds","accountName","setAccountName","accountKey","setAccountKey","titleSelection","setTitleSelection","isFormValid","setIsFormValid","nameInputError","setNameInputError","validName","useCallback","test","useEffect","request","fields","tierType","s3","accesskey","secretkey","storageclass","gcs","azure","accountname","accountkey","payload","api","then","push","IAM_PAGES","catch","err","valid","targetElement","tierTypes","serviceName","PageHeader","BackLink","PageLayout","noValidate","onSubmit","preventDefault","marginBottom","targetTitle","gridTemplateColumns","gridAutoFlow","gridRowGap","gridColumnGap","InputBoxWrapper","placeholder","toUpperCase","s3ServiceName","minioServiceName","gcsServiceName","FileSelector","encodedValue","azureServiceName","settingsButtonContainer","Button","logoXs","errorBlock","withBreak","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4394.bcfbdcbb.chunk.js b/portal-ui/build/static/js/4394.bcfbdcbb.chunk.js new file mode 100644 index 000000000..b288eb263 --- /dev/null +++ b/portal-ui/build/static/js/4394.bcfbdcbb.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4394],{23804:function(e,t,o){o(72791);var n=o(11135),r=o(25787),i=o(61889),a=o(80184);t.Z=(0,r.Z)((function(e){return(0,n.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var t=e.classes,o=e.iconComponent,n=e.title,r=e.help;return(0,a.jsx)("div",{className:t.root,children:(0,a.jsxs)(i.ZP,{container:!0,children:[(0,a.jsxs)(i.ZP,{item:!0,xs:12,className:t.leftItems,children:[o,n]}),(0,a.jsx)(i.ZP,{item:!0,xs:12,className:t.helpText,children:r})]})})}))},40603:function(e,t,o){var n=o(1413),r=o(45987),i=(o(72791),o(85531)),a=o(72455),l=o(80184),s=["onClick","text","disabled","tooltip","icon","className"],c=(0,a.Z)((function(e){return{root:{padding:"7px",color:function(t){return function(t){var o=t.variant,n=t.color,r=e.palette.primary.main;return"primary"===n&&"contained"===o?r=e.palette.primary.contrastText:"primary"===n&&"outlined"===o?r=e.palette.primary.main:"secondary"===n&&(r=e.palette.secondary.main),r}(t)},borderColor:function(t){return"secondary"===t.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));t.Z=function(e){var t=c(e),o=e.onClick,a=e.text,d=void 0===a?"":a,p=e.disabled,u=void 0!==p&&p,m=e.tooltip,h=e.icon,f=void 0===h?null:h,g=e.className,y=void 0===g?"":g,b=(0,r.Z)(e,s);return(0,l.jsxs)(i.Z,(0,n.Z)((0,n.Z)({className:y,classes:t,tooltip:m||d,variant:"outlined",onClick:o,disabled:u,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},b),{},{children:[(0,l.jsx)("span",{children:d})," ",f]}))}},81806:function(e,t,o){var n=o(1413),r=o(45987),i=(o(72791),o(11135)),a=o(25787),l=o(80184),s=["classes","children"];t.Z=(0,a.Z)((function(e){return(0,i.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var t=e.classes,o=e.children,i=(0,r.Z)(e,s);return(0,l.jsx)("button",(0,n.Z)((0,n.Z)({},i),{},{className:t.root,children:o}))}))},85531:function(e,t,o){var n=o(1413),r=o(4942),i=o(45987),a=(o(72791),o(11135)),l=o(25787),s=o(13400),c=o(20068),d=o(28182),p=o(80184),u=["classes","children","variant","tooltip"];t.Z=(0,l.Z)((function(e){return(0,a.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var t=e.classes,o=e.children,a=e.variant,l=void 0===a?"outlined":a,m=e.tooltip,h=(0,i.Z)(e,u),f=(0,p.jsx)(s.Z,(0,n.Z)((0,n.Z)({},h),{},{className:(0,d.Z)(t.root,(0,r.Z)({},t.contained,"contained"===l)),children:o}));return m&&""!==m?(0,p.jsx)(c.Z,{title:m,children:(0,p.jsx)("span",{children:f})}):f}))},74794:function(e,t,o){var n=o(1413),r=(o(72791),o(61889)),i=o(11135),a=o(25787),l=o(23814),s=o(80184);t.Z=(0,a.Z)((function(e){return(0,i.Z)((0,n.Z)({},l.Bw))}))((function(e){var t=e.classes,o=e.className,n=void 0===o?"":o,i=e.children;return(0,s.jsx)("div",{className:t.contentSpacer,children:(0,s.jsx)(r.ZP,{container:!0,children:(0,s.jsx)(r.ZP,{item:!0,xs:12,className:n,children:i})})})}))},59114:function(e,t,o){var n=o(4942),r=o(1413),i=(o(72791),o(63466)),a=o(74900),l=o(27391),s=o(25787),c=o(11135),d=o(23814),p=o(80184);t.Z=(0,s.Z)((function(e){return(0,c.Z)({searchField:(0,r.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var t=e.placeholder,o=void 0===t?"":t,r=e.classes,s=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,u=e.overrideClass,m=e.value,h=(0,n.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,p.jsx)(i.Z,{position:d,className:r.adornment,children:(0,p.jsx)(a.Z,{})}));return(0,p.jsx)(l.Z,{placeholder:o,className:u||r.searchField,id:"search-resource",label:"",InputProps:h,onChange:function(e){s(e.target.value)},variant:"standard",value:m})}))},4394:function(e,t,o){o.r(t);var n=o(70885),r=o(1413),i=o(72791),a=o(60364),l=o(11135),s=o(25787),c=o(40986),d=o(82460),p=o(61889),u=o(37267),m=o(15514),h=o(13048),f=o(92983),g=o(42649),y=o(23814),b=o(81207),v=o(28789),S=o(62666),T=o(23804),x=o(81806),k=o(74794),Z=o(59114),E=o(40603),A=o(56087),_=o(80184),j={setErrorSnackMessage:g.Ih},N=(0,a.$j)(null,j);t.default=(0,s.Z)((function(e){return(0,l.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},y.OR),y.Je),(0,y.Bz)(e.spacing(4))),{},{twHeight:{minHeight:400},tableBlock:(0,r.Z)({},y.VX.tableBlock),rightActionItems:{display:"flex",alignItems:"center","& button":{whiteSpace:"nowrap"}},searchField:(0,r.Z)((0,r.Z)({},y.qg.searchField),{},{maxWidth:380})}))}))(N((function(e){var t=e.classes,o=e.setErrorSnackMessage,r=(0,i.useState)([]),a=(0,n.Z)(r,2),l=a[0],s=a[1],g=(0,i.useState)(""),y=(0,n.Z)(g,2),j=y[0],N=y[1],C=(0,i.useState)(!1),L=(0,n.Z)(C,2),w=L[0],q=L[1];(0,i.useEffect)((function(){if(w){b.Z.invoke("GET","/api/v1/admin/notification_endpoints").then((function(e){var t=[];null!==e.notification_endpoints&&(t=e.notification_endpoints),s((0,m.fk)(t)),q(!1)})).catch((function(e){o(e),q(!1)}))}}),[w,o]),(0,i.useEffect)((function(){q(!0)}),[]);var I=l.filter((function(e){return""===j||e.service_name.indexOf(j)>=0}));return(0,_.jsx)(i.Fragment,{children:(0,_.jsxs)(k.Z,{children:[(0,_.jsxs)(p.ZP,{item:!0,xs:12,className:t.actionsTray,children:[(0,_.jsx)(Z.Z,{placeholder:"Search target",onChange:N,overrideClass:t.searchField,value:j}),(0,_.jsxs)("div",{className:t.rightActionItems,children:[(0,_.jsx)(E.Z,{tooltip:"Refresh List",text:"Refresh",variant:"outlined",color:"primary",icon:(0,_.jsx)(v.default,{}),onClick:function(){q(!0)}}),(0,_.jsx)(E.Z,{tooltip:"Add Notification Target",text:" Add Notification Target",variant:"contained",color:"primary",icon:(0,_.jsx)(h.dt,{}),onClick:function(){S.Z.push(A.gA.NOTIFICATIONS_ENDPOINTS_ADD)}})]})]}),w&&(0,_.jsx)(c.Z,{}),!w&&(0,_.jsxs)(i.Fragment,{children:[l.length>0&&(0,_.jsxs)(i.Fragment,{children:[(0,_.jsx)(p.ZP,{item:!0,xs:12,className:t.tableBlock,children:(0,_.jsx)(f.Z,{itemActions:[],columns:[{label:"Status",elementKey:"status",renderFunction:function(e){return(0,_.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,_.jsx)(u.Z,{style:"Offline"===e?{color:d.Z[500]}:{}}),e]})},width:150},{label:"Service",elementKey:"service_name"}],isLoading:w,records:I,entityName:"Notification Endpoints",idField:"service_name",customPaperHeight:t.twHeight})}),(0,_.jsx)(p.ZP,{item:!0,xs:12,children:(0,_.jsx)(T.Z,{title:"Notification Endpoints",iconComponent:(0,_.jsx)(h.cC,{}),help:(0,_.jsxs)(i.Fragment,{children:["MinIO bucket notifications allow administrators to send notifications to supported external services on certain object or bucket events. MinIO supports bucket and object-level S3 events similar to the Amazon S3 Event Notifications.",(0,_.jsx)("br",{}),(0,_.jsx)("br",{}),"You can learn more at our"," ",(0,_.jsx)("a",{href:"https://docs.min.io/minio/baremetal/monitoring/bucket-notifications/bucket-notifications.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})})]}),0===l.length&&(0,_.jsx)(p.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,_.jsx)(p.ZP,{item:!0,xs:8,children:(0,_.jsx)(T.Z,{title:"Notification Targets",iconComponent:(0,_.jsx)(h.cC,{}),help:(0,_.jsxs)(i.Fragment,{children:["MinIO bucket notifications allow administrators to send notifications to supported external services on certain object or bucket events. MinIO supports bucket and object-level S3 events similar to the Amazon S3 Event Notifications.",(0,_.jsx)("br",{}),(0,_.jsx)("br",{}),"To get started,"," ",(0,_.jsx)(x.Z,{onClick:function(){S.Z.push(A.gA.NOTIFICATIONS_ENDPOINTS_ADD)},children:"Add a Notification Target"}),"."]})})})})]})]})})})))},15514:function(e,t,o){o.d(t,{BR:function(){return g},DD:function(){return b},dM:function(){return a},ee:function(){return i},fk:function(){return f},oj:function(){return v}});var n,r=o(4942),i="notify_postgres",a="notify_mysql",l="notify_kafka",s="notify_amqp",c="notify_mqtt",d="notify_redis",p="notify_nats",u="notify_elasticsearch",m="notify_webhook",h="notify_nsq",f=function(e){return e.map((function(e){return{service_name:"".concat(e.service,":").concat(e.account_id),status:e.status}}))},g=[{actionTrigger:i,targetTitle:"PostgreSQL",logo:"/postgres-logo.svg"},{actionTrigger:l,targetTitle:"Kafka",logo:"/kafka-logo.svg"},{actionTrigger:s,targetTitle:"AMQP",logo:"/amqp-logo.svg"},{actionTrigger:c,targetTitle:"MQTT",logo:"/mqtt-logo.svg"},{actionTrigger:d,targetTitle:"Redis",logo:"/redis-logo.svg"},{actionTrigger:p,targetTitle:"NATS",logo:"/nats-logo.svg"},{actionTrigger:a,targetTitle:"Mysql",logo:"/mysql-logo.svg"},{actionTrigger:u,targetTitle:"Elastic Search",logo:"/elasticsearch-logo.svg"},{actionTrigger:m,targetTitle:"Webhook",logo:"/webhooks-logo.svg"},{actionTrigger:h,targetTitle:"NSQ",logo:"/nsq-logo.svg"}],y=[{name:"queue-dir",label:"Queue Directory",required:!0,tooltip:"staging dir for undelivered messages e.g. '/home/events'",type:"string",placeholder:"Enter Queue Directory"},{name:"queue-limit",label:"Queue Limit",required:!1,tooltip:"maximum limit for undelivered messages, defaults to '10000'",type:"number",placeholder:"Enter Queue Limit"},{name:"comment",label:"Comment",required:!1,type:"comment",placeholder:"Enter custom notes if any"}],b=function(e){return e.filter((function(e){return""!==e.value}))},v=(n={},(0,r.Z)(n,l,[{name:"brokers",label:"Brokers",required:!0,tooltip:"Comma separated list of Kafka broker addresses",type:"string",placeholder:"Enter Brokers"},{name:"topic",label:"Topic",tooltip:"Kafka topic used for bucket notifications",type:"string",placeholder:"Enter Topic"},{name:"sasl_username",label:"SASL Username",tooltip:"Username for SASL/PLAIN or SASL/SCRAM authentication",type:"string",placeholder:"Enter SASL Username"},{name:"sasl_password",label:"SASL Password",tooltip:"Password for SASL/PLAIN or SASL/SCRAM authentication",type:"string",placeholder:"Enter SASL Password"},{name:"sasl_mechanism",label:"SASL Mechanism",tooltip:"SASL authentication mechanism, default 'PLAIN'",type:"string"},{name:"tls_client_auth",label:"TLS Client Auth",tooltip:"Client Auth determines the Kafka server's policy for TLS client auth",type:"string",placeholder:"Enter TLS Client Auth"},{name:"sasl",label:"SASL",tooltip:"Set to 'on' to enable SASL authentication",type:"on|off"},{name:"tls",label:"TLS",tooltip:"Set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS skip verify",tooltip:'Trust server TLS without verification, defaults to "on" (verify)',type:"on|off"},{name:"client_tls_cert",label:"client TLS cert",tooltip:"Path to client certificate for mTLS auth",type:"path",placeholder:"Enter TLS Client Cert"},{name:"client_tls_key",label:"client TLS key",tooltip:"Path to client key for mTLS auth",type:"path",placeholder:"Enter TLS Client Key"},{name:"version",label:"Version",tooltip:"Specify the version of the Kafka cluster e.g '2.2.0'",type:"string",placeholder:"Enter Kafka Version"}].concat(y)),(0,r.Z)(n,s,[{name:"url",required:!0,label:"URL",tooltip:"AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672`",type:"url"},{name:"exchange",label:"Exchange",tooltip:"Name of the AMQP exchange",type:"string",placeholder:"Enter Exchange"},{name:"exchange_type",label:"Exchange Type",tooltip:"AMQP exchange type",type:"string",placeholder:"Enter Exchange Type"},{name:"routing_key",label:"Routing Key",tooltip:"Routing key for publishing",type:"string",placeholder:"Enter Routing Key"},{name:"mandatory",label:"Mandatory",tooltip:"Quietly ignore undelivered messages when set to 'off', default is 'on'",type:"on|off"},{name:"durable",label:"Durable",tooltip:"Persist queue across broker restarts when set to 'on', default is 'off'",type:"on|off"},{name:"no_wait",label:"No Wait",tooltip:"Non-blocking message delivery when set to 'on', default is 'off'",type:"on|off"},{name:"internal",label:"Internal",tooltip:"Set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges",type:"on|off"},{name:"auto_deleted",label:"Auto Deleted",tooltip:"Auto delete queue when set to 'on', when there are no consumers",type:"on|off"},{name:"delivery_mode",label:"Delivery Mode",tooltip:"Set to '1' for non-persistent or '2' for persistent queue",type:"number",placeholder:"Enter Delivery Mode"}].concat(y)),(0,r.Z)(n,d,[{name:"address",required:!0,label:"Address",tooltip:"Redis server's address. For example: `localhost:6379`",type:"address",placeholder:"Enter Address"},{name:"key",required:!0,label:"Key",tooltip:"Redis key to store/update events, key is auto-created",type:"string",placeholder:"Enter Key"},{name:"password",label:"Password",tooltip:"Redis server password",type:"string",placeholder:"Enter Password"}].concat(y)),(0,r.Z)(n,c,[{name:"broker",required:!0,label:"Broker",tooltip:"MQTT server endpoint e.g. `tcp://localhost:1883`",type:"uri",placeholder:"Enter Brokers"},{name:"topic",required:!0,label:"Topic",tooltip:"name of the MQTT topic to publish",type:"string",placeholder:"Enter Topic"},{name:"username",label:"Username",tooltip:"MQTT username",type:"string",placeholder:"Enter Username"},{name:"password",label:"Password",tooltip:"MQTT password",type:"string",placeholder:"Enter Password"},{name:"qos",label:"QOS",tooltip:"Set the quality of service priority, defaults to '0'",type:"number",placeholder:"Enter QOS"},{name:"keep_alive_interval",label:"Keep Alive Interval",tooltip:"Keep-alive interval for MQTT connections in s,m,h,d",type:"duration",placeholder:"Enter Keep Alive Internal"},{name:"reconnect_interval",label:"Reconnect Interval",tooltip:"Reconnect interval for MQTT connections in s,m,h,d",type:"duration",placeholder:"Enter Reconnect Interval"}].concat(y)),(0,r.Z)(n,p,[{name:"address",required:!0,label:"Address",tooltip:"NATS server address e.g. '0.0.0.0:4222'",type:"address",placeholder:"Enter Address"},{name:"subject",required:!0,label:"Subject",tooltip:"NATS subscription subject",type:"string",placeholder:"Enter NATS Subject"},{name:"username",label:"Username",tooltip:"NATS username",type:"string",placeholder:"Enter NATS Username"},{name:"password",label:"Password",tooltip:"NATS password",type:"string",placeholder:"Enter NATS password"},{name:"token",label:"Token",tooltip:"NATS token",type:"string",placeholder:"Enter NATS token"},{name:"tls",label:"TLS",tooltip:"Set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS Skip Verify",tooltip:'Trust server TLS without verification, defaults to "on" (verify)',type:"on|off"},{name:"ping_interval",label:"Ping Interval",tooltip:"Client ping commands interval in s,m,h,d. Disabled by default",type:"duration",placeholder:"Enter Ping Interval"},{name:"streaming",label:"Streaming",tooltip:"Set to 'on', to use streaming NATS server",type:"on|off"},{name:"streaming_async",label:"Streaming async",tooltip:"Set to 'on', to enable asynchronous publish",type:"on|off"},{name:"streaming_max_pub_acks_in_flight",label:"Streaming max publish ACKS in flight",tooltip:"Number of messages to publish without waiting for ACKs",type:"number",placeholder:"Enter Streaming in flight value"},{name:"streaming_cluster_id",label:"Streaming Cluster ID",tooltip:"Unique ID for NATS streaming cluster",type:"string",placeholder:"Enter Streaming Cluster ID"},{name:"cert_authority",label:"Cert Authority",tooltip:"Path to certificate chain of the target NATS server",type:"string",placeholder:"Enter Cert Authority"},{name:"client_cert",label:"Client Cert",tooltip:"Client cert for NATS mTLS auth",type:"string",placeholder:"Enter Client Cert"},{name:"client_key",label:"Client Key",tooltip:"Client cert key for NATS mTLS auth",type:"string",placeholder:"Enter Client Key"}].concat(y)),(0,r.Z)(n,u,[{name:"url",required:!0,label:"URL",tooltip:"Elasticsearch server's address, with optional authentication info",type:"url",placeholder:"Enter URL"},{name:"index",required:!0,label:"Index",tooltip:"Elasticsearch index to store/update events, index is auto-created",type:"string",placeholder:"Enter Index"},{name:"format",required:!0,label:"Format",tooltip:"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'",type:"enum",placeholder:"Enter Format"}].concat(y)),(0,r.Z)(n,m,[{name:"endpoint",required:!0,label:"Endpoint",tooltip:"webhook server endpoint e.g. http://localhost:8080/minio/events",type:"url",placeholder:"Enter Endpoint"},{name:"auth_token",label:"Auth Token",tooltip:"opaque string or JWT authorization token",type:"string",placeholder:"Enter auth_token"}].concat(y)),(0,r.Z)(n,h,[{name:"nsqd_address",required:!0,label:"NSQD Address",tooltip:"NSQ server address e.g. '127.0.0.1:4150'",type:"address",placeholder:"Enter nsqd_address"},{name:"topic",required:!0,label:"Topic",tooltip:"NSQ topic",type:"string",placeholder:"Enter Topic"},{name:"tls",label:"TLS",tooltip:"set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS Skip Verify",tooltip:'trust server TLS without verification, defaults to "on" (verify)',type:"on|off"}].concat(y)),n)}}]); +//# sourceMappingURL=4394.bcfbdcbb.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4394.bcfbdcbb.chunk.js.map b/portal-ui/build/static/js/4394.bcfbdcbb.chunk.js.map new file mode 100644 index 000000000..eeac363fd --- /dev/null +++ b/portal-ui/build/static/js/4394.bcfbdcbb.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4394.bcfbdcbb.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/NotificationEndpoints/ListNotificationEndpoints.tsx","screens/Console/NotificationEndpoints/utils.ts"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport { red } from \"@mui/material/colors\";\nimport Grid from \"@mui/material/Grid\";\nimport FiberManualRecordIcon from \"@mui/icons-material/FiberManualRecord\";\nimport {\n NotificationEndpointItem,\n NotificationEndpointsList,\n TransformedEndpointItem,\n} from \"./types\";\nimport { notificationTransform } from \"./utils\";\nimport { AddIcon, LambdaIcon } from \"../../../icons\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n settingsCommon,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport RefreshIcon from \"../../../icons/RefreshIcon\";\nimport history from \"../../../history\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport AButton from \"../Common/AButton/AButton\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport SearchBox from \"../Common/SearchBox\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\ninterface IListNotificationEndpoints {\n classes: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...settingsCommon,\n ...containerForHeader(theme.spacing(4)),\n twHeight: {\n minHeight: 400,\n },\n tableBlock: {\n ...tableStyles.tableBlock,\n },\n rightActionItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"& button\": {\n whiteSpace: \"nowrap\",\n },\n },\n searchField: {\n ...searchField.searchField,\n maxWidth: 380,\n },\n });\n\nconst ListNotificationEndpoints = ({\n classes,\n setErrorSnackMessage,\n}: IListNotificationEndpoints) => {\n //Local States\n const [records, setRecords] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [isLoading, setIsLoading] = useState(false);\n\n //Effects\n // load records on mount\n useEffect(() => {\n if (isLoading) {\n const fetchRecords = () => {\n api\n .invoke(\"GET\", `/api/v1/admin/notification_endpoints`)\n .then((res: NotificationEndpointsList) => {\n let resNotEndList: NotificationEndpointItem[] = [];\n if (res.notification_endpoints !== null) {\n resNotEndList = res.notification_endpoints;\n }\n setRecords(notificationTransform(resNotEndList));\n setIsLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setIsLoading(false);\n });\n };\n fetchRecords();\n }\n }, [isLoading, setErrorSnackMessage]);\n\n useEffect(() => {\n setIsLoading(true);\n }, []);\n\n const filteredRecords = records.filter((b: TransformedEndpointItem) => {\n if (filter === \"\") {\n return true;\n }\n return b.service_name.indexOf(filter) >= 0;\n });\n\n const statusDisplay = (status: string) => {\n return (\n \n \n {status}\n \n );\n };\n\n return (\n \n \n \n \n
    \n }\n onClick={() => {\n setIsLoading(true);\n }}\n />\n\n }\n onClick={() => {\n history.push(IAM_PAGES.NOTIFICATIONS_ENDPOINTS_ADD);\n }}\n />\n
    \n
    \n {isLoading && }\n {!isLoading && (\n \n {records.length > 0 && (\n \n \n \n \n \n }\n help={\n \n MinIO bucket notifications allow administrators to send\n notifications to supported external services on certain\n object or bucket events. MinIO supports bucket and\n object-level S3 events similar to the Amazon S3 Event\n Notifications.\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 MinIO bucket notifications allow administrators to send\n notifications to supported external services on certain\n object or bucket events. MinIO supports bucket and\n object-level S3 events similar to the Amazon S3 Event\n Notifications.\n
    \n
    \n To get started,{\" \"}\n {\n history.push(IAM_PAGES.NOTIFICATIONS_ENDPOINTS_ADD);\n }}\n >\n Add a Notification Target\n \n .\n
    \n }\n />\n
    \n \n )}\n
    \n )}\n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(ListNotificationEndpoints));\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 { NotificationEndpointItem } from \"./types\";\n\nimport { IElementValue } from \"../Configurations/types\";\n\nexport const notifyPostgres = \"notify_postgres\";\nexport const notifyMysql = \"notify_mysql\";\nexport const notifyKafka = \"notify_kafka\";\nexport const notifyAmqp = \"notify_amqp\";\nexport const notifyMqtt = \"notify_mqtt\";\nexport const notifyRedis = \"notify_redis\";\nexport const notifyNats = \"notify_nats\";\nexport const notifyElasticsearch = \"notify_elasticsearch\";\nexport const notifyWebhooks = \"notify_webhook\";\nexport const notifyNsq = \"notify_nsq\";\n\nexport const notificationTransform = (\n notificationElements: NotificationEndpointItem[]\n) => {\n return notificationElements.map((element) => {\n return {\n service_name: `${element.service}:${element.account_id}`,\n status: element.status,\n };\n });\n};\n\nexport const servicesList = [\n {\n actionTrigger: notifyPostgres,\n targetTitle: \"PostgreSQL\",\n logo: \"/postgres-logo.svg\",\n },\n {\n actionTrigger: notifyKafka,\n targetTitle: \"Kafka\",\n logo: \"/kafka-logo.svg\",\n },\n {\n actionTrigger: notifyAmqp,\n targetTitle: \"AMQP\",\n logo: \"/amqp-logo.svg\",\n },\n {\n actionTrigger: notifyMqtt,\n targetTitle: \"MQTT\",\n logo: \"/mqtt-logo.svg\",\n },\n {\n actionTrigger: notifyRedis,\n targetTitle: \"Redis\",\n logo: \"/redis-logo.svg\",\n },\n {\n actionTrigger: notifyNats,\n targetTitle: \"NATS\",\n logo: \"/nats-logo.svg\",\n },\n {\n actionTrigger: notifyMysql,\n targetTitle: \"Mysql\",\n logo: \"/mysql-logo.svg\",\n },\n {\n actionTrigger: notifyElasticsearch,\n targetTitle: \"Elastic Search\",\n logo: \"/elasticsearch-logo.svg\",\n },\n {\n actionTrigger: notifyWebhooks,\n targetTitle: \"Webhook\",\n logo: \"/webhooks-logo.svg\",\n },\n {\n actionTrigger: notifyNsq,\n targetTitle: \"NSQ\",\n logo: \"/nsq-logo.svg\",\n },\n];\n\nconst commonFields = [\n {\n name: \"queue-dir\",\n label: \"Queue Directory\",\n required: true,\n\n tooltip: \"staging dir for undelivered messages e.g. '/home/events'\",\n type: \"string\",\n placeholder: \"Enter Queue Directory\",\n },\n {\n name: \"queue-limit\",\n label: \"Queue Limit\",\n required: false,\n\n tooltip: \"maximum limit for undelivered messages, defaults to '10000'\",\n type: \"number\",\n placeholder: \"Enter Queue Limit\",\n },\n {\n name: \"comment\",\n label: \"Comment\",\n required: false,\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n];\n\nexport const removeEmptyFields = (formFields: IElementValue[]) => {\n const nonEmptyFields = formFields.filter((field) => field.value !== \"\");\n\n return nonEmptyFields;\n};\n\nexport const notificationEndpointsFields: any = {\n [notifyKafka]: [\n {\n name: \"brokers\",\n label: \"Brokers\",\n required: true,\n\n tooltip: \"Comma separated list of Kafka broker addresses\",\n type: \"string\",\n placeholder: \"Enter Brokers\",\n },\n {\n name: \"topic\",\n label: \"Topic\",\n tooltip: \"Kafka topic used for bucket notifications\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"sasl_username\",\n label: \"SASL Username\",\n tooltip: \"Username for SASL/PLAIN or SASL/SCRAM authentication\",\n type: \"string\",\n placeholder: \"Enter SASL Username\",\n },\n {\n name: \"sasl_password\",\n label: \"SASL Password\",\n tooltip: \"Password for SASL/PLAIN or SASL/SCRAM authentication\",\n type: \"string\",\n placeholder: \"Enter SASL Password\",\n },\n {\n name: \"sasl_mechanism\",\n label: \"SASL Mechanism\",\n tooltip: \"SASL authentication mechanism, default 'PLAIN'\",\n type: \"string\",\n },\n {\n name: \"tls_client_auth\",\n label: \"TLS Client Auth\",\n tooltip:\n \"Client Auth determines the Kafka server's policy for TLS client auth\",\n type: \"string\",\n placeholder: \"Enter TLS Client Auth\",\n },\n {\n name: \"sasl\",\n label: \"SASL\",\n tooltip: \"Set to 'on' to enable SASL authentication\",\n type: \"on|off\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"Set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS skip verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"client_tls_cert\",\n label: \"client TLS cert\",\n tooltip: \"Path to client certificate for mTLS auth\",\n type: \"path\",\n placeholder: \"Enter TLS Client Cert\",\n },\n {\n name: \"client_tls_key\",\n label: \"client TLS key\",\n tooltip: \"Path to client key for mTLS auth\",\n type: \"path\",\n placeholder: \"Enter TLS Client Key\",\n },\n {\n name: \"version\",\n label: \"Version\",\n tooltip: \"Specify the version of the Kafka cluster e.g '2.2.0'\",\n type: \"string\",\n placeholder: \"Enter Kafka Version\",\n },\n ...commonFields,\n ],\n [notifyAmqp]: [\n {\n name: \"url\",\n required: true,\n label: \"URL\",\n tooltip:\n \"AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672`\",\n type: \"url\",\n },\n {\n name: \"exchange\",\n label: \"Exchange\",\n tooltip: \"Name of the AMQP exchange\",\n type: \"string\",\n placeholder: \"Enter Exchange\",\n },\n {\n name: \"exchange_type\",\n label: \"Exchange Type\",\n tooltip: \"AMQP exchange type\",\n type: \"string\",\n placeholder: \"Enter Exchange Type\",\n },\n {\n name: \"routing_key\",\n label: \"Routing Key\",\n tooltip: \"Routing key for publishing\",\n type: \"string\",\n placeholder: \"Enter Routing Key\",\n },\n {\n name: \"mandatory\",\n label: \"Mandatory\",\n tooltip:\n \"Quietly ignore undelivered messages when set to 'off', default is 'on'\",\n type: \"on|off\",\n },\n {\n name: \"durable\",\n label: \"Durable\",\n tooltip:\n \"Persist queue across broker restarts when set to 'on', default is 'off'\",\n type: \"on|off\",\n },\n {\n name: \"no_wait\",\n label: \"No Wait\",\n tooltip:\n \"Non-blocking message delivery when set to 'on', default is 'off'\",\n type: \"on|off\",\n },\n {\n name: \"internal\",\n label: \"Internal\",\n tooltip:\n \"Set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges\",\n type: \"on|off\",\n },\n {\n name: \"auto_deleted\",\n label: \"Auto Deleted\",\n tooltip:\n \"Auto delete queue when set to 'on', when there are no consumers\",\n type: \"on|off\",\n },\n {\n name: \"delivery_mode\",\n label: \"Delivery Mode\",\n tooltip: \"Set to '1' for non-persistent or '2' for persistent queue\",\n type: \"number\",\n placeholder: \"Enter Delivery Mode\",\n },\n ...commonFields,\n ],\n [notifyRedis]: [\n {\n name: \"address\",\n required: true,\n label: \"Address\",\n tooltip: \"Redis server's address. For example: `localhost:6379`\",\n type: \"address\",\n placeholder: \"Enter Address\",\n },\n {\n name: \"key\",\n required: true,\n label: \"Key\",\n tooltip: \"Redis key to store/update events, key is auto-created\",\n type: \"string\",\n placeholder: \"Enter Key\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"Redis server password\",\n type: \"string\",\n placeholder: \"Enter Password\",\n },\n ...commonFields,\n ],\n [notifyMqtt]: [\n {\n name: \"broker\",\n required: true,\n label: \"Broker\",\n tooltip: \"MQTT server endpoint e.g. `tcp://localhost:1883`\",\n type: \"uri\",\n placeholder: \"Enter Brokers\",\n },\n {\n name: \"topic\",\n required: true,\n label: \"Topic\",\n tooltip: \"name of the MQTT topic to publish\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"username\",\n label: \"Username\",\n tooltip: \"MQTT username\",\n type: \"string\",\n placeholder: \"Enter Username\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"MQTT password\",\n type: \"string\",\n placeholder: \"Enter Password\",\n },\n {\n name: \"qos\",\n label: \"QOS\",\n tooltip: \"Set the quality of service priority, defaults to '0'\",\n type: \"number\",\n placeholder: \"Enter QOS\",\n },\n {\n name: \"keep_alive_interval\",\n label: \"Keep Alive Interval\",\n tooltip: \"Keep-alive interval for MQTT connections in s,m,h,d\",\n type: \"duration\",\n placeholder: \"Enter Keep Alive Internal\",\n },\n {\n name: \"reconnect_interval\",\n label: \"Reconnect Interval\",\n tooltip: \"Reconnect interval for MQTT connections in s,m,h,d\",\n type: \"duration\",\n placeholder: \"Enter Reconnect Interval\",\n },\n ...commonFields,\n ],\n [notifyNats]: [\n {\n name: \"address\",\n required: true,\n label: \"Address\",\n tooltip: \"NATS server address e.g. '0.0.0.0:4222'\",\n type: \"address\",\n placeholder: \"Enter Address\",\n },\n {\n name: \"subject\",\n required: true,\n label: \"Subject\",\n tooltip: \"NATS subscription subject\",\n type: \"string\",\n placeholder: \"Enter NATS Subject\",\n },\n {\n name: \"username\",\n label: \"Username\",\n tooltip: \"NATS username\",\n type: \"string\",\n placeholder: \"Enter NATS Username\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"NATS password\",\n type: \"string\",\n placeholder: \"Enter NATS password\",\n },\n {\n name: \"token\",\n label: \"Token\",\n tooltip: \"NATS token\",\n type: \"string\",\n placeholder: \"Enter NATS token\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"Set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS Skip Verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"ping_interval\",\n label: \"Ping Interval\",\n tooltip: \"Client ping commands interval in s,m,h,d. Disabled by default\",\n type: \"duration\",\n placeholder: \"Enter Ping Interval\",\n },\n {\n name: \"streaming\",\n label: \"Streaming\",\n tooltip: \"Set to 'on', to use streaming NATS server\",\n type: \"on|off\",\n },\n {\n name: \"streaming_async\",\n label: \"Streaming async\",\n tooltip: \"Set to 'on', to enable asynchronous publish\",\n type: \"on|off\",\n },\n {\n name: \"streaming_max_pub_acks_in_flight\",\n label: \"Streaming max publish ACKS in flight\",\n tooltip: \"Number of messages to publish without waiting for ACKs\",\n type: \"number\",\n placeholder: \"Enter Streaming in flight value\",\n },\n {\n name: \"streaming_cluster_id\",\n label: \"Streaming Cluster ID\",\n tooltip: \"Unique ID for NATS streaming cluster\",\n type: \"string\",\n placeholder: \"Enter Streaming Cluster ID\",\n },\n {\n name: \"cert_authority\",\n label: \"Cert Authority\",\n tooltip: \"Path to certificate chain of the target NATS server\",\n type: \"string\",\n placeholder: \"Enter Cert Authority\",\n },\n {\n name: \"client_cert\",\n label: \"Client Cert\",\n tooltip: \"Client cert for NATS mTLS auth\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_key\",\n label: \"Client Key\",\n tooltip: \"Client cert key for NATS mTLS auth\",\n type: \"string\",\n placeholder: \"Enter Client Key\",\n },\n ...commonFields,\n ],\n [notifyElasticsearch]: [\n {\n name: \"url\",\n required: true,\n label: \"URL\",\n tooltip:\n \"Elasticsearch server's address, with optional authentication info\",\n type: \"url\",\n placeholder: \"Enter URL\",\n },\n {\n name: \"index\",\n required: true,\n label: \"Index\",\n tooltip:\n \"Elasticsearch index to store/update events, index is auto-created\",\n type: \"string\",\n placeholder: \"Enter Index\",\n },\n {\n name: \"format\",\n required: true,\n label: \"Format\",\n tooltip:\n \"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\",\n type: \"enum\",\n placeholder: \"Enter Format\",\n },\n ...commonFields,\n ],\n [notifyWebhooks]: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n tooltip:\n \"webhook server endpoint e.g. http://localhost:8080/minio/events\",\n type: \"url\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n label: \"Auth Token\",\n tooltip: \"opaque string or JWT authorization token\",\n type: \"string\",\n placeholder: \"Enter auth_token\",\n },\n ...commonFields,\n ],\n [notifyNsq]: [\n {\n name: \"nsqd_address\",\n required: true,\n label: \"NSQD Address\",\n tooltip: \"NSQ server address e.g. '127.0.0.1:4150'\",\n type: \"address\",\n placeholder: \"Enter nsqd_address\",\n },\n {\n name: \"topic\",\n required: true,\n label: \"Topic\",\n tooltip: \"NSQ topic\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS Skip Verify\",\n tooltip:\n 'trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n ...commonFields,\n ],\n};\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","useStyles","makeStyles","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","onClick","disabled","tooltip","icon","restProps","size","sx","margin","textDecoration","cursor","info","fontFamily","children","rest","borderWidth","borderStyle","opacity","contained","background","dark","light","button","clsx","pageContentStyles","contentSpacer","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","id","label","InputProps","e","target","mapDispatchToProps","setErrorSnackMessage","connector","connect","actionsTray","settingsCommon","containerForHeader","spacing","twHeight","minHeight","tableBlock","tableStyles","rightActionItems","whiteSpace","maxWidth","useState","records","setRecords","filter","setFilter","isLoading","setIsLoading","useEffect","api","then","res","resNotEndList","notification_endpoints","notificationTransform","catch","err","filteredRecords","b","service_name","indexOf","Fragment","history","IAM_PAGES","length","itemActions","columns","elementKey","renderFunction","status","style","red","entityName","idField","customPaperHeight","href","rel","justifyContent","alignContent","notifyPostgres","notifyMysql","notifyKafka","notifyAmqp","notifyMqtt","notifyRedis","notifyNats","notifyElasticsearch","notifyWebhooks","notifyNsq","notificationElements","map","element","service","account_id","servicesList","actionTrigger","targetTitle","logo","commonFields","name","required","type","removeEmptyFields","formFields","field","notificationEndpointsFields"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4394.dfbbe2b6.chunk.js b/portal-ui/build/static/js/4394.dfbbe2b6.chunk.js deleted file mode 100644 index 8070bdc42..000000000 --- a/portal-ui/build/static/js/4394.dfbbe2b6.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4394],{23804:function(e,t,o){o(72791);var n=o(11135),r=o(25787),i=o(61889),a=o(80184);t.Z=(0,r.Z)((function(e){return(0,n.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var t=e.classes,o=e.iconComponent,n=e.title,r=e.help;return(0,a.jsx)("div",{className:t.root,children:(0,a.jsxs)(i.ZP,{container:!0,children:[(0,a.jsxs)(i.ZP,{item:!0,xs:12,className:t.leftItems,children:[o,n]}),(0,a.jsx)(i.ZP,{item:!0,xs:12,className:t.helpText,children:r})]})})}))},40603:function(e,t,o){var n=o(1413),r=o(45987),i=(o(72791),o(85531)),a=o(72455),l=o(80184),s=["onClick","text","disabled","tooltip","icon"],c=(0,a.Z)((function(e){return{root:{padding:"7px",color:function(t){return function(t){var o=t.variant,n=t.color,r=e.palette.primary.main;return"primary"===n&&"contained"===o?r=e.palette.primary.contrastText:"primary"===n&&"outlined"===o?r=e.palette.primary.main:"secondary"===n&&(r=e.palette.secondary.main),r}(t)},borderColor:function(t){return"secondary"===t.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));t.Z=function(e){var t=c(e),o=e.onClick,a=e.text,d=void 0===a?"":a,p=e.disabled,u=void 0!==p&&p,m=e.tooltip,h=e.icon,f=void 0===h?null:h,g=(0,r.Z)(e,s);return(0,l.jsxs)(i.Z,(0,n.Z)((0,n.Z)({classes:t,tooltip:m||d,variant:"outlined",onClick:o,disabled:u,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},g),{},{children:[(0,l.jsx)("span",{children:d})," ",f]}))}},81806:function(e,t,o){var n=o(1413),r=o(45987),i=(o(72791),o(11135)),a=o(25787),l=o(80184),s=["classes","children"];t.Z=(0,a.Z)((function(e){return(0,i.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var t=e.classes,o=e.children,i=(0,r.Z)(e,s);return(0,l.jsx)("button",(0,n.Z)((0,n.Z)({},i),{},{className:t.root,children:o}))}))},85531:function(e,t,o){var n=o(1413),r=o(4942),i=o(45987),a=(o(72791),o(11135)),l=o(25787),s=o(13400),c=o(20068),d=o(28182),p=o(80184),u=["classes","children","variant","tooltip"];t.Z=(0,l.Z)((function(e){return(0,a.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var t=e.classes,o=e.children,a=e.variant,l=void 0===a?"outlined":a,m=e.tooltip,h=(0,i.Z)(e,u),f=(0,p.jsx)(s.Z,(0,n.Z)((0,n.Z)({},h),{},{className:(0,d.Z)(t.root,(0,r.Z)({},t.contained,"contained"===l)),children:o}));return m&&""!==m?(0,p.jsx)(c.Z,{title:m,children:(0,p.jsx)("span",{children:f})}):f}))},74794:function(e,t,o){var n=o(1413),r=(o(72791),o(61889)),i=o(11135),a=o(25787),l=o(23814),s=o(80184);t.Z=(0,a.Z)((function(e){return(0,i.Z)((0,n.Z)({},l.Bw))}))((function(e){var t=e.classes,o=e.className,n=void 0===o?"":o,i=e.children;return(0,s.jsx)("div",{className:t.contentSpacer,children:(0,s.jsx)(r.ZP,{container:!0,children:(0,s.jsx)(r.ZP,{item:!0,xs:12,className:n,children:i})})})}))},59114:function(e,t,o){var n=o(4942),r=o(1413),i=(o(72791),o(63466)),a=o(74900),l=o(27391),s=o(25787),c=o(11135),d=o(23814),p=o(80184);t.Z=(0,s.Z)((function(e){return(0,c.Z)({searchField:(0,r.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var t=e.placeholder,o=void 0===t?"":t,r=e.classes,s=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,u=e.overrideClass,m=e.value,h=(0,n.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,p.jsx)(i.Z,{position:d,className:r.adornment,children:(0,p.jsx)(a.Z,{})}));return(0,p.jsx)(l.Z,{placeholder:o,className:u||r.searchField,id:"search-resource",label:"",InputProps:h,onChange:function(e){s(e.target.value)},variant:"standard",value:m})}))},4394:function(e,t,o){o.r(t);var n=o(70885),r=o(1413),i=o(72791),a=o(60364),l=o(11135),s=o(25787),c=o(40986),d=o(82460),p=o(61889),u=o(37267),m=o(15514),h=o(74833),f=o(92983),g=o(42649),y=o(23814),b=o(81207),v=o(28789),S=o(62666),T=o(23804),x=o(81806),k=o(74794),Z=o(59114),E=o(40603),A=o(56087),_=o(80184),j={setErrorSnackMessage:g.Ih},C=(0,a.$j)(null,j);t.default=(0,s.Z)((function(e){return(0,l.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},y.OR),y.Je),(0,y.Bz)(e.spacing(4))),{},{twHeight:{minHeight:400},tableBlock:(0,r.Z)({},y.VX.tableBlock),rightActionItems:{display:"flex",alignItems:"center","& button":{whiteSpace:"nowrap"}},searchField:(0,r.Z)((0,r.Z)({},y.qg.searchField),{},{maxWidth:380})}))}))(C((function(e){var t=e.classes,o=e.setErrorSnackMessage,r=(0,i.useState)([]),a=(0,n.Z)(r,2),l=a[0],s=a[1],g=(0,i.useState)(""),y=(0,n.Z)(g,2),j=y[0],C=y[1],N=(0,i.useState)(!1),L=(0,n.Z)(N,2),w=L[0],q=L[1];(0,i.useEffect)((function(){if(w){b.Z.invoke("GET","/api/v1/admin/notification_endpoints").then((function(e){var t=[];null!==e.notification_endpoints&&(t=e.notification_endpoints),s((0,m.fk)(t)),q(!1)})).catch((function(e){o(e),q(!1)}))}}),[w,o]),(0,i.useEffect)((function(){q(!0)}),[]);var I=l.filter((function(e){return""===j||e.service_name.indexOf(j)>=0}));return(0,_.jsx)(i.Fragment,{children:(0,_.jsxs)(k.Z,{children:[(0,_.jsxs)(p.ZP,{item:!0,xs:12,className:t.actionsTray,children:[(0,_.jsx)(Z.Z,{placeholder:"Search target",onChange:C,overrideClass:t.searchField,value:j}),(0,_.jsxs)("div",{className:t.rightActionItems,children:[(0,_.jsx)(E.Z,{tooltip:"Refresh List",text:"Refresh",variant:"outlined",color:"primary",icon:(0,_.jsx)(v.default,{}),onClick:function(){q(!0)}}),(0,_.jsx)(E.Z,{tooltip:"Add Notification Target",text:" Add Notification Target",variant:"contained",color:"primary",icon:(0,_.jsx)(h.dt,{}),onClick:function(){S.Z.push(A.gA.NOTIFICATIONS_ENDPOINTS_ADD)}})]})]}),w&&(0,_.jsx)(c.Z,{}),!w&&(0,_.jsxs)(i.Fragment,{children:[l.length>0&&(0,_.jsxs)(i.Fragment,{children:[(0,_.jsx)(p.ZP,{item:!0,xs:12,className:t.tableBlock,children:(0,_.jsx)(f.Z,{itemActions:[],columns:[{label:"Status",elementKey:"status",renderFunction:function(e){return(0,_.jsxs)("div",{style:{display:"flex",alignItems:"center"},children:[(0,_.jsx)(u.Z,{style:"Offline"===e?{color:d.Z[500]}:{}}),e]})},width:150},{label:"Service",elementKey:"service_name"}],isLoading:w,records:I,entityName:"Notification Endpoints",idField:"service_name",customPaperHeight:t.twHeight})}),(0,_.jsx)(p.ZP,{item:!0,xs:12,children:(0,_.jsx)(T.Z,{title:"Notification Endpoints",iconComponent:(0,_.jsx)(h.cC,{}),help:(0,_.jsxs)(i.Fragment,{children:["MinIO bucket notifications allow administrators to send notifications to supported external services on certain object or bucket events. MinIO supports bucket and object-level S3 events similar to the Amazon S3 Event Notifications.",(0,_.jsx)("br",{}),(0,_.jsx)("br",{}),"You can learn more at our"," ",(0,_.jsx)("a",{href:"https://docs.min.io/minio/baremetal/monitoring/bucket-notifications/bucket-notifications.html?ref=con",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})})]}),0===l.length&&(0,_.jsx)(p.ZP,{container:!0,justifyContent:"center",alignContent:"center",alignItems:"center",children:(0,_.jsx)(p.ZP,{item:!0,xs:8,children:(0,_.jsx)(T.Z,{title:"Notification Targets",iconComponent:(0,_.jsx)(h.cC,{}),help:(0,_.jsxs)(i.Fragment,{children:["MinIO bucket notifications allow administrators to send notifications to supported external services on certain object or bucket events. MinIO supports bucket and object-level S3 events similar to the Amazon S3 Event Notifications.",(0,_.jsx)("br",{}),(0,_.jsx)("br",{}),"To get started,"," ",(0,_.jsx)(x.Z,{onClick:function(){S.Z.push(A.gA.NOTIFICATIONS_ENDPOINTS_ADD)},children:"Add a Notification Target"}),"."]})})})})]})]})})})))},15514:function(e,t,o){o.d(t,{BR:function(){return g},DD:function(){return b},dM:function(){return a},ee:function(){return i},fk:function(){return f},oj:function(){return v}});var n,r=o(4942),i="notify_postgres",a="notify_mysql",l="notify_kafka",s="notify_amqp",c="notify_mqtt",d="notify_redis",p="notify_nats",u="notify_elasticsearch",m="notify_webhook",h="notify_nsq",f=function(e){return e.map((function(e){return{service_name:"".concat(e.service,":").concat(e.account_id),status:e.status}}))},g=[{actionTrigger:i,targetTitle:"PostgreSQL",logo:"/postgres-logo.svg"},{actionTrigger:l,targetTitle:"Kafka",logo:"/kafka-logo.svg"},{actionTrigger:s,targetTitle:"AMQP",logo:"/amqp-logo.svg"},{actionTrigger:c,targetTitle:"MQTT",logo:"/mqtt-logo.svg"},{actionTrigger:d,targetTitle:"Redis",logo:"/redis-logo.svg"},{actionTrigger:p,targetTitle:"NATS",logo:"/nats-logo.svg"},{actionTrigger:a,targetTitle:"Mysql",logo:"/mysql-logo.svg"},{actionTrigger:u,targetTitle:"Elastic Search",logo:"/elasticsearch-logo.svg"},{actionTrigger:m,targetTitle:"Webhook",logo:"/webhooks-logo.svg"},{actionTrigger:h,targetTitle:"NSQ",logo:"/nsq-logo.svg"}],y=[{name:"queue-dir",label:"Queue Directory",required:!0,tooltip:"staging dir for undelivered messages e.g. '/home/events'",type:"string",placeholder:"Enter Queue Directory"},{name:"queue-limit",label:"Queue Limit",required:!1,tooltip:"maximum limit for undelivered messages, defaults to '10000'",type:"number",placeholder:"Enter Queue Limit"},{name:"comment",label:"Comment",required:!1,type:"comment",placeholder:"Enter custom notes if any"}],b=function(e){return e.filter((function(e){return""!==e.value}))},v=(n={},(0,r.Z)(n,l,[{name:"brokers",label:"Brokers",required:!0,tooltip:"Comma separated list of Kafka broker addresses",type:"string",placeholder:"Enter Brokers"},{name:"topic",label:"Topic",tooltip:"Kafka topic used for bucket notifications",type:"string",placeholder:"Enter Topic"},{name:"sasl_username",label:"SASL Username",tooltip:"Username for SASL/PLAIN or SASL/SCRAM authentication",type:"string",placeholder:"Enter SASL Username"},{name:"sasl_password",label:"SASL Password",tooltip:"Password for SASL/PLAIN or SASL/SCRAM authentication",type:"string",placeholder:"Enter SASL Password"},{name:"sasl_mechanism",label:"SASL Mechanism",tooltip:"SASL authentication mechanism, default 'PLAIN'",type:"string"},{name:"tls_client_auth",label:"TLS Client Auth",tooltip:"Client Auth determines the Kafka server's policy for TLS client auth",type:"string",placeholder:"Enter TLS Client Auth"},{name:"sasl",label:"SASL",tooltip:"Set to 'on' to enable SASL authentication",type:"on|off"},{name:"tls",label:"TLS",tooltip:"Set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS skip verify",tooltip:'Trust server TLS without verification, defaults to "on" (verify)',type:"on|off"},{name:"client_tls_cert",label:"client TLS cert",tooltip:"Path to client certificate for mTLS auth",type:"path",placeholder:"Enter TLS Client Cert"},{name:"client_tls_key",label:"client TLS key",tooltip:"Path to client key for mTLS auth",type:"path",placeholder:"Enter TLS Client Key"},{name:"version",label:"Version",tooltip:"Specify the version of the Kafka cluster e.g '2.2.0'",type:"string",placeholder:"Enter Kafka Version"}].concat(y)),(0,r.Z)(n,s,[{name:"url",required:!0,label:"URL",tooltip:"AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672`",type:"url"},{name:"exchange",label:"Exchange",tooltip:"Name of the AMQP exchange",type:"string",placeholder:"Enter Exchange"},{name:"exchange_type",label:"Exchange Type",tooltip:"AMQP exchange type",type:"string",placeholder:"Enter Exchange Type"},{name:"routing_key",label:"Routing Key",tooltip:"Routing key for publishing",type:"string",placeholder:"Enter Routing Key"},{name:"mandatory",label:"Mandatory",tooltip:"Quietly ignore undelivered messages when set to 'off', default is 'on'",type:"on|off"},{name:"durable",label:"Durable",tooltip:"Persist queue across broker restarts when set to 'on', default is 'off'",type:"on|off"},{name:"no_wait",label:"No Wait",tooltip:"Non-blocking message delivery when set to 'on', default is 'off'",type:"on|off"},{name:"internal",label:"Internal",tooltip:"Set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges",type:"on|off"},{name:"auto_deleted",label:"Auto Deleted",tooltip:"Auto delete queue when set to 'on', when there are no consumers",type:"on|off"},{name:"delivery_mode",label:"Delivery Mode",tooltip:"Set to '1' for non-persistent or '2' for persistent queue",type:"number",placeholder:"Enter Delivery Mode"}].concat(y)),(0,r.Z)(n,d,[{name:"address",required:!0,label:"Address",tooltip:"Redis server's address. For example: `localhost:6379`",type:"address",placeholder:"Enter Address"},{name:"key",required:!0,label:"Key",tooltip:"Redis key to store/update events, key is auto-created",type:"string",placeholder:"Enter Key"},{name:"password",label:"Password",tooltip:"Redis server password",type:"string",placeholder:"Enter Password"}].concat(y)),(0,r.Z)(n,c,[{name:"broker",required:!0,label:"Broker",tooltip:"MQTT server endpoint e.g. `tcp://localhost:1883`",type:"uri",placeholder:"Enter Brokers"},{name:"topic",required:!0,label:"Topic",tooltip:"name of the MQTT topic to publish",type:"string",placeholder:"Enter Topic"},{name:"username",label:"Username",tooltip:"MQTT username",type:"string",placeholder:"Enter Username"},{name:"password",label:"Password",tooltip:"MQTT password",type:"string",placeholder:"Enter Password"},{name:"qos",label:"QOS",tooltip:"Set the quality of service priority, defaults to '0'",type:"number",placeholder:"Enter QOS"},{name:"keep_alive_interval",label:"Keep Alive Interval",tooltip:"Keep-alive interval for MQTT connections in s,m,h,d",type:"duration",placeholder:"Enter Keep Alive Internal"},{name:"reconnect_interval",label:"Reconnect Interval",tooltip:"Reconnect interval for MQTT connections in s,m,h,d",type:"duration",placeholder:"Enter Reconnect Interval"}].concat(y)),(0,r.Z)(n,p,[{name:"address",required:!0,label:"Address",tooltip:"NATS server address e.g. '0.0.0.0:4222'",type:"address",placeholder:"Enter Address"},{name:"subject",required:!0,label:"Subject",tooltip:"NATS subscription subject",type:"string",placeholder:"Enter NATS Subject"},{name:"username",label:"Username",tooltip:"NATS username",type:"string",placeholder:"Enter NATS Username"},{name:"password",label:"Password",tooltip:"NATS password",type:"string",placeholder:"Enter NATS password"},{name:"token",label:"Token",tooltip:"NATS token",type:"string",placeholder:"Enter NATS token"},{name:"tls",label:"TLS",tooltip:"Set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS Skip Verify",tooltip:'Trust server TLS without verification, defaults to "on" (verify)',type:"on|off"},{name:"ping_interval",label:"Ping Interval",tooltip:"Client ping commands interval in s,m,h,d. Disabled by default",type:"duration",placeholder:"Enter Ping Interval"},{name:"streaming",label:"Streaming",tooltip:"Set to 'on', to use streaming NATS server",type:"on|off"},{name:"streaming_async",label:"Streaming async",tooltip:"Set to 'on', to enable asynchronous publish",type:"on|off"},{name:"streaming_max_pub_acks_in_flight",label:"Streaming max publish ACKS in flight",tooltip:"Number of messages to publish without waiting for ACKs",type:"number",placeholder:"Enter Streaming in flight value"},{name:"streaming_cluster_id",label:"Streaming Cluster ID",tooltip:"Unique ID for NATS streaming cluster",type:"string",placeholder:"Enter Streaming Cluster ID"},{name:"cert_authority",label:"Cert Authority",tooltip:"Path to certificate chain of the target NATS server",type:"string",placeholder:"Enter Cert Authority"},{name:"client_cert",label:"Client Cert",tooltip:"Client cert for NATS mTLS auth",type:"string",placeholder:"Enter Client Cert"},{name:"client_key",label:"Client Key",tooltip:"Client cert key for NATS mTLS auth",type:"string",placeholder:"Enter Client Key"}].concat(y)),(0,r.Z)(n,u,[{name:"url",required:!0,label:"URL",tooltip:"Elasticsearch server's address, with optional authentication info",type:"url",placeholder:"Enter URL"},{name:"index",required:!0,label:"Index",tooltip:"Elasticsearch index to store/update events, index is auto-created",type:"string",placeholder:"Enter Index"},{name:"format",required:!0,label:"Format",tooltip:"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'",type:"enum",placeholder:"Enter Format"}].concat(y)),(0,r.Z)(n,m,[{name:"endpoint",required:!0,label:"Endpoint",tooltip:"webhook server endpoint e.g. http://localhost:8080/minio/events",type:"url",placeholder:"Enter Endpoint"},{name:"auth_token",label:"Auth Token",tooltip:"opaque string or JWT authorization token",type:"string",placeholder:"Enter auth_token"}].concat(y)),(0,r.Z)(n,h,[{name:"nsqd_address",required:!0,label:"NSQD Address",tooltip:"NSQ server address e.g. '127.0.0.1:4150'",type:"address",placeholder:"Enter nsqd_address"},{name:"topic",required:!0,label:"Topic",tooltip:"NSQ topic",type:"string",placeholder:"Enter Topic"},{name:"tls",label:"TLS",tooltip:"set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS Skip Verify",tooltip:'trust server TLS without verification, defaults to "on" (verify)',type:"on|off"}].concat(y)),n)}}]); -//# sourceMappingURL=4394.dfbbe2b6.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4394.dfbbe2b6.chunk.js.map b/portal-ui/build/static/js/4394.dfbbe2b6.chunk.js.map deleted file mode 100644 index d03aab1e2..000000000 --- a/portal-ui/build/static/js/4394.dfbbe2b6.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/4394.dfbbe2b6.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/AButton/AButton.tsx","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/NotificationEndpoints/ListNotificationEndpoints.tsx","screens/Console/NotificationEndpoints/utils.ts"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport { red } from \"@mui/material/colors\";\nimport Grid from \"@mui/material/Grid\";\nimport FiberManualRecordIcon from \"@mui/icons-material/FiberManualRecord\";\nimport {\n NotificationEndpointItem,\n NotificationEndpointsList,\n TransformedEndpointItem,\n} from \"./types\";\nimport { notificationTransform } from \"./utils\";\nimport { AddIcon, LambdaIcon } from \"../../../icons\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n settingsCommon,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport RefreshIcon from \"../../../icons/RefreshIcon\";\nimport history from \"../../../history\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport AButton from \"../Common/AButton/AButton\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport SearchBox from \"../Common/SearchBox\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\ninterface IListNotificationEndpoints {\n classes: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...settingsCommon,\n ...containerForHeader(theme.spacing(4)),\n twHeight: {\n minHeight: 400,\n },\n tableBlock: {\n ...tableStyles.tableBlock,\n },\n rightActionItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"& button\": {\n whiteSpace: \"nowrap\",\n },\n },\n searchField: {\n ...searchField.searchField,\n maxWidth: 380,\n },\n });\n\nconst ListNotificationEndpoints = ({\n classes,\n setErrorSnackMessage,\n}: IListNotificationEndpoints) => {\n //Local States\n const [records, setRecords] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [isLoading, setIsLoading] = useState(false);\n\n //Effects\n // load records on mount\n useEffect(() => {\n if (isLoading) {\n const fetchRecords = () => {\n api\n .invoke(\"GET\", `/api/v1/admin/notification_endpoints`)\n .then((res: NotificationEndpointsList) => {\n let resNotEndList: NotificationEndpointItem[] = [];\n if (res.notification_endpoints !== null) {\n resNotEndList = res.notification_endpoints;\n }\n setRecords(notificationTransform(resNotEndList));\n setIsLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setIsLoading(false);\n });\n };\n fetchRecords();\n }\n }, [isLoading, setErrorSnackMessage]);\n\n useEffect(() => {\n setIsLoading(true);\n }, []);\n\n const filteredRecords = records.filter((b: TransformedEndpointItem) => {\n if (filter === \"\") {\n return true;\n }\n return b.service_name.indexOf(filter) >= 0;\n });\n\n const statusDisplay = (status: string) => {\n return (\n \n \n {status}\n \n );\n };\n\n return (\n \n \n \n \n
    \n }\n onClick={() => {\n setIsLoading(true);\n }}\n />\n\n }\n onClick={() => {\n history.push(IAM_PAGES.NOTIFICATIONS_ENDPOINTS_ADD);\n }}\n />\n
    \n
    \n {isLoading && }\n {!isLoading && (\n \n {records.length > 0 && (\n \n \n \n \n \n }\n help={\n \n MinIO bucket notifications allow administrators to send\n notifications to supported external services on certain\n object or bucket events. MinIO supports bucket and\n object-level S3 events similar to the Amazon S3 Event\n Notifications.\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 MinIO bucket notifications allow administrators to send\n notifications to supported external services on certain\n object or bucket events. MinIO supports bucket and\n object-level S3 events similar to the Amazon S3 Event\n Notifications.\n
    \n
    \n To get started,{\" \"}\n {\n history.push(IAM_PAGES.NOTIFICATIONS_ENDPOINTS_ADD);\n }}\n >\n Add a Notification Target\n \n .\n
    \n }\n />\n
    \n \n )}\n
    \n )}\n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(ListNotificationEndpoints));\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 { NotificationEndpointItem } from \"./types\";\n\nimport { IElementValue } from \"../Configurations/types\";\n\nexport const notifyPostgres = \"notify_postgres\";\nexport const notifyMysql = \"notify_mysql\";\nexport const notifyKafka = \"notify_kafka\";\nexport const notifyAmqp = \"notify_amqp\";\nexport const notifyMqtt = \"notify_mqtt\";\nexport const notifyRedis = \"notify_redis\";\nexport const notifyNats = \"notify_nats\";\nexport const notifyElasticsearch = \"notify_elasticsearch\";\nexport const notifyWebhooks = \"notify_webhook\";\nexport const notifyNsq = \"notify_nsq\";\n\nexport const notificationTransform = (\n notificationElements: NotificationEndpointItem[]\n) => {\n return notificationElements.map((element) => {\n return {\n service_name: `${element.service}:${element.account_id}`,\n status: element.status,\n };\n });\n};\n\nexport const servicesList = [\n {\n actionTrigger: notifyPostgres,\n targetTitle: \"PostgreSQL\",\n logo: \"/postgres-logo.svg\",\n },\n {\n actionTrigger: notifyKafka,\n targetTitle: \"Kafka\",\n logo: \"/kafka-logo.svg\",\n },\n {\n actionTrigger: notifyAmqp,\n targetTitle: \"AMQP\",\n logo: \"/amqp-logo.svg\",\n },\n {\n actionTrigger: notifyMqtt,\n targetTitle: \"MQTT\",\n logo: \"/mqtt-logo.svg\",\n },\n {\n actionTrigger: notifyRedis,\n targetTitle: \"Redis\",\n logo: \"/redis-logo.svg\",\n },\n {\n actionTrigger: notifyNats,\n targetTitle: \"NATS\",\n logo: \"/nats-logo.svg\",\n },\n {\n actionTrigger: notifyMysql,\n targetTitle: \"Mysql\",\n logo: \"/mysql-logo.svg\",\n },\n {\n actionTrigger: notifyElasticsearch,\n targetTitle: \"Elastic Search\",\n logo: \"/elasticsearch-logo.svg\",\n },\n {\n actionTrigger: notifyWebhooks,\n targetTitle: \"Webhook\",\n logo: \"/webhooks-logo.svg\",\n },\n {\n actionTrigger: notifyNsq,\n targetTitle: \"NSQ\",\n logo: \"/nsq-logo.svg\",\n },\n];\n\nconst commonFields = [\n {\n name: \"queue-dir\",\n label: \"Queue Directory\",\n required: true,\n\n tooltip: \"staging dir for undelivered messages e.g. '/home/events'\",\n type: \"string\",\n placeholder: \"Enter Queue Directory\",\n },\n {\n name: \"queue-limit\",\n label: \"Queue Limit\",\n required: false,\n\n tooltip: \"maximum limit for undelivered messages, defaults to '10000'\",\n type: \"number\",\n placeholder: \"Enter Queue Limit\",\n },\n {\n name: \"comment\",\n label: \"Comment\",\n required: false,\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n];\n\nexport const removeEmptyFields = (formFields: IElementValue[]) => {\n const nonEmptyFields = formFields.filter((field) => field.value !== \"\");\n\n return nonEmptyFields;\n};\n\nexport const notificationEndpointsFields: any = {\n [notifyKafka]: [\n {\n name: \"brokers\",\n label: \"Brokers\",\n required: true,\n\n tooltip: \"Comma separated list of Kafka broker addresses\",\n type: \"string\",\n placeholder: \"Enter Brokers\",\n },\n {\n name: \"topic\",\n label: \"Topic\",\n tooltip: \"Kafka topic used for bucket notifications\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"sasl_username\",\n label: \"SASL Username\",\n tooltip: \"Username for SASL/PLAIN or SASL/SCRAM authentication\",\n type: \"string\",\n placeholder: \"Enter SASL Username\",\n },\n {\n name: \"sasl_password\",\n label: \"SASL Password\",\n tooltip: \"Password for SASL/PLAIN or SASL/SCRAM authentication\",\n type: \"string\",\n placeholder: \"Enter SASL Password\",\n },\n {\n name: \"sasl_mechanism\",\n label: \"SASL Mechanism\",\n tooltip: \"SASL authentication mechanism, default 'PLAIN'\",\n type: \"string\",\n },\n {\n name: \"tls_client_auth\",\n label: \"TLS Client Auth\",\n tooltip:\n \"Client Auth determines the Kafka server's policy for TLS client auth\",\n type: \"string\",\n placeholder: \"Enter TLS Client Auth\",\n },\n {\n name: \"sasl\",\n label: \"SASL\",\n tooltip: \"Set to 'on' to enable SASL authentication\",\n type: \"on|off\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"Set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS skip verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"client_tls_cert\",\n label: \"client TLS cert\",\n tooltip: \"Path to client certificate for mTLS auth\",\n type: \"path\",\n placeholder: \"Enter TLS Client Cert\",\n },\n {\n name: \"client_tls_key\",\n label: \"client TLS key\",\n tooltip: \"Path to client key for mTLS auth\",\n type: \"path\",\n placeholder: \"Enter TLS Client Key\",\n },\n {\n name: \"version\",\n label: \"Version\",\n tooltip: \"Specify the version of the Kafka cluster e.g '2.2.0'\",\n type: \"string\",\n placeholder: \"Enter Kafka Version\",\n },\n ...commonFields,\n ],\n [notifyAmqp]: [\n {\n name: \"url\",\n required: true,\n label: \"URL\",\n tooltip:\n \"AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672`\",\n type: \"url\",\n },\n {\n name: \"exchange\",\n label: \"Exchange\",\n tooltip: \"Name of the AMQP exchange\",\n type: \"string\",\n placeholder: \"Enter Exchange\",\n },\n {\n name: \"exchange_type\",\n label: \"Exchange Type\",\n tooltip: \"AMQP exchange type\",\n type: \"string\",\n placeholder: \"Enter Exchange Type\",\n },\n {\n name: \"routing_key\",\n label: \"Routing Key\",\n tooltip: \"Routing key for publishing\",\n type: \"string\",\n placeholder: \"Enter Routing Key\",\n },\n {\n name: \"mandatory\",\n label: \"Mandatory\",\n tooltip:\n \"Quietly ignore undelivered messages when set to 'off', default is 'on'\",\n type: \"on|off\",\n },\n {\n name: \"durable\",\n label: \"Durable\",\n tooltip:\n \"Persist queue across broker restarts when set to 'on', default is 'off'\",\n type: \"on|off\",\n },\n {\n name: \"no_wait\",\n label: \"No Wait\",\n tooltip:\n \"Non-blocking message delivery when set to 'on', default is 'off'\",\n type: \"on|off\",\n },\n {\n name: \"internal\",\n label: \"Internal\",\n tooltip:\n \"Set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges\",\n type: \"on|off\",\n },\n {\n name: \"auto_deleted\",\n label: \"Auto Deleted\",\n tooltip:\n \"Auto delete queue when set to 'on', when there are no consumers\",\n type: \"on|off\",\n },\n {\n name: \"delivery_mode\",\n label: \"Delivery Mode\",\n tooltip: \"Set to '1' for non-persistent or '2' for persistent queue\",\n type: \"number\",\n placeholder: \"Enter Delivery Mode\",\n },\n ...commonFields,\n ],\n [notifyRedis]: [\n {\n name: \"address\",\n required: true,\n label: \"Address\",\n tooltip: \"Redis server's address. For example: `localhost:6379`\",\n type: \"address\",\n placeholder: \"Enter Address\",\n },\n {\n name: \"key\",\n required: true,\n label: \"Key\",\n tooltip: \"Redis key to store/update events, key is auto-created\",\n type: \"string\",\n placeholder: \"Enter Key\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"Redis server password\",\n type: \"string\",\n placeholder: \"Enter Password\",\n },\n ...commonFields,\n ],\n [notifyMqtt]: [\n {\n name: \"broker\",\n required: true,\n label: \"Broker\",\n tooltip: \"MQTT server endpoint e.g. `tcp://localhost:1883`\",\n type: \"uri\",\n placeholder: \"Enter Brokers\",\n },\n {\n name: \"topic\",\n required: true,\n label: \"Topic\",\n tooltip: \"name of the MQTT topic to publish\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"username\",\n label: \"Username\",\n tooltip: \"MQTT username\",\n type: \"string\",\n placeholder: \"Enter Username\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"MQTT password\",\n type: \"string\",\n placeholder: \"Enter Password\",\n },\n {\n name: \"qos\",\n label: \"QOS\",\n tooltip: \"Set the quality of service priority, defaults to '0'\",\n type: \"number\",\n placeholder: \"Enter QOS\",\n },\n {\n name: \"keep_alive_interval\",\n label: \"Keep Alive Interval\",\n tooltip: \"Keep-alive interval for MQTT connections in s,m,h,d\",\n type: \"duration\",\n placeholder: \"Enter Keep Alive Internal\",\n },\n {\n name: \"reconnect_interval\",\n label: \"Reconnect Interval\",\n tooltip: \"Reconnect interval for MQTT connections in s,m,h,d\",\n type: \"duration\",\n placeholder: \"Enter Reconnect Interval\",\n },\n ...commonFields,\n ],\n [notifyNats]: [\n {\n name: \"address\",\n required: true,\n label: \"Address\",\n tooltip: \"NATS server address e.g. '0.0.0.0:4222'\",\n type: \"address\",\n placeholder: \"Enter Address\",\n },\n {\n name: \"subject\",\n required: true,\n label: \"Subject\",\n tooltip: \"NATS subscription subject\",\n type: \"string\",\n placeholder: \"Enter NATS Subject\",\n },\n {\n name: \"username\",\n label: \"Username\",\n tooltip: \"NATS username\",\n type: \"string\",\n placeholder: \"Enter NATS Username\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"NATS password\",\n type: \"string\",\n placeholder: \"Enter NATS password\",\n },\n {\n name: \"token\",\n label: \"Token\",\n tooltip: \"NATS token\",\n type: \"string\",\n placeholder: \"Enter NATS token\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"Set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS Skip Verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"ping_interval\",\n label: \"Ping Interval\",\n tooltip: \"Client ping commands interval in s,m,h,d. Disabled by default\",\n type: \"duration\",\n placeholder: \"Enter Ping Interval\",\n },\n {\n name: \"streaming\",\n label: \"Streaming\",\n tooltip: \"Set to 'on', to use streaming NATS server\",\n type: \"on|off\",\n },\n {\n name: \"streaming_async\",\n label: \"Streaming async\",\n tooltip: \"Set to 'on', to enable asynchronous publish\",\n type: \"on|off\",\n },\n {\n name: \"streaming_max_pub_acks_in_flight\",\n label: \"Streaming max publish ACKS in flight\",\n tooltip: \"Number of messages to publish without waiting for ACKs\",\n type: \"number\",\n placeholder: \"Enter Streaming in flight value\",\n },\n {\n name: \"streaming_cluster_id\",\n label: \"Streaming Cluster ID\",\n tooltip: \"Unique ID for NATS streaming cluster\",\n type: \"string\",\n placeholder: \"Enter Streaming Cluster ID\",\n },\n {\n name: \"cert_authority\",\n label: \"Cert Authority\",\n tooltip: \"Path to certificate chain of the target NATS server\",\n type: \"string\",\n placeholder: \"Enter Cert Authority\",\n },\n {\n name: \"client_cert\",\n label: \"Client Cert\",\n tooltip: \"Client cert for NATS mTLS auth\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_key\",\n label: \"Client Key\",\n tooltip: \"Client cert key for NATS mTLS auth\",\n type: \"string\",\n placeholder: \"Enter Client Key\",\n },\n ...commonFields,\n ],\n [notifyElasticsearch]: [\n {\n name: \"url\",\n required: true,\n label: \"URL\",\n tooltip:\n \"Elasticsearch server's address, with optional authentication info\",\n type: \"url\",\n placeholder: \"Enter URL\",\n },\n {\n name: \"index\",\n required: true,\n label: \"Index\",\n tooltip:\n \"Elasticsearch index to store/update events, index is auto-created\",\n type: \"string\",\n placeholder: \"Enter Index\",\n },\n {\n name: \"format\",\n required: true,\n label: \"Format\",\n tooltip:\n \"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\",\n type: \"enum\",\n placeholder: \"Enter Format\",\n },\n ...commonFields,\n ],\n [notifyWebhooks]: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n tooltip:\n \"webhook server endpoint e.g. http://localhost:8080/minio/events\",\n type: \"url\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n label: \"Auth Token\",\n tooltip: \"opaque string or JWT authorization token\",\n type: \"string\",\n placeholder: \"Enter auth_token\",\n },\n ...commonFields,\n ],\n [notifyNsq]: [\n {\n name: \"nsqd_address\",\n required: true,\n label: \"NSQD Address\",\n tooltip: \"NSQ server address e.g. '127.0.0.1:4150'\",\n type: \"address\",\n placeholder: \"Enter nsqd_address\",\n },\n {\n name: \"topic\",\n required: true,\n label: \"Topic\",\n tooltip: \"NSQ topic\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS Skip Verify\",\n tooltip:\n 'trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n ...commonFields,\n ],\n};\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","useStyles","makeStyles","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","onClick","disabled","tooltip","icon","restProps","size","sx","margin","textDecoration","cursor","info","fontFamily","children","rest","borderWidth","borderStyle","opacity","contained","background","dark","light","button","clsx","pageContentStyles","contentSpacer","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","id","label","InputProps","e","target","mapDispatchToProps","setErrorSnackMessage","connector","connect","actionsTray","settingsCommon","containerForHeader","spacing","twHeight","minHeight","tableBlock","tableStyles","rightActionItems","whiteSpace","maxWidth","useState","records","setRecords","filter","setFilter","isLoading","setIsLoading","useEffect","api","then","res","resNotEndList","notification_endpoints","notificationTransform","catch","err","filteredRecords","b","service_name","indexOf","Fragment","history","IAM_PAGES","length","itemActions","columns","elementKey","renderFunction","status","style","red","entityName","idField","customPaperHeight","href","rel","justifyContent","alignContent","notifyPostgres","notifyMysql","notifyKafka","notifyAmqp","notifyMqtt","notifyRedis","notifyNats","notifyElasticsearch","notifyWebhooks","notifyNsq","notificationElements","map","element","service","account_id","servicesList","actionTrigger","targetTitle","logo","commonFields","name","required","type","removeEmptyFields","formFields","field","notificationEndpointsFields"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4414.5634e172.chunk.js b/portal-ui/build/static/js/4414.a9cb8b72.chunk.js similarity index 98% rename from portal-ui/build/static/js/4414.5634e172.chunk.js rename to portal-ui/build/static/js/4414.a9cb8b72.chunk.js index 2b205e4ce..8530602b7 100644 --- a/portal-ui/build/static/js/4414.5634e172.chunk.js +++ b/portal-ui/build/static/js/4414.a9cb8b72.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4414],{54639:function(e,a,n){n.d(a,{Z:function(){return g}});var t=n(70885),s=n(1413),r=n(72791),i=n(26181),l=n.n(i),o=n(61889),c=n(30829),d=n(20068),u=n(13400),m=n(99663),p=n(86711),f=n(11135),x=n(25787),h=n(23814),v=n(84570),Z=n(22512),j=n(80184),g=(0,x.Z)((function(e){return(0,f.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},h.YI),h.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},h.bV),{},{inputLabel:(0,s.Z)((0,s.Z)({},h.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,s.Z)((0,s.Z)({},h.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var a=e.label,n=e.classes,s=e.onChange,i=e.id,f=e.name,x=e.disabled,h=void 0!==x&&x,g=e.tooltip,b=void 0===g?"":g,C=e.required,S=e.error,N=void 0===S?"":S,k=e.accept,y=void 0===k?"":k,M=e.value,F=void 0===M?"":M,w=(0,r.useState)(!1),B=(0,t.Z)(w,2),E=B[0],z=B[1];return(0,j.jsx)(r.Fragment,{children:(0,j.jsxs)(o.ZP,{item:!0,xs:12,className:"".concat(n.fileInputField," ").concat(n.fieldBottom," ").concat(n.fieldContainer," ").concat(""!==N?n.errorInField:""),children:[""!==a&&(0,j.jsxs)(c.Z,{htmlFor:i,className:"".concat(""!==N?n.fieldLabelError:""," ").concat(n.inputLabel),children:[(0,j.jsxs)("span",{children:[a,C?"*":""]}),""!==b&&(0,j.jsx)("div",{className:n.tooltipContainer,children:(0,j.jsx)(d.Z,{title:b,placement:"top-start",children:(0,j.jsx)("div",{className:n.tooltip,children:(0,j.jsx)(v.Z,{})})})})]}),E||""===F?(0,j.jsxs)("div",{className:n.textBoxContainer,children:[(0,j.jsx)("input",{type:"file",name:f,onChange:function(e){var a=l()(e,"target.files[0].name","");!function(e,a){var n=e.target.files[0],t=new FileReader;t.readAsDataURL(n),t.onload=function(){var e=t.result;if(e){var n=e.toString().split("base64,");2===n.length&&a(n[1])}}}(e,(function(e){s(e,a)}))},accept:y,required:C,disabled:h,className:n.fileInputField}),""!==F&&(0,j.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){z(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,j.jsx)(p.Z,{})}),""!==N&&(0,j.jsx)(Z.Z,{errorMessage:N})]}):(0,j.jsxs)("div",{className:n.fileReselect,children:[(0,j.jsx)("div",{className:n.valueString,children:F}),(0,j.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){z(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,j.jsx)(m.Z,{})})]})]})})}))},56028:function(e,a,n){var t=n(70885),s=n(1413),r=n(72791),i=n(60364),l=n(13400),o=n(55646),c=n(5574),d=n(65661),u=n(39157),m=n(11135),p=n(25787),f=n(23814),x=n(42649),h=n(29823),v=n(28057),Z=n(80184),j=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});a.Z=(0,p.Z)((function(e){return(0,m.Z)((0,s.Z)((0,s.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(j((function(e){var a=e.onClose,n=e.modalOpen,i=e.title,m=e.children,p=e.classes,f=e.wideLimit,x=void 0===f||f,j=e.modalSnackMessage,g=e.noContentPadding,b=e.setModalSnackMessage,C=e.titleIcon,S=void 0===C?null:C,N=(0,r.useState)(!1),k=(0,t.Z)(N,2),y=k[0],M=k[1];(0,r.useEffect)((function(){b("")}),[b]),(0,r.useEffect)((function(){if(j){if(""===j.message)return void M(!1);"error"!==j.type&&M(!0)}}),[j]);var F=x?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},w="";return j&&(w=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(w=j.message)),(0,Z.jsxs)(c.Z,(0,s.Z)((0,s.Z)({open:n,classes:p},F),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&a()},className:p.root,children:[(0,Z.jsxs)(d.Z,{className:p.title,children:[(0,Z.jsxs)("div",{className:p.titleText,children:[S," ",i]}),(0,Z.jsx)("div",{className:p.closeContainer,children:(0,Z.jsx)(l.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:a,disableRipple:!0,size:"small",children:(0,Z.jsx)(h.Z,{})})})]}),(0,Z.jsx)(v.Z,{isModal:!0}),(0,Z.jsx)(o.Z,{open:y,className:p.snackBarModal,onClose:function(){M(!1),b("")},message:w,ContentProps:{className:"".concat(p.snackBar," ").concat(j&&"error"===j.type?p.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:g?"":p.content,children:m})]}))})))},34414:function(e,a,n){n.r(a);var t=n(70885),s=n(1413),r=n(72791),i=n(26181),l=n.n(i),o=n(60364),c=n(11135),d=n(25787),u=n(36151),m=n(40986),p=n(61889),f=n(23814),x=n(42649),h=n(21435),v=n(54639),Z=n(81207),j=n(56028),g=n(74833),b=n(80184),C=(0,o.$j)(null,{setModalErrorSnackMessage:x.zb});a.default=(0,d.Z)((function(e){return(0,c.Z)((0,s.Z)((0,s.Z)({buttonContainer:{textAlign:"right"}},f.oO),f.DF))}))(C((function(e){var a=e.open,n=e.closeModalAndRefresh,s=e.classes,i=e.tierData,o=e.setModalErrorSnackMessage,c=(0,r.useState)(!1),d=(0,t.Z)(c,2),f=d[0],x=d[1],C=(0,r.useState)(""),S=(0,t.Z)(C,2),N=S[0],k=S[1],y=(0,r.useState)(""),M=(0,t.Z)(y,2),F=M[0],w=M[1],B=(0,r.useState)(""),E=(0,t.Z)(B,2),z=E[0],K=E[1],R=(0,r.useState)(""),A=(0,t.Z)(R,2),I=A[0],L=A[1],P=(0,r.useState)(""),D=(0,t.Z)(P,2),V=D[0],W=D[1],O=(0,r.useState)(""),T=(0,t.Z)(O,2),_=T[0],H=T[1],U=(0,r.useState)(!0),Y=(0,t.Z)(U,2),q=Y[0],$=Y[1],Q=l()(i,"type",""),G=l()(i,"".concat(Q,".name"),"");(0,r.useEffect)((function(){var e=!0;"s3"===Q||"azure"===Q?""!==V&&""!==_||(e=!1):"gcs"===Q&&""===I&&(e=!1),$(e)}),[_,V,I,Q]);return(0,b.jsx)(j.Z,{modalOpen:a,titleIcon:(0,b.jsx)(g.mB,{}),onClose:function(){n(!1)},title:"Update Credentials - ".concat(Q," / ").concat(G),children:(0,b.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),x(!0),function(){var e={};"s3"===Q||"azure"===Q?e={access_key:V,secret_key:_}:"gcs"===Q&&(e={creds:I}),""!==G?Z.Z.invoke("PUT","/api/v1/admin/tiers/".concat(Q,"/").concat(G,"/credentials"),e).then((function(){x(!1),n(!0)})).catch((function(e){x(!1),o(e)})):o({errorMessage:"There was an error retrieving tier information",detailedError:""})}()},children:(0,b.jsxs)(p.ZP,{container:!0,children:[(0,b.jsxs)(p.ZP,{item:!0,xs:12,children:["s3"===Q&&(0,b.jsxs)(r.Fragment,{children:[(0,b.jsx)("div",{className:s.formFieldRow,children:(0,b.jsx)(h.Z,{id:"accessKey",name:"accessKey",label:"Access Key",placeholder:"Enter Access Key",value:N,onChange:function(e){k(e.target.value)}})}),(0,b.jsx)("div",{className:s.formFieldRow,children:(0,b.jsx)(h.Z,{id:"secretKey",name:"secretKey",label:"Secret Key",placeholder:"Enter Secret Key",value:F,onChange:function(e){w(e.target.value)}})})]}),"gcs"===Q&&(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(v.Z,{accept:".json",id:"creds",label:"Credentials",name:"creds",onChange:function(e,a){L(e),K(a)},value:z})}),"azure"===Q&&(0,b.jsxs)(r.Fragment,{children:[(0,b.jsx)("div",{className:s.formFieldRow,children:(0,b.jsx)(h.Z,{id:"accountName",name:"accountName",label:"Account Name",placeholder:"Enter Account Name",value:V,onChange:function(e){W(e.target.value)}})}),(0,b.jsx)("div",{className:s.formFieldRow,children:(0,b.jsx)(h.Z,{id:"accountKey",name:"accountKey",label:"Account Key",placeholder:"Enter Account Key",value:_,onChange:function(e){H(e.target.value)}})})]})]}),(0,b.jsx)(p.ZP,{item:!0,xs:12,className:s.buttonContainer,children:(0,b.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",disabled:f||!q,children:"Save"})}),f&&(0,b.jsx)(p.ZP,{item:!0,xs:12,children:(0,b.jsx)(m.Z,{})})]})})})})))},22512:function(e,a,n){var t=n(72791),s=n(20890),r=n(11135),i=n(25787),l=n(80184);a.Z=(0,i.Z)((function(e){var a;return(0,r.Z)({errorBlock:{color:(null===(a=e.palette)||void 0===a?void 0:a.error.main)||"#C83B51"}})}))((function(e){var a=e.classes,n=e.errorMessage,r=e.withBreak,i=void 0===r||r;return(0,l.jsxs)(t.Fragment,{children:[i&&(0,l.jsx)("br",{}),(0,l.jsx)(s.Z,{component:"p",variant:"body1",className:a.errorBlock,children:n})]})}))},99663:function(e,a,n){var t=n(95318);a.Z=void 0;var s=t(n(45649)),r=n(80184),i=(0,s.default)((0,r.jsx)("path",{d:"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"}),"AttachFile");a.Z=i},86711:function(e,a,n){var t=n(95318);a.Z=void 0;var s=t(n(45649)),r=n(80184),i=(0,s.default)((0,r.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");a.Z=i},29823:function(e,a,n){var t=n(95318);a.Z=void 0;var s=t(n(45649)),r=n(80184),i=(0,s.default)((0,r.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");a.Z=i}}]); -//# sourceMappingURL=4414.5634e172.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4414],{54639:function(e,a,n){n.d(a,{Z:function(){return g}});var t=n(70885),s=n(1413),r=n(72791),i=n(26181),l=n.n(i),o=n(61889),c=n(30829),d=n(20068),u=n(13400),m=n(99663),p=n(86711),f=n(11135),x=n(25787),h=n(23814),v=n(84570),Z=n(22512),j=n(80184),g=(0,x.Z)((function(e){return(0,f.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({},h.YI),h.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},h.bV),{},{inputLabel:(0,s.Z)((0,s.Z)({},h.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,s.Z)((0,s.Z)({},h.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var a=e.label,n=e.classes,s=e.onChange,i=e.id,f=e.name,x=e.disabled,h=void 0!==x&&x,g=e.tooltip,b=void 0===g?"":g,C=e.required,S=e.error,N=void 0===S?"":S,k=e.accept,y=void 0===k?"":k,M=e.value,F=void 0===M?"":M,w=(0,r.useState)(!1),B=(0,t.Z)(w,2),E=B[0],z=B[1];return(0,j.jsx)(r.Fragment,{children:(0,j.jsxs)(o.ZP,{item:!0,xs:12,className:"".concat(n.fileInputField," ").concat(n.fieldBottom," ").concat(n.fieldContainer," ").concat(""!==N?n.errorInField:""),children:[""!==a&&(0,j.jsxs)(c.Z,{htmlFor:i,className:"".concat(""!==N?n.fieldLabelError:""," ").concat(n.inputLabel),children:[(0,j.jsxs)("span",{children:[a,C?"*":""]}),""!==b&&(0,j.jsx)("div",{className:n.tooltipContainer,children:(0,j.jsx)(d.Z,{title:b,placement:"top-start",children:(0,j.jsx)("div",{className:n.tooltip,children:(0,j.jsx)(v.Z,{})})})})]}),E||""===F?(0,j.jsxs)("div",{className:n.textBoxContainer,children:[(0,j.jsx)("input",{type:"file",name:f,onChange:function(e){var a=l()(e,"target.files[0].name","");!function(e,a){var n=e.target.files[0],t=new FileReader;t.readAsDataURL(n),t.onload=function(){var e=t.result;if(e){var n=e.toString().split("base64,");2===n.length&&a(n[1])}}}(e,(function(e){s(e,a)}))},accept:y,required:C,disabled:h,className:n.fileInputField}),""!==F&&(0,j.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){z(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,j.jsx)(p.Z,{})}),""!==N&&(0,j.jsx)(Z.Z,{errorMessage:N})]}):(0,j.jsxs)("div",{className:n.fileReselect,children:[(0,j.jsx)("div",{className:n.valueString,children:F}),(0,j.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){z(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,j.jsx)(m.Z,{})})]})]})})}))},56028:function(e,a,n){var t=n(70885),s=n(1413),r=n(72791),i=n(60364),l=n(13400),o=n(55646),c=n(5574),d=n(65661),u=n(39157),m=n(11135),p=n(25787),f=n(23814),x=n(42649),h=n(29823),v=n(28057),Z=n(80184),j=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});a.Z=(0,p.Z)((function(e){return(0,m.Z)((0,s.Z)((0,s.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(j((function(e){var a=e.onClose,n=e.modalOpen,i=e.title,m=e.children,p=e.classes,f=e.wideLimit,x=void 0===f||f,j=e.modalSnackMessage,g=e.noContentPadding,b=e.setModalSnackMessage,C=e.titleIcon,S=void 0===C?null:C,N=(0,r.useState)(!1),k=(0,t.Z)(N,2),y=k[0],M=k[1];(0,r.useEffect)((function(){b("")}),[b]),(0,r.useEffect)((function(){if(j){if(""===j.message)return void M(!1);"error"!==j.type&&M(!0)}}),[j]);var F=x?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},w="";return j&&(w=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(w=j.message)),(0,Z.jsxs)(c.Z,(0,s.Z)((0,s.Z)({open:n,classes:p},F),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&a()},className:p.root,children:[(0,Z.jsxs)(d.Z,{className:p.title,children:[(0,Z.jsxs)("div",{className:p.titleText,children:[S," ",i]}),(0,Z.jsx)("div",{className:p.closeContainer,children:(0,Z.jsx)(l.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:a,disableRipple:!0,size:"small",children:(0,Z.jsx)(h.Z,{})})})]}),(0,Z.jsx)(v.Z,{isModal:!0}),(0,Z.jsx)(o.Z,{open:y,className:p.snackBarModal,onClose:function(){M(!1),b("")},message:w,ContentProps:{className:"".concat(p.snackBar," ").concat(j&&"error"===j.type?p.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:g?"":p.content,children:m})]}))})))},34414:function(e,a,n){n.r(a);var t=n(70885),s=n(1413),r=n(72791),i=n(26181),l=n.n(i),o=n(60364),c=n(11135),d=n(25787),u=n(36151),m=n(40986),p=n(61889),f=n(23814),x=n(42649),h=n(21435),v=n(54639),Z=n(81207),j=n(56028),g=n(13048),b=n(80184),C=(0,o.$j)(null,{setModalErrorSnackMessage:x.zb});a.default=(0,d.Z)((function(e){return(0,c.Z)((0,s.Z)((0,s.Z)({buttonContainer:{textAlign:"right"}},f.oO),f.DF))}))(C((function(e){var a=e.open,n=e.closeModalAndRefresh,s=e.classes,i=e.tierData,o=e.setModalErrorSnackMessage,c=(0,r.useState)(!1),d=(0,t.Z)(c,2),f=d[0],x=d[1],C=(0,r.useState)(""),S=(0,t.Z)(C,2),N=S[0],k=S[1],y=(0,r.useState)(""),M=(0,t.Z)(y,2),F=M[0],w=M[1],B=(0,r.useState)(""),E=(0,t.Z)(B,2),z=E[0],K=E[1],R=(0,r.useState)(""),A=(0,t.Z)(R,2),I=A[0],L=A[1],P=(0,r.useState)(""),D=(0,t.Z)(P,2),V=D[0],W=D[1],O=(0,r.useState)(""),T=(0,t.Z)(O,2),_=T[0],H=T[1],U=(0,r.useState)(!0),Y=(0,t.Z)(U,2),q=Y[0],$=Y[1],Q=l()(i,"type",""),G=l()(i,"".concat(Q,".name"),"");(0,r.useEffect)((function(){var e=!0;"s3"===Q||"azure"===Q?""!==V&&""!==_||(e=!1):"gcs"===Q&&""===I&&(e=!1),$(e)}),[_,V,I,Q]);return(0,b.jsx)(j.Z,{modalOpen:a,titleIcon:(0,b.jsx)(g.mB,{}),onClose:function(){n(!1)},title:"Update Credentials - ".concat(Q," / ").concat(G),children:(0,b.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),x(!0),function(){var e={};"s3"===Q||"azure"===Q?e={access_key:V,secret_key:_}:"gcs"===Q&&(e={creds:I}),""!==G?Z.Z.invoke("PUT","/api/v1/admin/tiers/".concat(Q,"/").concat(G,"/credentials"),e).then((function(){x(!1),n(!0)})).catch((function(e){x(!1),o(e)})):o({errorMessage:"There was an error retrieving tier information",detailedError:""})}()},children:(0,b.jsxs)(p.ZP,{container:!0,children:[(0,b.jsxs)(p.ZP,{item:!0,xs:12,children:["s3"===Q&&(0,b.jsxs)(r.Fragment,{children:[(0,b.jsx)("div",{className:s.formFieldRow,children:(0,b.jsx)(h.Z,{id:"accessKey",name:"accessKey",label:"Access Key",placeholder:"Enter Access Key",value:N,onChange:function(e){k(e.target.value)}})}),(0,b.jsx)("div",{className:s.formFieldRow,children:(0,b.jsx)(h.Z,{id:"secretKey",name:"secretKey",label:"Secret Key",placeholder:"Enter Secret Key",value:F,onChange:function(e){w(e.target.value)}})})]}),"gcs"===Q&&(0,b.jsx)(r.Fragment,{children:(0,b.jsx)(v.Z,{accept:".json",id:"creds",label:"Credentials",name:"creds",onChange:function(e,a){L(e),K(a)},value:z})}),"azure"===Q&&(0,b.jsxs)(r.Fragment,{children:[(0,b.jsx)("div",{className:s.formFieldRow,children:(0,b.jsx)(h.Z,{id:"accountName",name:"accountName",label:"Account Name",placeholder:"Enter Account Name",value:V,onChange:function(e){W(e.target.value)}})}),(0,b.jsx)("div",{className:s.formFieldRow,children:(0,b.jsx)(h.Z,{id:"accountKey",name:"accountKey",label:"Account Key",placeholder:"Enter Account Key",value:_,onChange:function(e){H(e.target.value)}})})]})]}),(0,b.jsx)(p.ZP,{item:!0,xs:12,className:s.buttonContainer,children:(0,b.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",disabled:f||!q,children:"Save"})}),f&&(0,b.jsx)(p.ZP,{item:!0,xs:12,children:(0,b.jsx)(m.Z,{})})]})})})})))},22512:function(e,a,n){var t=n(72791),s=n(20890),r=n(11135),i=n(25787),l=n(80184);a.Z=(0,i.Z)((function(e){var a;return(0,r.Z)({errorBlock:{color:(null===(a=e.palette)||void 0===a?void 0:a.error.main)||"#C83B51"}})}))((function(e){var a=e.classes,n=e.errorMessage,r=e.withBreak,i=void 0===r||r;return(0,l.jsxs)(t.Fragment,{children:[i&&(0,l.jsx)("br",{}),(0,l.jsx)(s.Z,{component:"p",variant:"body1",className:a.errorBlock,children:n})]})}))},99663:function(e,a,n){var t=n(95318);a.Z=void 0;var s=t(n(45649)),r=n(80184),i=(0,s.default)((0,r.jsx)("path",{d:"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"}),"AttachFile");a.Z=i},86711:function(e,a,n){var t=n(95318);a.Z=void 0;var s=t(n(45649)),r=n(80184),i=(0,s.default)((0,r.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");a.Z=i},29823:function(e,a,n){var t=n(95318);a.Z=void 0;var s=t(n(45649)),r=n(80184),i=(0,s.default)((0,r.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");a.Z=i}}]); +//# sourceMappingURL=4414.a9cb8b72.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4414.5634e172.chunk.js.map b/portal-ui/build/static/js/4414.a9cb8b72.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/4414.5634e172.chunk.js.map rename to portal-ui/build/static/js/4414.a9cb8b72.chunk.js.map index 50f5e8d84..edfb5decd 100644 --- a/portal-ui/build/static/js/4414.5634e172.chunk.js.map +++ b/portal-ui/build/static/js/4414.a9cb8b72.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4414.5634e172.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Configurations/TiersConfiguration/UpdateTierCredentialsModal.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/AttachFile.js","../node_modules/@mui/icons-material/Cancel.js","../node_modules/@mui/icons-material/Close.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, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n
    \n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
    \n ) : (\n
    \n
    {value}
    \n {\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
    \n )}\n \n
    \n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalBasic,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FileSelector from \"../../Common/FormComponents/FileSelector/FileSelector\";\nimport api from \"../../../../common/api\";\nimport { ITierElement } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { LockIcon } from \"../../../../icons\";\n\ninterface ITierCredentialsModal {\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => any;\n classes: any;\n tierData: ITierElement;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n ...modalBasic,\n ...formFieldStyles,\n });\n\nconst UpdateTierCredentialsModal = ({\n open,\n closeModalAndRefresh,\n classes,\n tierData,\n setModalErrorSnackMessage,\n}: ITierCredentialsModal) => {\n const [savingTiers, setSavingTiers] = useState(false);\n const [accessKey, setAccessKey] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n\n const [creds, setCreds] = useState(\"\");\n const [encodedCreds, setEncodedCreds] = useState(\"\");\n\n const [accountName, setAccountName] = useState(\"\");\n const [accountKey, setAccountKey] = useState(\"\");\n\n // Validations\n const [isFormValid, setIsFormValid] = useState(true);\n\n const type = get(tierData, \"type\", \"\");\n const name = get(tierData, `${type}.name`, \"\");\n\n useEffect(() => {\n let valid = true;\n\n if (type === \"s3\" || type === \"azure\") {\n if (accountName === \"\" || accountKey === \"\") {\n valid = false;\n }\n } else if (type === \"gcs\") {\n if (encodedCreds === \"\") {\n valid = false;\n }\n }\n setIsFormValid(valid);\n }, [accountKey, accountName, encodedCreds, type]);\n\n const addRecord = () => {\n let rules = {};\n\n if (type === \"s3\" || type === \"azure\") {\n rules = {\n access_key: accountName,\n secret_key: accountKey,\n };\n } else if (type === \"gcs\") {\n rules = {\n creds: encodedCreds,\n };\n }\n if (name !== \"\") {\n api\n .invoke(\"PUT\", `/api/v1/admin/tiers/${type}/${name}/credentials`, rules)\n .then(() => {\n setSavingTiers(false);\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setSavingTiers(false);\n setModalErrorSnackMessage(err);\n });\n } else {\n setModalErrorSnackMessage({\n errorMessage: \"There was an error retrieving tier information\",\n detailedError: \"\",\n });\n }\n };\n\n return (\n }\n onClose={() => {\n closeModalAndRefresh(false);\n }}\n title={`Update Credentials - ${type} / ${name}`}\n >\n ) => {\n e.preventDefault();\n setSavingTiers(true);\n addRecord();\n }}\n >\n \n \n {type === \"s3\" && (\n \n
    \n ) => {\n setAccessKey(e.target.value);\n }}\n />\n
    \n
    \n ) => {\n setSecretKey(e.target.value);\n }}\n />\n
    \n
    \n )}\n {type === \"gcs\" && (\n \n {\n setEncodedCreds(encodedValue);\n setCreds(fileName);\n }}\n value={creds}\n />\n \n )}\n {type === \"azure\" && (\n \n
    \n ) => {\n setAccountName(e.target.value);\n }}\n />\n
    \n
    \n ) => {\n setAccountKey(e.target.value);\n }}\n />\n
    \n
    \n )}\n
    \n \n \n Save\n \n \n {savingTiers && (\n \n \n \n )}\n
    \n \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(UpdateTierCredentialsModal));\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
    }\n \n {errorMessage}\n \n
    \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"\n}), 'AttachFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","fieldBasic","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","marginTop","fileInputField","margin","flexFlow","fileInputStyles","inputLabel","fontWeight","textBoxContainer","border","paddingLeft","label","classes","onChange","id","name","disabled","tooltip","required","error","accept","value","useState","showFileSelector","setShowSelector","Grid","item","xs","className","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","title","placement","HelpIcon","type","e","fileName","get","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","length","fileProcess","data","IconButton","color","component","onClick","disableRipple","disableFocusRipple","size","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","open","scroll","event","reason","root","titleText","closeContainer","closeButton","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","setModalErrorSnackMessage","buttonContainer","textAlign","modalBasic","formFieldStyles","closeModalAndRefresh","tierData","savingTiers","setSavingTiers","accessKey","setAccessKey","secretKey","setSecretKey","creds","setCreds","encodedCreds","setEncodedCreds","accountName","setAccountName","accountKey","setAccountKey","isFormValid","setIsFormValid","valid","noValidate","autoComplete","onSubmit","preventDefault","rules","access_key","secret_key","api","then","catch","err","detailedError","addRecord","container","Fragment","formFieldRow","placeholder","encodedValue","variant","errorBlock","palette","main","withBreak","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4414.a9cb8b72.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Configurations/TiersConfiguration/UpdateTierCredentialsModal.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/AttachFile.js","../node_modules/@mui/icons-material/Cancel.js","../node_modules/@mui/icons-material/Close.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, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n
    \n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
    \n ) : (\n
    \n
    {value}
    \n {\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
    \n )}\n \n
    \n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalBasic,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../actions\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FileSelector from \"../../Common/FormComponents/FileSelector/FileSelector\";\nimport api from \"../../../../common/api\";\nimport { ITierElement } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { LockIcon } from \"../../../../icons\";\n\ninterface ITierCredentialsModal {\n open: boolean;\n closeModalAndRefresh: (refresh: boolean) => any;\n classes: any;\n tierData: ITierElement;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n ...modalBasic,\n ...formFieldStyles,\n });\n\nconst UpdateTierCredentialsModal = ({\n open,\n closeModalAndRefresh,\n classes,\n tierData,\n setModalErrorSnackMessage,\n}: ITierCredentialsModal) => {\n const [savingTiers, setSavingTiers] = useState(false);\n const [accessKey, setAccessKey] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n\n const [creds, setCreds] = useState(\"\");\n const [encodedCreds, setEncodedCreds] = useState(\"\");\n\n const [accountName, setAccountName] = useState(\"\");\n const [accountKey, setAccountKey] = useState(\"\");\n\n // Validations\n const [isFormValid, setIsFormValid] = useState(true);\n\n const type = get(tierData, \"type\", \"\");\n const name = get(tierData, `${type}.name`, \"\");\n\n useEffect(() => {\n let valid = true;\n\n if (type === \"s3\" || type === \"azure\") {\n if (accountName === \"\" || accountKey === \"\") {\n valid = false;\n }\n } else if (type === \"gcs\") {\n if (encodedCreds === \"\") {\n valid = false;\n }\n }\n setIsFormValid(valid);\n }, [accountKey, accountName, encodedCreds, type]);\n\n const addRecord = () => {\n let rules = {};\n\n if (type === \"s3\" || type === \"azure\") {\n rules = {\n access_key: accountName,\n secret_key: accountKey,\n };\n } else if (type === \"gcs\") {\n rules = {\n creds: encodedCreds,\n };\n }\n if (name !== \"\") {\n api\n .invoke(\"PUT\", `/api/v1/admin/tiers/${type}/${name}/credentials`, rules)\n .then(() => {\n setSavingTiers(false);\n closeModalAndRefresh(true);\n })\n .catch((err: ErrorResponseHandler) => {\n setSavingTiers(false);\n setModalErrorSnackMessage(err);\n });\n } else {\n setModalErrorSnackMessage({\n errorMessage: \"There was an error retrieving tier information\",\n detailedError: \"\",\n });\n }\n };\n\n return (\n }\n onClose={() => {\n closeModalAndRefresh(false);\n }}\n title={`Update Credentials - ${type} / ${name}`}\n >\n ) => {\n e.preventDefault();\n setSavingTiers(true);\n addRecord();\n }}\n >\n \n \n {type === \"s3\" && (\n \n
    \n ) => {\n setAccessKey(e.target.value);\n }}\n />\n
    \n
    \n ) => {\n setSecretKey(e.target.value);\n }}\n />\n
    \n
    \n )}\n {type === \"gcs\" && (\n \n {\n setEncodedCreds(encodedValue);\n setCreds(fileName);\n }}\n value={creds}\n />\n \n )}\n {type === \"azure\" && (\n \n
    \n ) => {\n setAccountName(e.target.value);\n }}\n />\n
    \n
    \n ) => {\n setAccountKey(e.target.value);\n }}\n />\n
    \n
    \n )}\n
    \n \n \n Save\n \n \n {savingTiers && (\n \n \n \n )}\n
    \n \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(UpdateTierCredentialsModal));\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
    }\n \n {errorMessage}\n \n
    \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"\n}), 'AttachFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","fieldBasic","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","marginTop","fileInputField","margin","flexFlow","fileInputStyles","inputLabel","fontWeight","textBoxContainer","border","paddingLeft","label","classes","onChange","id","name","disabled","tooltip","required","error","accept","value","useState","showFileSelector","setShowSelector","Grid","item","xs","className","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","title","placement","HelpIcon","type","e","fileName","get","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","length","fileProcess","data","IconButton","color","component","onClick","disableRipple","disableFocusRipple","size","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","snackBarCommon","onClose","modalOpen","children","wideLimit","noContentPadding","titleIcon","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","open","scroll","event","reason","root","titleText","closeContainer","closeButton","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","setModalErrorSnackMessage","buttonContainer","textAlign","modalBasic","formFieldStyles","closeModalAndRefresh","tierData","savingTiers","setSavingTiers","accessKey","setAccessKey","secretKey","setSecretKey","creds","setCreds","encodedCreds","setEncodedCreds","accountName","setAccountName","accountKey","setAccountKey","isFormValid","setIsFormValid","valid","noValidate","autoComplete","onSubmit","preventDefault","rules","access_key","secret_key","api","then","catch","err","detailedError","addRecord","container","Fragment","formFieldRow","placeholder","encodedValue","variant","errorBlock","palette","main","withBreak","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4537.51d5373f.chunk.js b/portal-ui/build/static/js/4537.51d5373f.chunk.js new file mode 100644 index 000000000..d0e221918 --- /dev/null +++ b/portal-ui/build/static/js/4537.51d5373f.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4537],{40603:function(e,n,t){"use strict";var o=t(1413),a=t(45987),i=(t(72791),t(85531)),r=t(72455),s=t(80184),c=["onClick","text","disabled","tooltip","icon","className"],l=(0,r.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,o=n.color,a=e.palette.primary.main;return"primary"===o&&"contained"===t?a=e.palette.primary.contrastText:"primary"===o&&"outlined"===t?a=e.palette.primary.main:"secondary"===o&&(a=e.palette.secondary.main),a}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=l(e),t=e.onClick,r=e.text,d=void 0===r?"":r,u=e.disabled,p=void 0!==u&&u,m=e.tooltip,v=e.icon,h=void 0===v?null:v,f=e.className,Z=void 0===f?"":f,x=(0,a.Z)(e,c);return(0,s.jsxs)(i.Z,(0,o.Z)((0,o.Z)({className:Z,classes:n,tooltip:m||d,variant:"outlined",onClick:t,disabled:p,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},x),{},{children:[(0,s.jsx)("span",{children:d})," ",h]}))}},23626:function(e,n,t){"use strict";t.r(n);var o=t(70885),a=t(1413),i=t(72791),r=t(60364),s=t(11135),c=t(25787),l=t(23814),d=t(27391),u=t(61889),p=t(13048),m=t(42649),v=t(92983),h=t(63466),f=t(75460),Z=t(74900),x=t(40603),b=t(80184),y=(0,r.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo}}),{setErrorSnackMessage:m.Ih,setTenantDetailsLoad:f.V2});n.default=(0,c.Z)((function(e){return(0,s.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},l.oZ),l.OR),l.VX),(0,l.Bz)(e.spacing(4))))}))(y((function(e){var n=e.classes,t=e.tenant,a=e.loadingTenant,r=(e.setTenantDetailsLoad,e.history),s=(0,i.useState)([]),c=(0,o.Z)(s,2),l=c[0],m=c[1],f=(0,i.useState)(""),y=(0,o.Z)(f,2),j=y[0],g=y[1];(0,i.useEffect)((function(){if(t){var e=t.pools?t.pools:[];m(e)}}),[t]);var k=l.filter((function(e){return!!e.name.toLowerCase().includes(j.toLowerCase())}));return(0,b.jsxs)(i.Fragment,{children:[(0,b.jsx)("h1",{className:n.sectionTitle,children:"Pools"}),(0,b.jsxs)(u.ZP,{container:!0,children:[(0,b.jsxs)(u.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,b.jsx)(d.Z,{placeholder:"Filter",className:n.searchField,id:"search-resource",label:"",onChange:function(e){g(e.target.value)},InputProps:{disableUnderline:!0,startAdornment:(0,b.jsx)(h.Z,{position:"start",children:(0,b.jsx)(Z.Z,{})})},variant:"standard"}),(0,b.jsx)(x.Z,{tooltip:"Expand Tenant",text:"Expand Tenant",onClick:function(){r.push("/namespaces/".concat((null===t||void 0===t?void 0:t.namespace)||"","/tenants/").concat((null===t||void 0===t?void 0:t.name)||"","/add-pool"))},icon:(0,b.jsx)(p.dt,{}),color:"primary",variant:"contained"})]}),(0,b.jsx)(u.ZP,{item:!0,xs:12,children:(0,b.jsx)("br",{})}),(0,b.jsx)(u.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,b.jsx)(v.Z,{itemActions:[],columns:[{label:"Name",elementKey:"name"},{label:"Capacity",elementKey:"capacity"},{label:"# of Instances",elementKey:"servers"},{label:"# of Drives",elementKey:"volumes"}],isLoading:a,records:k,entityName:"Servers",idField:"name",customEmptyMessage:"No Pools found"})})]})]})})))},26759:function(e,n,t){"use strict";var o=t(95318);n.Z=void 0;var a=o(t(45649)),i=t(80184),r=(0,a.default)((0,i.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");n.Z=r},70366:function(e,n,t){"use strict";var o=t(95318);n.Z=void 0;var a=o(t(45649)),i=t(80184),r=(0,a.default)((0,i.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");n.Z=r},97911:function(e,n,t){"use strict";var o=t(95318);n.Z=void 0;var a=o(t(45649)),i=t(80184),r=(0,a.default)((0,i.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");n.Z=r},94454:function(e,n,t){"use strict";t.d(n,{Z:function(){return w}});var o=t(4942),a=t(63366),i=t(87462),r=t(72791),s=t(90767),c=t(12065),l=t(97278),d=t(76189),u=t(80184),p=(0,d.Z)((0,u.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),m=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),v=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox"),h=t(14036),f=t(93736),Z=t(47630),x=t(95159);function b(e){return(0,x.Z)("MuiCheckbox",e)}var y=(0,t(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),j=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],g=(0,Z.ZP)(l.Z,{shouldForwardProp:function(e){return(0,Z.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,t.indeterminate&&n.indeterminate,"default"!==t.color&&n["color".concat((0,h.Z)(t.color))]]}})((function(e){var n,t=e.theme,a=e.ownerState;return(0,i.Z)({color:t.palette.text.secondary},!a.disableRipple&&{"&:hover":{backgroundColor:(0,c.Fq)("default"===a.color?t.palette.action.active:t.palette[a.color].main,t.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==a.color&&(n={},(0,o.Z)(n,"&.".concat(y.checked,", &.").concat(y.indeterminate),{color:t.palette[a.color].main}),(0,o.Z)(n,"&.".concat(y.disabled),{color:t.palette.action.disabled}),n))})),k=(0,u.jsx)(m,{}),z=(0,u.jsx)(p,{}),P=(0,u.jsx)(v,{}),w=r.forwardRef((function(e,n){var t,o,c=(0,f.Z)({props:e,name:"MuiCheckbox"}),l=c.checkedIcon,d=void 0===l?k:l,p=c.color,m=void 0===p?"primary":p,v=c.icon,Z=void 0===v?z:v,x=c.indeterminate,y=void 0!==x&&x,w=c.indeterminateIcon,C=void 0===w?P:w,S=c.inputProps,E=c.size,L=void 0===E?"medium":E,I=(0,a.Z)(c,j),T=y?C:Z,M=y?C:d,N=(0,i.Z)({},c,{color:m,indeterminate:y,size:L}),V=function(e){var n=e.classes,t=e.indeterminate,o=e.color,a={root:["root",t&&"indeterminate","color".concat((0,h.Z)(o))]},r=(0,s.Z)(a,b,n);return(0,i.Z)({},n,r)}(N);return(0,u.jsx)(g,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":y},S),icon:r.cloneElement(T,{fontSize:null!=(t=T.props.fontSize)?t:L}),checkedIcon:r.cloneElement(M,{fontSize:null!=(o=M.props.fontSize)?o:L}),ownerState:N,ref:n},I,{classes:V}))}))},63466:function(e,n,t){"use strict";t.d(n,{Z:function(){return g}});var o=t(4942),a=t(63366),i=t(87462),r=t(72791),s=t(28182),c=t(90767),l=t(14036),d=t(20890),u=t(93840),p=t(52930),m=t(47630),v=t(95159);function h(e){return(0,v.Z)("MuiInputAdornment",e)}var f,Z=(0,t(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),x=t(93736),b=t(80184),y=["children","className","component","disablePointerEvents","disableTypography","position","variant"],j=(0,m.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["position".concat((0,l.Z)(t.position))],!0===t.disablePointerEvents&&n.disablePointerEvents,n[t.variant]]}})((function(e){var n=e.theme,t=e.ownerState;return(0,i.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:n.palette.action.active},"filled"===t.variant&&(0,o.Z)({},"&.".concat(Z.positionStart,"&:not(.").concat(Z.hiddenLabel,")"),{marginTop:16}),"start"===t.position&&{marginRight:8},"end"===t.position&&{marginLeft:8},!0===t.disablePointerEvents&&{pointerEvents:"none"})})),g=r.forwardRef((function(e,n){var t=(0,x.Z)({props:e,name:"MuiInputAdornment"}),o=t.children,m=t.className,v=t.component,Z=void 0===v?"div":v,g=t.disablePointerEvents,k=void 0!==g&&g,z=t.disableTypography,P=void 0!==z&&z,w=t.position,C=t.variant,S=(0,a.Z)(t,y),E=(0,p.Z)()||{},L=C;C&&E.variant,E&&!L&&(L=E.variant);var I=(0,i.Z)({},t,{hiddenLabel:E.hiddenLabel,size:E.size,disablePointerEvents:k,position:w,variant:L}),T=function(e){var n=e.classes,t=e.disablePointerEvents,o=e.hiddenLabel,a=e.position,i=e.size,r=e.variant,s={root:["root",t&&"disablePointerEvents",a&&"position".concat((0,l.Z)(a)),r,o&&"hiddenLabel",i&&"size".concat((0,l.Z)(i))]};return(0,c.Z)(s,h,n)}(I);return(0,b.jsx)(u.Z.Provider,{value:null,children:(0,b.jsx)(j,(0,i.Z)({as:Z,ownerState:I,className:(0,s.Z)(T.root,m),ref:n},S,{children:"string"!==typeof o||P?(0,b.jsxs)(r.Fragment,{children:["start"===w?f||(f=(0,b.jsx)("span",{className:"notranslate",children:"\u200b"})):null,o]}):(0,b.jsx)(d.Z,{color:"text.secondary",children:o})}))})}))},26769:function(e,n,t){var o=t(39066),a=t(93629),i=t(43141);e.exports=function(e){return"string"==typeof e||!a(e)&&i(e)&&"[object String]"==o(e)}}}]); +//# sourceMappingURL=4537.51d5373f.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4537.51d5373f.chunk.js.map b/portal-ui/build/static/js/4537.51d5373f.chunk.js.map new file mode 100644 index 000000000..2183acd6f --- /dev/null +++ b/portal-ui/build/static/js/4537.51d5373f.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/4537.51d5373f.chunk.js","mappings":"+OAmCMA,GAAYC,EAAAA,EAAAA,IAAW,SAACC,GAiB5B,MAAO,CACLC,KAAM,CACJC,QAAS,MACTC,MAAO,SAACC,GAAD,OAnBY,SAACA,GACtB,IAAQC,EAAmBD,EAAnBC,QAASF,EAAUC,EAAVD,MAEbG,EAAWN,EAAMO,QAAQC,QAAQC,KAUrC,MARc,YAAVN,GAAmC,cAAZE,EACzBC,EAAWN,EAAMO,QAAQC,QAAQE,aACd,YAAVP,GAAmC,aAAZE,EAChCC,EAAWN,EAAMO,QAAQC,QAAQC,KACd,cAAVN,IACTG,EAAWN,EAAMO,QAAQI,UAAUF,MAG9BH,EAM0BM,CAAeR,IAC9CS,YAAa,SAACT,GAAD,MACK,cAAhBA,EAAMD,MACFH,EAAMO,QAAQI,UAAUF,KACxBT,EAAMO,QAAQC,QAAQC,MAC5B,iBAAkB,CAChBK,MAAO,GACPC,WAAY,SAACX,GAAD,OAAyBA,EAAMY,KAAO,MAAQ,OAC1D,4BAA6B,CAC3BF,MAAO,GACPC,WAAY,wBA6CtB,IAtCqB,SAACX,GACpB,IAAMa,EAAUnB,EAAUM,GAGxBc,EAOEd,EAPFc,QADF,EAQId,EANFY,KAAAA,OAFF,MAES,GAFT,IAQIZ,EALFe,SAAAA,OAHF,SAIEC,EAIEhB,EAJFgB,QAJF,EAQIhB,EAHFiB,KAAAA,OALF,MAKS,KALT,IAQIjB,EAFFkB,UAAAA,OANF,MAMc,GANd,EAOKC,GAPL,OAQInB,EARJ,GAUA,OACE,UAAC,KAAD,gBACEkB,UAAWA,EACXL,QAASA,EACTG,QAASA,GAAWJ,EACpBX,QAAQ,WACRa,QAASA,EACTC,SAAUA,EACVhB,MAAM,YACNqB,KAAK,SACLC,GAAI,CACFC,OAAQ,oBACR,SAAU,CACRC,SAAU,GACV,4BAA6B,CAC3BC,QAAS,WAIXL,GAlBN,eAoBE,0BAAOP,IApBT,IAoBuBK,Q,wOC6CrBQ,GAAYC,EAAAA,EAAAA,KAND,SAACC,GAAD,MAAsB,CACrCC,cAAeD,EAAME,QAAQC,cAAcF,cAC3CG,eAAgBJ,EAAME,QAAQC,cAAcE,cAC5CC,OAAQN,EAAME,QAAQC,cAAcI,cAGF,CAClCC,qBAAAA,EAAAA,GACAC,qBAAAA,EAAAA,KAGF,WAAeC,EAAAA,EAAAA,IA5GA,SAACzC,GAAD,OACb0C,EAAAA,EAAAA,IAAa,kCACRC,EAAAA,IACAC,EAAAA,IACAC,EAAAA,KACAC,EAAAA,EAAAA,IAAmB9C,EAAM+C,QAAQ,QAuGxC,CAAkClB,GApGb,SAAC,GAMA,IALpBZ,EAKmB,EALnBA,QACAoB,EAImB,EAJnBA,OACAL,EAGmB,EAHnBA,cAEAgB,GACmB,EAFnBR,qBAEmB,EADnBQ,SAEA,GAA0BC,EAAAA,EAAAA,UAAkB,IAA5C,eAAOC,EAAP,KAAcC,EAAd,KACA,GAA4BF,EAAAA,EAAAA,UAAiB,IAA7C,eAAOG,EAAP,KAAeC,EAAf,MAEAC,EAAAA,EAAAA,YAAU,WACR,GAAIjB,EAAQ,CACV,IAAMkB,EAAYlB,EAAOa,MAAab,EAAOa,MAAZ,GACjCC,EAASI,MAEV,CAAClB,IAEJ,IAAMmB,EAAgBN,EAAME,QAAO,SAACK,GAClC,QAAIA,EAAKC,KAAKC,cAAcC,SAASR,EAAOO,kBAO9C,OACE,UAAC,EAAAE,SAAD,YACE,eAAIvC,UAAWL,EAAQ6C,aAAvB,oBACA,UAAC,KAAD,CAAMC,WAAS,EAAf,WACE,UAAC,KAAD,CAAMC,MAAI,EAACC,GAAI,GAAI3C,UAAWL,EAAQ2B,YAAtC,WACE,SAAC,IAAD,CACEsB,YAAY,SACZ5C,UAAWL,EAAQkD,YACnBC,GAAG,kBACHC,MAAM,GACNC,SAAU,SAACC,GACTlB,EAAUkB,EAAMC,OAAOC,QAEzBC,WAAY,CACVC,kBAAkB,EAClBC,gBACE,SAAC,IAAD,CAAgBC,SAAS,QAAzB,UACE,SAAC,IAAD,OAINxE,QAAQ,cAGV,SAAC,IAAD,CACEe,QAAS,gBACTJ,KAAM,gBACNE,QAAS,WACP8B,EAAQ8B,KAAR,uBACuB,OAANzC,QAAM,IAANA,OAAA,EAAAA,EAAQ0C,YAAa,GADtC,qBAEU,OAAN1C,QAAM,IAANA,OAAA,EAAAA,EAAQqB,OAAQ,GAFpB,eAMFrC,MAAM,SAAC,KAAD,IACNlB,MAAM,UACNE,QAAS,kBAGb,SAAC,KAAD,CAAM2D,MAAI,EAACC,GAAI,GAAf,UACE,qBAGF,SAAC,KAAD,CAAMD,MAAI,EAACC,GAAI,GAAI3C,UAAWL,EAAQ+D,WAAtC,UACE,SAAC,IAAD,CACEC,YAAa,GACbC,QAAS,CACP,CAAEb,MAAO,OAAQc,WAAY,QAC7B,CAAEd,MAAO,WAAYc,WAAY,YACjC,CAAEd,MAAO,iBAAkBc,WAAY,WACvC,CAAEd,MAAO,cAAec,WAAY,YAEtCC,UAAWpD,EACXqD,QAAS7B,EACT8B,WAAW,UACXC,QAAQ,OACRC,mBAAmB,gC,uCCvI3BC,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,mBACD,iBAEJN,EAAQ,EAAUG,G,uCCfdL,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,mBACD,eAEJN,EAAQ,EAAUG,G,uCCfdL,EAAyBC,EAAQ,OAKrCC,EAAQ,OAAU,EAElB,IAAIC,EAAiBH,EAAuBC,EAAQ,QAEhDG,EAAcH,EAAQ,OAEtBI,GAAW,EAAIF,EAAeG,UAAuB,EAAIF,EAAYG,KAAK,OAAQ,CACpFC,EAAG,sEACD,cAEJN,EAAQ,EAAUG,G,yKCVlB,GAAeI,EAAAA,EAAAA,IAA4BC,EAAAA,EAAAA,KAAK,OAAQ,CACtDF,EAAG,+FACD,wBCFJ,GAAeC,EAAAA,EAAAA,IAA4BC,EAAAA,EAAAA,KAAK,OAAQ,CACtDF,EAAG,wIACD,YCFJ,GAAeC,EAAAA,EAAAA,IAA4BC,EAAAA,EAAAA,KAAK,OAAQ,CACtDF,EAAG,kGACD,yB,4CCRG,SAASG,EAAwBC,GACtC,OAAOC,EAAAA,EAAAA,GAAqB,cAAeD,GAE7C,IACA,GADwBE,E,SAAAA,GAAuB,cAAe,CAAC,OAAQ,UAAW,WAAY,gBAAiB,eAAgB,mBCFzHC,EAAY,CAAC,cAAe,QAAS,OAAQ,gBAAiB,oBAAqB,aAAc,QA6BjGC,GAAeC,EAAAA,EAAAA,IAAOC,EAAAA,EAAY,CACtCC,kBAAmB,SAAAC,GAAI,OAAIC,EAAAA,EAAAA,IAAsBD,IAAkB,YAATA,GAC1DnD,KAAM,cACN2C,KAAM,OACNU,kBAAmB,SAAC3G,EAAO4G,GACzB,IACEC,EACE7G,EADF6G,WAEF,MAAO,CAACD,EAAO/G,KAAMgH,EAAWC,eAAiBF,EAAOE,cAAoC,YAArBD,EAAW9G,OAAuB6G,EAAO,QAAD,QAASG,EAAAA,EAAAA,GAAWF,EAAW9G,YAR7HuG,EAUlB,kBACD1G,EADC,EACDA,MACAiH,EAFC,EAEDA,WAFC,OAGGG,EAAAA,EAAAA,GAAS,CACbjH,MAAOH,EAAMO,QAAQS,KAAKL,YACxBsG,EAAWI,eAAiB,CAC9B,UAAW,CACTC,iBAAiBC,EAAAA,EAAAA,IAA2B,YAArBN,EAAW9G,MAAsBH,EAAMO,QAAQiH,OAAOC,OAASzH,EAAMO,QAAQ0G,EAAW9G,OAAOM,KAAMT,EAAMO,QAAQiH,OAAOE,cAEjJ,uBAAwB,CACtBJ,gBAAiB,iBAGC,YAArBL,EAAW9G,QAAX,2BACKwH,EAAAA,QADL,eACmCA,EAAAA,eAAkC,CACpExH,MAAOH,EAAMO,QAAQ0G,EAAW9G,OAAOM,QAFxC,qBAIKkH,EAAAA,UAA6B,CACjCxH,MAAOH,EAAMO,QAAQiH,OAAOrG,WAL7B,OASGyG,GAAkCzB,EAAAA,EAAAA,KAAK0B,EAAc,IAErDC,GAA2B3B,EAAAA,EAAAA,KAAK4B,EAA0B,IAE1DC,GAAwC7B,EAAAA,EAAAA,KAAK8B,EAA2B,IAoK9E,EAlK8BC,EAAAA,YAAiB,SAAkBC,EAASC,GACxE,IAAIC,EAAsBC,EAEpBlI,GAAQmI,EAAAA,EAAAA,GAAc,CAC1BnI,MAAO+H,EACPzE,KAAM,gBAGR,EAQItD,EAPFoI,YAAAA,OADF,MACgBZ,EADhB,IAQIxH,EANFD,MAAAA,OAFF,MAEU,UAFV,IAQIC,EALFiB,KAAMoH,OAHR,MAGmBX,EAHnB,IAQI1H,EAJF8G,cAAAA,OAJF,WAQI9G,EAHFsI,kBAAmBC,OALrB,MAK6CX,EAL7C,EAMEY,EAEExI,EAFFwI,WANF,EAQIxI,EADFoB,KAAAA,OAPF,MAOS,SAPT,EASMqH,GAAQC,EAAAA,EAAAA,GAA8B1I,EAAOoG,GAE7CnF,EAAO6F,EAAgByB,EAAwBF,EAC/CC,EAAoBxB,EAAgByB,EAAwBH,EAE5DvB,GAAaG,EAAAA,EAAAA,GAAS,GAAIhH,EAAO,CACrCD,MAAAA,EACA+G,cAAAA,EACA1F,KAAAA,IAGIP,EA/EkB,SAAAgG,GACxB,IACEhG,EAGEgG,EAHFhG,QACAiG,EAEED,EAFFC,cACA/G,EACE8G,EADF9G,MAEI4I,EAAQ,CACZ9I,KAAM,CAAC,OAAQiH,GAAiB,gBAA1B,gBAAmDC,EAAAA,EAAAA,GAAWhH,MAEhE6I,GAAkBC,EAAAA,EAAAA,GAAeF,EAAO3C,EAAyBnF,GACvE,OAAOmG,EAAAA,EAAAA,GAAS,GAAInG,EAAS+H,GAqEbE,CAAkBjC,GAClC,OAAoBd,EAAAA,EAAAA,KAAKM,GAAcW,EAAAA,EAAAA,GAAS,CAC9C+B,KAAM,WACNP,YAAYxB,EAAAA,EAAAA,GAAS,CACnB,qBAAsBF,GACrB0B,GACHvH,KAAmB6G,EAAAA,aAAmB7G,EAAM,CAC1CM,SAA0D,OAA/C0G,EAAuBhH,EAAKjB,MAAMuB,UAAoB0G,EAAuB7G,IAE1FgH,YAA0BN,EAAAA,aAAmBQ,EAAmB,CAC9D/G,SAAwE,OAA7D2G,EAAwBI,EAAkBtI,MAAMuB,UAAoB2G,EAAwB9G,IAEzGyF,WAAYA,EACZmB,IAAKA,GACJS,EAAO,CACR5H,QAASA,S,0MC/GN,SAASmI,EAA8B/C,GAC5C,OAAOC,EAAAA,EAAAA,GAAqB,oBAAqBD,GAEnD,ICDIgD,EDEJ,GAD8B9C,E,SAAAA,GAAuB,oBAAqB,CAAC,OAAQ,SAAU,WAAY,WAAY,gBAAiB,cAAe,uBAAwB,cAAe,c,sBCCtLC,EAAY,CAAC,WAAY,YAAa,YAAa,uBAAwB,oBAAqB,WAAY,WAqC5G8C,GAAqB5C,EAAAA,EAAAA,IAAO,MAAO,CACvChD,KAAM,oBACN2C,KAAM,OACNU,kBAzBwB,SAAC3G,EAAO4G,GAChC,IACEC,EACE7G,EADF6G,WAEF,MAAO,CAACD,EAAO/G,KAAM+G,EAAO,WAAD,QAAYG,EAAAA,EAAAA,GAAWF,EAAWpC,aAAkD,IAApCoC,EAAWsC,sBAAiCvC,EAAOuC,qBAAsBvC,EAAOC,EAAW5G,YAkB7IqG,EAIxB,gBACD1G,EADC,EACDA,MACAiH,EAFC,EAEDA,WAFC,OAGGG,EAAAA,EAAAA,GAAS,CACbxF,QAAS,OACT4H,OAAQ,SAERC,UAAW,MACXC,WAAY,SACZC,WAAY,SACZxJ,MAAOH,EAAMO,QAAQiH,OAAOC,QACJ,WAAvBR,EAAW5G,UAAX,sBAEKuJ,EAAAA,cAFL,kBAEkDA,EAAAA,YAFlD,KAEyF,CACxFC,UAAW,KAEY,UAAxB5C,EAAWpC,UAAwB,CAEpCiF,YAAa,GACY,QAAxB7C,EAAWpC,UAAsB,CAElC9D,WAAY,IACyB,IAApCkG,EAAWsC,sBAAiC,CAE7CQ,cAAe,YA4HjB,EA1HoC7B,EAAAA,YAAiB,SAAwBC,EAASC,GACpF,IAAMhI,GAAQmI,EAAAA,EAAAA,GAAc,CAC1BnI,MAAO+H,EACPzE,KAAM,sBAINsG,EAOE5J,EAPF4J,SACA1I,EAMElB,EANFkB,UAFF,EAQIlB,EALF6J,UAAAA,OAHF,MAGc,MAHd,IAQI7J,EAJFmJ,qBAAAA,OAJF,WAQInJ,EAHF8J,kBAAAA,OALF,SAMErF,EAEEzE,EAFFyE,SACSsF,EACP/J,EADFC,QAEIwI,GAAQC,EAAAA,EAAAA,GAA8B1I,EAAOoG,GAE7C4D,GAAiBC,EAAAA,EAAAA,MAAoB,GACvChK,EAAU8J,EAEVA,GAAeC,EAAe/J,QAQ9B+J,IAAmB/J,IACrBA,EAAU+J,EAAe/J,SAG3B,IAAM4G,GAAaG,EAAAA,EAAAA,GAAS,GAAIhH,EAAO,CACrCkK,YAAaF,EAAeE,YAC5B9I,KAAM4I,EAAe5I,KACrB+H,qBAAAA,EACA1E,SAAAA,EACAxE,QAAAA,IAGIY,EArFkB,SAAAgG,GACxB,IACEhG,EAMEgG,EANFhG,QACAsI,EAKEtC,EALFsC,qBACAe,EAIErD,EAJFqD,YACAzF,EAGEoC,EAHFpC,SACArD,EAEEyF,EAFFzF,KACAnB,EACE4G,EADF5G,QAEI0I,EAAQ,CACZ9I,KAAM,CAAC,OAAQsJ,GAAwB,uBAAwB1E,GAAY,WAAJ,QAAesC,EAAAA,EAAAA,GAAWtC,IAAaxE,EAASiK,GAAe,cAAe9I,GAAQ,OAAJ,QAAW2F,EAAAA,EAAAA,GAAW3F,MAEjL,OAAOyH,EAAAA,EAAAA,GAAeF,EAAOK,EAA+BnI,GAyE5CiI,CAAkBjC,GAClC,OAAoBd,EAAAA,EAAAA,KAAKoE,EAAAA,EAAAA,SAA6B,CACpD9F,MAAO,KACPuF,UAAuB7D,EAAAA,EAAAA,KAAKmD,GAAoBlC,EAAAA,EAAAA,GAAS,CACvDoD,GAAIP,EACJhD,WAAYA,EACZ3F,WAAWmJ,EAAAA,EAAAA,GAAKxJ,EAAQhB,KAAMqB,GAC9B8G,IAAKA,GACJS,EAAO,CACRmB,SAA8B,kBAAbA,GAA0BE,GAGzBQ,EAAAA,EAAAA,MAAMxC,EAAAA,SAAgB,CACtC8B,SAAU,CAAc,UAAbnF,EAEXwE,IAAUA,GAAqBlD,EAAAA,EAAAA,KAAK,OAAQ,CAC1C7E,UAAW,cACX0I,SAAU,YACN,KAAMA,MAT8D7D,EAAAA,EAAAA,KAAKwE,EAAAA,EAAY,CAC3FxK,MAAO,iBACP6J,SAAUA,a,sBC3HlB,IAAIY,EAAalF,EAAQ,OACrBmF,EAAUnF,EAAQ,OAClBoF,EAAepF,EAAQ,OA2B3BqF,EAAOpF,QALP,SAAkBlB,GAChB,MAAuB,iBAATA,IACVoG,EAAQpG,IAAUqG,EAAarG,IArBrB,mBAqB+BmG,EAAWnG","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Tenants/TenantDetails/PoolsSummary.tsx","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/lodash/isString.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n actionsTray,\n containerForHeader,\n tableStyles,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { TextField } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport { AddIcon } from \"../../../../icons\";\nimport { IPool, ITenant } from \"../ListTenants/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport { AppState } from \"../../../../store\";\nimport { setTenantDetailsLoad } from \"../actions\";\nimport SearchIcon from \"../../../../icons/SearchIcon\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\ninterface IPoolsSummary {\n classes: any;\n tenant: ITenant | null;\n loadingTenant: boolean;\n history: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...actionsTray,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst PoolsSummary = ({\n classes,\n tenant,\n loadingTenant,\n setTenantDetailsLoad,\n history,\n}: IPoolsSummary) => {\n const [pools, setPools] = useState([]);\n const [filter, setFilter] = useState(\"\");\n\n useEffect(() => {\n if (tenant) {\n const resPools = !tenant.pools ? [] : tenant.pools;\n setPools(resPools);\n }\n }, [tenant]);\n\n const filteredPools = pools.filter((pool) => {\n if (pool.name.toLowerCase().includes(filter.toLowerCase())) {\n return true;\n }\n\n return false;\n });\n\n return (\n \n

    Pools

    \n \n \n {\n setFilter(event.target.value);\n }}\n InputProps={{\n disableUnderline: true,\n startAdornment: (\n \n \n \n ),\n }}\n variant=\"standard\"\n />\n\n {\n history.push(\n `/namespaces/${tenant?.namespace || \"\"}/tenants/${\n tenant?.name || \"\"\n }/add-pool`\n );\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n \n
    \n
    \n\n \n \n \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n selectedTenant: state.tenants.tenantDetails.currentTenant,\n tenant: state.tenants.tenantDetails.tenantInfo,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setTenantDetailsLoad,\n});\n\nexport default withStyles(styles)(connector(PoolsSummary));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\n\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: theme.palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ?\n /* notranslate needed while Google Translate will not fix zero-width space issue */\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n"],"names":["useStyles","makeStyles","theme","root","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","width","marginLeft","text","classes","onClick","disabled","tooltip","icon","className","restProps","size","sx","border","fontSize","display","connector","connect","state","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenant","tenantInfo","setErrorSnackMessage","setTenantDetailsLoad","withStyles","createStyles","tenantDetailsStyles","actionsTray","tableStyles","containerForHeader","spacing","history","useState","pools","setPools","filter","setFilter","useEffect","resPools","filteredPools","pool","name","toLowerCase","includes","Fragment","sectionTitle","container","item","xs","placeholder","searchField","id","label","onChange","event","target","value","InputProps","disableUnderline","startAdornment","position","push","namespace","tableBlock","itemActions","columns","elementKey","isLoading","records","entityName","idField","customEmptyMessage","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","createSvgIcon","_jsx","getCheckboxUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CheckboxRoot","styled","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","overridesResolver","styles","ownerState","indeterminate","capitalize","_extends","disableRipple","backgroundColor","alpha","action","active","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","React","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","type","getInputAdornmentUtilityClass","_span","InputAdornmentRoot","disablePointerEvents","height","maxHeight","alignItems","whiteSpace","inputAdornmentClasses","marginTop","marginRight","pointerEvents","children","component","disableTypography","variantProp","muiFormControl","useFormControl","hiddenLabel","FormControlContext","as","clsx","_jsxs","Typography","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/455.0ac20914.chunk.js b/portal-ui/build/static/js/455.f7e76ee0.chunk.js similarity index 96% rename from portal-ui/build/static/js/455.0ac20914.chunk.js rename to portal-ui/build/static/js/455.f7e76ee0.chunk.js index 77ef99b5a..b9907cf0a 100644 --- a/portal-ui/build/static/js/455.0ac20914.chunk.js +++ b/portal-ui/build/static/js/455.f7e76ee0.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[455],{80455:function(n,e,t){t.r(e);var o=t(70885),i=(t(72791),t(26181)),s=t.n(i),c=t(60364),r=t(51691),a=t(42649),l=t(9505),u=t(23508),d=t(74833),f=t(80184),v=(0,c.$j)(null,{setErrorSnackMessage:a.Ih});e.default=v((function(n){var e=n.closeDeleteModalAndRefresh,t=n.deleteOpen,i=n.selectedBucket,c=n.bucketEvent,a=n.setErrorSnackMessage,v=(0,l.Z)((function(){return e(!0)}),(function(n){return a(n)})),m=(0,o.Z)(v,2),Z=m[0],x=m[1];if(!i)return null;return(0,f.jsx)(u.Z,{title:"Delete Event",confirmText:"Delete",isOpen:t,titleIcon:(0,f.jsx)(d.Nv,{}),isLoading:Z,onConfirm:function(){if(null!==c){var n=s()(c,"events",[]),e=s()(c,"prefix",""),t=s()(c,"suffix","");x("DELETE","/api/v1/buckets/".concat(i,"/events/").concat(c.arn),{events:n,prefix:e,suffix:t})}},onClose:function(){return e(!1)},confirmationContent:(0,f.jsx)(r.Z,{children:"Are you sure you want to delete this event?"})})}))},9505:function(n,e,t){var o=t(70885),i=t(72791),s=t(81207);e.Z=function(n,e){var t=(0,i.useState)(!1),c=(0,o.Z)(t,2),r=c[0],a=c[1];return[r,function(t,o,i){a(!0),s.Z.invoke(t,o,i).then((function(e){a(!1),n(e)})).catch((function(n){a(!1),e(n)}))}]}},23508:function(n,e,t){var o=t(1413),i=t(72791),s=t(5574),c=t(65661),r=t(39157),a=t(97123),l=t(36151),u=t(59860),d=t(13400),f=t(29823),v=t(11135),m=t(25787),Z=t(23814),x=t(80184);e.Z=(0,m.Z)((function(n){return(0,v.Z)((0,o.Z)({},Z.Qw))}))((function(n){var e=n.isOpen,t=void 0!==e&&e,v=n.onClose,m=n.onCancel,Z=n.onConfirm,p=n.classes,h=void 0===p?{}:p,C=n.title,j=void 0===C?"":C,k=n.isLoading,b=n.confirmationContent,N=n.cancelText,g=void 0===N?"Cancel":N,E=n.confirmText,y=void 0===E?"Confirm":E,B=n.confirmButtonProps,M=void 0===B?{}:B,T=n.cancelButtonProps,w=void 0===T?{}:T,D=n.titleIcon,I=void 0===D?null:D;return(0,x.jsxs)(s.Z,{open:t,onClose:function(n,e){"backdropClick"!==e&&v()},className:h.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,x.jsxs)(c.Z,{className:h.title,children:[(0,x.jsxs)("div",{className:h.titleText,children:[I," ",j]}),(0,x.jsx)("div",{className:h.closeContainer,children:(0,x.jsx)(d.Z,{"aria-label":"close",className:h.closeButton,onClick:v,disableRipple:!0,size:"small",children:(0,x.jsx)(f.Z,{})})})]}),(0,x.jsx)(r.Z,{className:h.content,children:b}),(0,x.jsxs)(a.Z,{className:h.actions,children:[(0,x.jsx)(l.Z,(0,o.Z)((0,o.Z)({className:h.cancelButton,onClick:m||v,disabled:k,type:"button"},w),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:g})),(0,x.jsx)(u.Z,(0,o.Z)((0,o.Z)({className:h.confirmButton,type:"button",onClick:Z,loading:k,disabled:k,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,x.jsx)(i.Fragment,{}),autoFocus:!0,id:"confirm-ok"},M),{},{children:y}))]})]})}))},29823:function(n,e,t){var o=t(95318);e.Z=void 0;var i=o(t(45649)),s=t(80184),c=(0,i.default)((0,s.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");e.Z=c}}]); -//# sourceMappingURL=455.0ac20914.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[455],{80455:function(n,e,t){t.r(e);var o=t(70885),i=(t(72791),t(26181)),s=t.n(i),c=t(60364),r=t(51691),a=t(42649),l=t(9505),u=t(23508),d=t(13048),f=t(80184),v=(0,c.$j)(null,{setErrorSnackMessage:a.Ih});e.default=v((function(n){var e=n.closeDeleteModalAndRefresh,t=n.deleteOpen,i=n.selectedBucket,c=n.bucketEvent,a=n.setErrorSnackMessage,v=(0,l.Z)((function(){return e(!0)}),(function(n){return a(n)})),m=(0,o.Z)(v,2),Z=m[0],x=m[1];if(!i)return null;return(0,f.jsx)(u.Z,{title:"Delete Event",confirmText:"Delete",isOpen:t,titleIcon:(0,f.jsx)(d.Nv,{}),isLoading:Z,onConfirm:function(){if(null!==c){var n=s()(c,"events",[]),e=s()(c,"prefix",""),t=s()(c,"suffix","");x("DELETE","/api/v1/buckets/".concat(i,"/events/").concat(c.arn),{events:n,prefix:e,suffix:t})}},onClose:function(){return e(!1)},confirmationContent:(0,f.jsx)(r.Z,{children:"Are you sure you want to delete this event?"})})}))},9505:function(n,e,t){var o=t(70885),i=t(72791),s=t(81207);e.Z=function(n,e){var t=(0,i.useState)(!1),c=(0,o.Z)(t,2),r=c[0],a=c[1];return[r,function(t,o,i){a(!0),s.Z.invoke(t,o,i).then((function(e){a(!1),n(e)})).catch((function(n){a(!1),e(n)}))}]}},23508:function(n,e,t){var o=t(1413),i=t(72791),s=t(5574),c=t(65661),r=t(39157),a=t(97123),l=t(36151),u=t(59860),d=t(13400),f=t(29823),v=t(11135),m=t(25787),Z=t(23814),x=t(80184);e.Z=(0,m.Z)((function(n){return(0,v.Z)((0,o.Z)({},Z.Qw))}))((function(n){var e=n.isOpen,t=void 0!==e&&e,v=n.onClose,m=n.onCancel,Z=n.onConfirm,p=n.classes,h=void 0===p?{}:p,C=n.title,j=void 0===C?"":C,k=n.isLoading,b=n.confirmationContent,N=n.cancelText,g=void 0===N?"Cancel":N,E=n.confirmText,y=void 0===E?"Confirm":E,B=n.confirmButtonProps,M=void 0===B?{}:B,T=n.cancelButtonProps,w=void 0===T?{}:T,D=n.titleIcon,I=void 0===D?null:D;return(0,x.jsxs)(s.Z,{open:t,onClose:function(n,e){"backdropClick"!==e&&v()},className:h.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,x.jsxs)(c.Z,{className:h.title,children:[(0,x.jsxs)("div",{className:h.titleText,children:[I," ",j]}),(0,x.jsx)("div",{className:h.closeContainer,children:(0,x.jsx)(d.Z,{"aria-label":"close",className:h.closeButton,onClick:v,disableRipple:!0,size:"small",children:(0,x.jsx)(f.Z,{})})})]}),(0,x.jsx)(r.Z,{className:h.content,children:b}),(0,x.jsxs)(a.Z,{className:h.actions,children:[(0,x.jsx)(l.Z,(0,o.Z)((0,o.Z)({className:h.cancelButton,onClick:m||v,disabled:k,type:"button"},w),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:g})),(0,x.jsx)(u.Z,(0,o.Z)((0,o.Z)({className:h.confirmButton,type:"button",onClick:Z,loading:k,disabled:k,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,x.jsx)(i.Fragment,{}),autoFocus:!0,id:"confirm-ok"},M),{},{children:y}))]})]})}))},29823:function(n,e,t){var o=t(95318);e.Z=void 0;var i=o(t(45649)),s=t(80184),c=(0,i.default)((0,s.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");e.Z=c}}]); +//# sourceMappingURL=455.f7e76ee0.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/455.0ac20914.chunk.js.map b/portal-ui/build/static/js/455.f7e76ee0.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/455.0ac20914.chunk.js.map rename to portal-ui/build/static/js/455.f7e76ee0.chunk.js.map index f2c7c791f..ae9c7a279 100644 --- a/portal-ui/build/static/js/455.0ac20914.chunk.js.map +++ b/portal-ui/build/static/js/455.f7e76ee0.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/455.0ac20914.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/DeleteEvent.tsx","screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","../node_modules/@mui/icons-material/Close.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 get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { BucketEvent } from \"../types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\n\ninterface IDeleteEventProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedBucket: string;\n bucketEvent: BucketEvent | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteEvent = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n bucketEvent,\n setErrorSnackMessage,\n}: IDeleteEventProps) => {\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedBucket) {\n return null;\n }\n\n const onConfirmDelete = () => {\n if (bucketEvent === null) {\n return;\n }\n\n const events = get(bucketEvent, \"events\", []);\n const prefix = get(bucketEvent, \"prefix\", \"\");\n const suffix = get(bucketEvent, \"suffix\", \"\");\n\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/buckets/${selectedBucket}/events/${bucketEvent.arn}`,\n {\n events,\n prefix,\n suffix,\n }\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 this event?\n \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default connector(DeleteEvent);\n","import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["connector","connect","setErrorSnackMessage","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","bucketEvent","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","events","get","prefix","suffix","arn","onClose","confirmationContent","onSuccess","onError","useState","setIsLoading","method","url","data","api","then","res","catch","withStyles","theme","createStyles","deleteDialogStyles","onCancel","classes","cancelText","confirmButtonProps","cancelButtonProps","open","event","reason","className","root","sx","padding","titleText","closeContainer","closeButton","onClick","disableRipple","size","content","actions","cancelButton","disabled","type","variant","color","id","confirmButton","loading","loadingPosition","startIcon","autoFocus","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/455.f7e76ee0.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/DeleteEvent.tsx","screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","../node_modules/@mui/icons-material/Close.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 get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { BucketEvent } from \"../types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\n\ninterface IDeleteEventProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedBucket: string;\n bucketEvent: BucketEvent | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteEvent = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n bucketEvent,\n setErrorSnackMessage,\n}: IDeleteEventProps) => {\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedBucket) {\n return null;\n }\n\n const onConfirmDelete = () => {\n if (bucketEvent === null) {\n return;\n }\n\n const events = get(bucketEvent, \"events\", []);\n const prefix = get(bucketEvent, \"prefix\", \"\");\n const suffix = get(bucketEvent, \"suffix\", \"\");\n\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/buckets/${selectedBucket}/events/${bucketEvent.arn}`,\n {\n events,\n prefix,\n suffix,\n }\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 this event?\n \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default connector(DeleteEvent);\n","import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["connector","connect","setErrorSnackMessage","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","bucketEvent","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","events","get","prefix","suffix","arn","onClose","confirmationContent","onSuccess","onError","useState","setIsLoading","method","url","data","api","then","res","catch","withStyles","theme","createStyles","deleteDialogStyles","onCancel","classes","cancelText","confirmButtonProps","cancelButtonProps","open","event","reason","className","root","sx","padding","titleText","closeContainer","closeButton","onClick","disableRipple","size","content","actions","cancelButton","disabled","type","variant","color","id","confirmButton","loading","loadingPosition","startIcon","autoFocus","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4619.ed29e211.chunk.js b/portal-ui/build/static/js/4619.95265a73.chunk.js similarity index 97% rename from portal-ui/build/static/js/4619.ed29e211.chunk.js rename to portal-ui/build/static/js/4619.95265a73.chunk.js index 7eeee7235..1bce17613 100644 --- a/portal-ui/build/static/js/4619.ed29e211.chunk.js +++ b/portal-ui/build/static/js/4619.95265a73.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4619],{94619:function(e,a,s){s.r(a);var n=s(70885),t=s(1413),l=s(72791),o=s(56028),i=s(61889),r=s(36151),c=s(21435),d=s(11135),u=s(25787),m=s(23814),f=s(60364),p=s(81207),Z=s(42649),x=s(90673),h=s(74833),v=s(80184),g=(0,f.$j)((function(e){return{session:e.console.session}}),{setErrorSnackMessage:Z.Ih});a.default=(0,u.Z)((function(e){return(0,d.Z)((0,t.Z)((0,t.Z)({},m.DF),m.ID))}))(g((function(e){var a=e.modalOpen,s=e.onClose,t=e.classes,d=e.bucket,u=(0,l.useState)(""),m=(0,n.Z)(u,2),f=m[0],g=m[1],j=(0,l.useState)("readonly"),k=(0,n.Z)(j,2),C=k[0],b=k[1];return(0,v.jsx)(o.Z,{modalOpen:a,title:"Add Access Rule",onClose:s,titleIcon:(0,v.jsx)(h.sR,{}),children:(0,v.jsxs)(i.ZP,{container:!0,children:[(0,v.jsx)(i.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,v.jsx)(c.Z,{value:f,label:"Prefix",id:"prefix",name:"prefix",placeholder:"Enter Prefix",onChange:function(e){g(e.target.value)}})}),(0,v.jsx)(i.ZP,{item:!0,xs:12,children:(0,v.jsx)(x.Z,{id:"access",name:"Access",onChange:function(e){b(e.target.value)},label:"Access",value:C,options:[{label:"readonly",value:"readonly"},{label:"writeonly",value:"writeonly"},{label:"readwrite",value:"readwrite"}],disabled:!1})}),(0,v.jsxs)(i.ZP,{item:!0,xs:12,className:t.modalButtonBar,children:[(0,v.jsx)(r.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){g(""),b("readonly")},children:"Clear"}),(0,v.jsx)(r.Z,{type:"submit",variant:"contained",color:"primary",disabled:""===f.trim(),onClick:function(){p.Z.invoke("PUT","/api/v1/bucket/".concat(d,"/access-rules"),{prefix:f,access:C}).then((function(e){s()})).catch((function(e){(0,Z.Ih)(e),s()}))},children:"Save"})]})]})})})))},56028:function(e,a,s){var n=s(70885),t=s(1413),l=s(72791),o=s(60364),i=s(13400),r=s(55646),c=s(5574),d=s(65661),u=s(39157),m=s(11135),f=s(25787),p=s(23814),Z=s(42649),x=s(29823),h=s(28057),v=s(80184),g=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:Z.MK});a.Z=(0,f.Z)((function(e){return(0,m.Z)((0,t.Z)((0,t.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))(g((function(e){var a=e.onClose,s=e.modalOpen,o=e.title,m=e.children,f=e.classes,p=e.wideLimit,Z=void 0===p||p,g=e.modalSnackMessage,j=e.noContentPadding,k=e.setModalSnackMessage,C=e.titleIcon,b=void 0===C?null:C,y=(0,l.useState)(!1),M=(0,n.Z)(y,2),S=M[0],N=M[1];(0,l.useEffect)((function(){k("")}),[k]),(0,l.useEffect)((function(){if(g){if(""===g.message)return void N(!1);"error"!==g.type&&N(!0)}}),[g]);var w=Z?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},P="";return g&&(P=g.detailedErrorMsg,(""===g.detailedErrorMsg||g.detailedErrorMsg.length<5)&&(P=g.message)),(0,v.jsxs)(c.Z,(0,t.Z)((0,t.Z)({open:s,classes:f},w),{},{scroll:"paper",onClose:function(e,s){"backdropClick"!==s&&a()},className:f.root,children:[(0,v.jsxs)(d.Z,{className:f.title,children:[(0,v.jsxs)("div",{className:f.titleText,children:[b," ",o]}),(0,v.jsx)("div",{className:f.closeContainer,children:(0,v.jsx)(i.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:a,disableRipple:!0,size:"small",children:(0,v.jsx)(x.Z,{})})})]}),(0,v.jsx)(h.Z,{isModal:!0}),(0,v.jsx)(r.Z,{open:S,className:f.snackBarModal,onClose:function(){N(!1),k("")},message:P,ContentProps:{className:"".concat(f.snackBar," ").concat(g&&"error"===g.type?f.errorSnackBar:"")},autoHideDuration:g&&"error"===g.type?1e4:5e3}),(0,v.jsx)(u.Z,{className:j?"":f.content,children:m})]}))})))},29823:function(e,a,s){var n=s(95318);a.Z=void 0;var t=n(s(45649)),l=s(80184),o=(0,t.default)((0,l.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");a.Z=o}}]); -//# sourceMappingURL=4619.ed29e211.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4619],{94619:function(e,a,s){s.r(a);var n=s(70885),t=s(1413),l=s(72791),o=s(56028),i=s(61889),r=s(36151),c=s(21435),d=s(11135),u=s(25787),m=s(23814),f=s(60364),p=s(81207),Z=s(42649),x=s(90673),h=s(13048),v=s(80184),g=(0,f.$j)((function(e){return{session:e.console.session}}),{setErrorSnackMessage:Z.Ih});a.default=(0,u.Z)((function(e){return(0,d.Z)((0,t.Z)((0,t.Z)({},m.DF),m.ID))}))(g((function(e){var a=e.modalOpen,s=e.onClose,t=e.classes,d=e.bucket,u=(0,l.useState)(""),m=(0,n.Z)(u,2),f=m[0],g=m[1],j=(0,l.useState)("readonly"),k=(0,n.Z)(j,2),C=k[0],b=k[1];return(0,v.jsx)(o.Z,{modalOpen:a,title:"Add Access Rule",onClose:s,titleIcon:(0,v.jsx)(h.sR,{}),children:(0,v.jsxs)(i.ZP,{container:!0,children:[(0,v.jsx)(i.ZP,{item:!0,xs:12,className:t.formFieldRow,children:(0,v.jsx)(c.Z,{value:f,label:"Prefix",id:"prefix",name:"prefix",placeholder:"Enter Prefix",onChange:function(e){g(e.target.value)}})}),(0,v.jsx)(i.ZP,{item:!0,xs:12,children:(0,v.jsx)(x.Z,{id:"access",name:"Access",onChange:function(e){b(e.target.value)},label:"Access",value:C,options:[{label:"readonly",value:"readonly"},{label:"writeonly",value:"writeonly"},{label:"readwrite",value:"readwrite"}],disabled:!1})}),(0,v.jsxs)(i.ZP,{item:!0,xs:12,className:t.modalButtonBar,children:[(0,v.jsx)(r.Z,{type:"button",color:"primary",variant:"outlined",onClick:function(){g(""),b("readonly")},children:"Clear"}),(0,v.jsx)(r.Z,{type:"submit",variant:"contained",color:"primary",disabled:""===f.trim(),onClick:function(){p.Z.invoke("PUT","/api/v1/bucket/".concat(d,"/access-rules"),{prefix:f,access:C}).then((function(e){s()})).catch((function(e){(0,Z.Ih)(e),s()}))},children:"Save"})]})]})})})))},56028:function(e,a,s){var n=s(70885),t=s(1413),l=s(72791),o=s(60364),i=s(13400),r=s(55646),c=s(5574),d=s(65661),u=s(39157),m=s(11135),f=s(25787),p=s(23814),Z=s(42649),x=s(29823),h=s(28057),v=s(80184),g=(0,o.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:Z.MK});a.Z=(0,f.Z)((function(e){return(0,m.Z)((0,t.Z)((0,t.Z)({},p.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},p.sN))}))(g((function(e){var a=e.onClose,s=e.modalOpen,o=e.title,m=e.children,f=e.classes,p=e.wideLimit,Z=void 0===p||p,g=e.modalSnackMessage,j=e.noContentPadding,k=e.setModalSnackMessage,C=e.titleIcon,b=void 0===C?null:C,y=(0,l.useState)(!1),M=(0,n.Z)(y,2),S=M[0],N=M[1];(0,l.useEffect)((function(){k("")}),[k]),(0,l.useEffect)((function(){if(g){if(""===g.message)return void N(!1);"error"!==g.type&&N(!0)}}),[g]);var w=Z?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},P="";return g&&(P=g.detailedErrorMsg,(""===g.detailedErrorMsg||g.detailedErrorMsg.length<5)&&(P=g.message)),(0,v.jsxs)(c.Z,(0,t.Z)((0,t.Z)({open:s,classes:f},w),{},{scroll:"paper",onClose:function(e,s){"backdropClick"!==s&&a()},className:f.root,children:[(0,v.jsxs)(d.Z,{className:f.title,children:[(0,v.jsxs)("div",{className:f.titleText,children:[b," ",o]}),(0,v.jsx)("div",{className:f.closeContainer,children:(0,v.jsx)(i.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:a,disableRipple:!0,size:"small",children:(0,v.jsx)(x.Z,{})})})]}),(0,v.jsx)(h.Z,{isModal:!0}),(0,v.jsx)(r.Z,{open:S,className:f.snackBarModal,onClose:function(){N(!1),k("")},message:P,ContentProps:{className:"".concat(f.snackBar," ").concat(g&&"error"===g.type?f.errorSnackBar:"")},autoHideDuration:g&&"error"===g.type?1e4:5e3}),(0,v.jsx)(u.Z,{className:j?"":f.content,children:m})]}))})))},29823:function(e,a,s){var n=s(95318);a.Z=void 0;var t=n(s(45649)),l=s(80184),o=(0,t.default)((0,l.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");a.Z=o}}]); +//# sourceMappingURL=4619.95265a73.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4619.ed29e211.chunk.js.map b/portal-ui/build/static/js/4619.95265a73.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/4619.ed29e211.chunk.js.map rename to portal-ui/build/static/js/4619.95265a73.chunk.js.map index 681cf4f24..ec53ac15b 100644 --- a/portal-ui/build/static/js/4619.ed29e211.chunk.js.map +++ b/portal-ui/build/static/js/4619.95265a73.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4619.ed29e211.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/AddAccessRule.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","../node_modules/@mui/icons-material/Close.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, { useState } from \"react\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { Button, Grid } from \"@mui/material\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { connect } from \"react-redux\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { AddAccessRuleIcon } from \"../../../../icons\";\n\nconst mapState = (state: AppState) => ({\n session: state.console.session,\n});\n\nconst connector = connect(mapState, { setErrorSnackMessage });\n\ninterface IAddAccessRule {\n classes: any;\n modalOpen: boolean;\n onClose: () => any;\n bucket: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst AddAccessRule = ({\n modalOpen,\n onClose,\n classes,\n bucket,\n}: IAddAccessRule) => {\n const [prefix, setPrefix] = useState(\"\");\n const [selectedAccess, setSelectedAccess] = useState(\"readonly\");\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\n .invoke(\"PUT\", `/api/v1/bucket/${bucket}/access-rules`, {\n prefix: prefix,\n access: selectedAccess,\n })\n .then((res: any) => {\n onClose();\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n onClose();\n });\n };\n\n return (\n }\n >\n \n \n {\n setPrefix(e.target.value);\n }}\n />\n \n \n {\n setSelectedAccess(e.target.value);\n }}\n label=\"Access\"\n value={selectedAccess}\n options={accessOptions}\n disabled={false}\n />\n \n \n \n Clear\n \n \n Save\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(connector(AddAccessRule));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["connector","connect","state","session","console","setErrorSnackMessage","withStyles","theme","createStyles","formFieldStyles","modalStyleUtils","modalOpen","onClose","classes","bucket","useState","prefix","setPrefix","selectedAccess","setSelectedAccess","title","titleIcon","container","item","xs","className","formFieldRow","value","label","id","name","placeholder","onChange","e","target","options","disabled","modalButtonBar","type","color","variant","onClick","trim","api","access","then","res","catch","err","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4619.95265a73.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/AddAccessRule.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","../node_modules/@mui/icons-material/Close.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, { useState } from \"react\";\nimport ModalWrapper from \"../../Common/ModalWrapper/ModalWrapper\";\nimport { Button, Grid } from \"@mui/material\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { connect } from \"react-redux\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AppState } from \"../../../../store\";\nimport SelectWrapper from \"../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { AddAccessRuleIcon } from \"../../../../icons\";\n\nconst mapState = (state: AppState) => ({\n session: state.console.session,\n});\n\nconst connector = connect(mapState, { setErrorSnackMessage });\n\ninterface IAddAccessRule {\n classes: any;\n modalOpen: boolean;\n onClose: () => any;\n bucket: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n });\n\nconst AddAccessRule = ({\n modalOpen,\n onClose,\n classes,\n bucket,\n}: IAddAccessRule) => {\n const [prefix, setPrefix] = useState(\"\");\n const [selectedAccess, setSelectedAccess] = useState(\"readonly\");\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\n .invoke(\"PUT\", `/api/v1/bucket/${bucket}/access-rules`, {\n prefix: prefix,\n access: selectedAccess,\n })\n .then((res: any) => {\n onClose();\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n onClose();\n });\n };\n\n return (\n }\n >\n \n \n {\n setPrefix(e.target.value);\n }}\n />\n \n \n {\n setSelectedAccess(e.target.value);\n }}\n label=\"Access\"\n value={selectedAccess}\n options={accessOptions}\n disabled={false}\n />\n \n \n \n Clear\n \n \n Save\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(connector(AddAccessRule));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["connector","connect","state","session","console","setErrorSnackMessage","withStyles","theme","createStyles","formFieldStyles","modalStyleUtils","modalOpen","onClose","classes","bucket","useState","prefix","setPrefix","selectedAccess","setSelectedAccess","title","titleIcon","container","item","xs","className","formFieldRow","value","label","id","name","placeholder","onChange","e","target","options","disabled","modalButtonBar","type","color","variant","onClick","trim","api","access","then","res","catch","err","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","content","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","children","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","root","titleText","closeContainer","closeButton","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4653.c79dfc48.chunk.js b/portal-ui/build/static/js/4653.7e30a491.chunk.js similarity index 98% rename from portal-ui/build/static/js/4653.c79dfc48.chunk.js rename to portal-ui/build/static/js/4653.7e30a491.chunk.js index 3700524c2..294abcd2c 100644 --- a/portal-ui/build/static/js/4653.c79dfc48.chunk.js +++ b/portal-ui/build/static/js/4653.7e30a491.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4653],{14917:function(e,n,t){t(72791);var a=t(61889),i=t(11135),r=t(25787),o=t(80184);n.Z=(0,r.Z)((function(e){return(0,i.Z)({headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},screenTitle:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem",borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column"}},rightItems:{display:"flex",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.icon,i=e.title,r=e.subTitle,l=e.actions,s=e.className;return(0,o.jsx)(a.ZP,{container:!0,children:(0,o.jsxs)(a.ZP,{item:!0,xs:12,className:"".concat(n.screenTitle," ").concat(s||""),children:[(0,o.jsxs)("div",{className:n.leftItems,children:[t?(0,o.jsx)("div",{className:n.headerBarIcon,children:t}):null,(0,o.jsxs)("div",{className:n.titleColumn,children:[(0,o.jsx)("h1",{style:{margin:0},children:i}),(0,o.jsx)("span",{className:n.headerBarSubheader,children:r})]})]}),(0,o.jsx)("div",{className:n.rightItems,children:l})]})})}))},14662:function(e,n,t){t.d(n,{Z:function(){return R}});var a=t(1413),i=t(70885),r=t(72791),o=t(64554),l=t(43896),s=t(80184),c=r.createContext(null);function u(e){var n=e.children,t=e.value,a=function(){var e=r.useState(null),n=(0,i.Z)(e,2),t=n[0],a=n[1];return r.useEffect((function(){a("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),o=r.useMemo((function(){return{idPrefix:a,value:t}}),[a,t]);return(0,s.jsx)(c.Provider,{value:o,children:n})}function d(){return r.useContext(c)}function f(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function m(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}var h=t(87462),x=t(63366),p=t(18073),b=["children"],g=r.forwardRef((function(e,n){var t=e.children,a=(0,x.Z)(e,b),i=d();if(null===i)throw new TypeError("No TabContext provided");var o=r.Children.map(t,(function(e){return r.isValidElement(e)?r.cloneElement(e,{"aria-controls":f(i,e.props.value),id:m(i,e.props.value)}):null}));return(0,s.jsx)(p.Z,(0,h.Z)({},a,{ref:n,value:i.value,children:o}))})),v=t(28182),Z=t(47630),j=t(93736),T=t(90767),C=t(95159);function w(e){return(0,C.Z)("MuiTabPanel",e)}(0,t(30208).Z)("MuiTabPanel",["root"]);var E=["children","className","value"],y=(0,Z.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),N=r.forwardRef((function(e,n){var t=(0,j.Z)({props:e,name:"MuiTabPanel"}),a=t.children,i=t.className,r=t.value,o=(0,x.Z)(t,E),l=(0,h.Z)({},t),c=function(e){var n=e.classes;return(0,T.Z)({root:["root"]},w,n)}(l),u=d();if(null===u)throw new TypeError("No TabContext provided");var p=f(u,r),b=m(u,r);return(0,s.jsx)(y,(0,h.Z)({"aria-labelledby":b,className:(0,v.Z)(c.root,i),hidden:r!==u.value,id:p,ref:n,role:"tabpanel",ownerState:l},o,{children:r===u.value&&a}))})),P=t(25787),I=t(13967),A=t(11135),M=t(95193),S={minHeight:60},R=(0,P.Z)((function(e){return(0,A.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var n=e.children,t=e.classes,c=e.selectedTab,d=void 0===c?"0":c,f=e.routes,m=e.isRouteTabs,h=r.useState(d),x=(0,i.Z)(h,2),p=x[0],b=x[1],v=(0,I.Z)(),Z=(0,M.Z)(v.breakpoints.down("md")),j=[],T=[];return n?(n.forEach((function(e){j.push(e.tabConfig),T.push(e.content)})),(0,s.jsx)(u,{value:"".concat(p),children:(0,s.jsxs)(o.Z,{className:t.tabsContainer,children:[(0,s.jsx)(o.Z,{className:t.tabsHeaderContainer,children:(0,s.jsx)(g,{onChange:function(e,n){b(n)},orientation:Z?"horizontal":"vertical",variant:Z?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:j.map((function(e,n){return e?(0,s.jsx)(l.Z,(0,a.Z)((0,a.Z)({className:t.tabHeader,value:"".concat(n),style:S},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,s.jsxs)(o.Z,{className:t.tabContentContainer,children:[m?null:T.map((function(e,n){return(0,s.jsx)(N,{classes:(0,a.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),m?(0,s.jsx)("div",{className:t.tabPanel,children:f}):null]})]})})):null}))},34653:function(e,n,t){t.r(n);var a=t(1413),i=t(72791),r=t(11135),o=t(25787),l=t(61889),s=t(58493),c=t(23814),u=t(32291),d=t(23804),f=t(74833),m=t(79271),h=t(91523),x=t(62666),p=t(14662),b=t(74794),g=t(26181),v=t.n(g),Z=t(14917),j=t(75578),T=t(56087),C=t(80184),w=(0,j.Z)(i.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(7659)]).then(t.bind(t,67659))})));n.default=(0,o.Z)((function(e){return(0,r.Z)((0,a.Z)((0,a.Z)((0,a.Z)({settingsOptionsContainer:{display:"flex",flexDirection:"row",justifyContent:"flex-start",flexWrap:"wrap",border:"#E5E5E5 1px solid",borderRadius:2,backgroundColor:"#fff"}},c.qg),c.OR),(0,c.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.match,a=v()(t,"url",""),r=a.substring(a.lastIndexOf("/")+1);return r="settings"===r?"region":r,(0,C.jsxs)(i.Fragment,{children:[(0,C.jsx)(u.Z,{label:"Settings"}),(0,C.jsxs)(b.Z,{children:[(0,C.jsx)(l.ZP,{item:!0,xs:12,children:(0,C.jsxs)("div",{id:"settings-container",className:n.settingsOptionsContainer,children:[(0,C.jsx)(Z.Z,{icon:(0,C.jsx)(f.ew,{}),title:"Configuration:"}),(0,C.jsx)(p.Z,{selectedTab:r,isRouteTabs:!0,routes:(0,C.jsx)(m.F0,{history:x.Z,children:(0,C.jsxs)(m.rs,{children:[s.bx.map((function(e){return(0,C.jsx)(m.AW,{exact:!0,path:"".concat(T.gA.SETTINGS,"/").concat(e.configuration_id),component:w},"configItem-".concat(e.configuration_label))})),(0,C.jsx)(m.AW,{exact:!0,path:T.gA.SETTINGS,children:(0,C.jsx)(m.l_,{to:"".concat(T.gA.SETTINGS,"/region")})})]})}),children:s.bx.map((function(e){var n,t=e.configuration_id;return{tabConfig:{label:e.configuration_label,value:t,icon:e.icon,component:h.rU,to:(n=t,"".concat(T.gA.SETTINGS,"/").concat(n))}}}))})]})}),(0,C.jsx)(l.ZP,{item:!0,xs:12,sx:{paddingTop:"15px"},children:(0,C.jsx)(d.Z,{title:"Learn more about SETTINGS",iconComponent:(0,C.jsx)(f.ew,{}),help:(0,C.jsxs)(i.Fragment,{children:["MinIO supports a variety of configurations ranging from encryption, compression, region, notifications, etc.",(0,C.jsx)("br",{}),(0,C.jsx)("br",{}),"You can learn more at our"," ",(0,C.jsx)("a",{href:"https://docs.min.io/minio/baremetal/reference/minio-cli/minio-mc-admin/mc-admin.config.html?ref=con#id4",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})})]})]})}))}}]); -//# sourceMappingURL=4653.c79dfc48.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4653],{14917:function(e,n,t){t(72791);var a=t(61889),i=t(11135),r=t(25787),o=t(80184);n.Z=(0,r.Z)((function(e){return(0,i.Z)({headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},screenTitle:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem",borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column"}},rightItems:{display:"flex",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.icon,i=e.title,r=e.subTitle,l=e.actions,s=e.className;return(0,o.jsx)(a.ZP,{container:!0,children:(0,o.jsxs)(a.ZP,{item:!0,xs:12,className:"".concat(n.screenTitle," ").concat(s||""),children:[(0,o.jsxs)("div",{className:n.leftItems,children:[t?(0,o.jsx)("div",{className:n.headerBarIcon,children:t}):null,(0,o.jsxs)("div",{className:n.titleColumn,children:[(0,o.jsx)("h1",{style:{margin:0},children:i}),(0,o.jsx)("span",{className:n.headerBarSubheader,children:r})]})]}),(0,o.jsx)("div",{className:n.rightItems,children:l})]})})}))},14662:function(e,n,t){t.d(n,{Z:function(){return R}});var a=t(1413),i=t(70885),r=t(72791),o=t(64554),l=t(43896),s=t(80184),c=r.createContext(null);function u(e){var n=e.children,t=e.value,a=function(){var e=r.useState(null),n=(0,i.Z)(e,2),t=n[0],a=n[1];return r.useEffect((function(){a("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),t}(),o=r.useMemo((function(){return{idPrefix:a,value:t}}),[a,t]);return(0,s.jsx)(c.Provider,{value:o,children:n})}function d(){return r.useContext(c)}function f(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(n)}function m(e,n){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(n)}var h=t(87462),x=t(63366),p=t(18073),b=["children"],g=r.forwardRef((function(e,n){var t=e.children,a=(0,x.Z)(e,b),i=d();if(null===i)throw new TypeError("No TabContext provided");var o=r.Children.map(t,(function(e){return r.isValidElement(e)?r.cloneElement(e,{"aria-controls":f(i,e.props.value),id:m(i,e.props.value)}):null}));return(0,s.jsx)(p.Z,(0,h.Z)({},a,{ref:n,value:i.value,children:o}))})),v=t(28182),Z=t(47630),j=t(93736),T=t(90767),C=t(95159);function w(e){return(0,C.Z)("MuiTabPanel",e)}(0,t(30208).Z)("MuiTabPanel",["root"]);var E=["children","className","value"],y=(0,Z.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,n){return n.root}})((function(e){return{padding:e.theme.spacing(3)}})),N=r.forwardRef((function(e,n){var t=(0,j.Z)({props:e,name:"MuiTabPanel"}),a=t.children,i=t.className,r=t.value,o=(0,x.Z)(t,E),l=(0,h.Z)({},t),c=function(e){var n=e.classes;return(0,T.Z)({root:["root"]},w,n)}(l),u=d();if(null===u)throw new TypeError("No TabContext provided");var p=f(u,r),b=m(u,r);return(0,s.jsx)(y,(0,h.Z)({"aria-labelledby":b,className:(0,v.Z)(c.root,i),hidden:r!==u.value,id:p,ref:n,role:"tabpanel",ownerState:l},o,{children:r===u.value&&a}))})),P=t(25787),I=t(13967),A=t(11135),M=t(95193),S={minHeight:60},R=(0,P.Z)((function(e){return(0,A.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var n=e.children,t=e.classes,c=e.selectedTab,d=void 0===c?"0":c,f=e.routes,m=e.isRouteTabs,h=r.useState(d),x=(0,i.Z)(h,2),p=x[0],b=x[1],v=(0,I.Z)(),Z=(0,M.Z)(v.breakpoints.down("md")),j=[],T=[];return n?(n.forEach((function(e){j.push(e.tabConfig),T.push(e.content)})),(0,s.jsx)(u,{value:"".concat(p),children:(0,s.jsxs)(o.Z,{className:t.tabsContainer,children:[(0,s.jsx)(o.Z,{className:t.tabsHeaderContainer,children:(0,s.jsx)(g,{onChange:function(e,n){b(n)},orientation:Z?"horizontal":"vertical",variant:Z?"scrollable":"standard",scrollButtons:"auto",className:t.tabList,children:j.map((function(e,n){return e?(0,s.jsx)(l.Z,(0,a.Z)((0,a.Z)({className:t.tabHeader,value:"".concat(n),style:S},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(n)):null}))})}),(0,s.jsxs)(o.Z,{className:t.tabContentContainer,children:[m?null:T.map((function(e,n){return(0,s.jsx)(N,{classes:(0,a.Z)({},t.tabPanel),value:"".concat(n),children:e||null},"v-tab-p-".concat(n))})),m?(0,s.jsx)("div",{className:t.tabPanel,children:f}):null]})]})})):null}))},34653:function(e,n,t){t.r(n);var a=t(1413),i=t(72791),r=t(11135),o=t(25787),l=t(61889),s=t(58493),c=t(23814),u=t(32291),d=t(23804),f=t(13048),m=t(79271),h=t(91523),x=t(62666),p=t(14662),b=t(74794),g=t(26181),v=t.n(g),Z=t(14917),j=t(75578),T=t(56087),C=t(80184),w=(0,j.Z)(i.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(7659)]).then(t.bind(t,67659))})));n.default=(0,o.Z)((function(e){return(0,r.Z)((0,a.Z)((0,a.Z)((0,a.Z)({settingsOptionsContainer:{display:"flex",flexDirection:"row",justifyContent:"flex-start",flexWrap:"wrap",border:"#E5E5E5 1px solid",borderRadius:2,backgroundColor:"#fff"}},c.qg),c.OR),(0,c.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.match,a=v()(t,"url",""),r=a.substring(a.lastIndexOf("/")+1);return r="settings"===r?"region":r,(0,C.jsxs)(i.Fragment,{children:[(0,C.jsx)(u.Z,{label:"Settings"}),(0,C.jsxs)(b.Z,{children:[(0,C.jsx)(l.ZP,{item:!0,xs:12,children:(0,C.jsxs)("div",{id:"settings-container",className:n.settingsOptionsContainer,children:[(0,C.jsx)(Z.Z,{icon:(0,C.jsx)(f.ew,{}),title:"Configuration:"}),(0,C.jsx)(p.Z,{selectedTab:r,isRouteTabs:!0,routes:(0,C.jsx)(m.F0,{history:x.Z,children:(0,C.jsxs)(m.rs,{children:[s.bx.map((function(e){return(0,C.jsx)(m.AW,{exact:!0,path:"".concat(T.gA.SETTINGS,"/").concat(e.configuration_id),component:w},"configItem-".concat(e.configuration_label))})),(0,C.jsx)(m.AW,{exact:!0,path:T.gA.SETTINGS,children:(0,C.jsx)(m.l_,{to:"".concat(T.gA.SETTINGS,"/region")})})]})}),children:s.bx.map((function(e){var n,t=e.configuration_id;return{tabConfig:{label:e.configuration_label,value:t,icon:e.icon,component:h.rU,to:(n=t,"".concat(T.gA.SETTINGS,"/").concat(n))}}}))})]})}),(0,C.jsx)(l.ZP,{item:!0,xs:12,sx:{paddingTop:"15px"},children:(0,C.jsx)(d.Z,{title:"Learn more about SETTINGS",iconComponent:(0,C.jsx)(f.ew,{}),help:(0,C.jsxs)(i.Fragment,{children:["MinIO supports a variety of configurations ranging from encryption, compression, region, notifications, etc.",(0,C.jsx)("br",{}),(0,C.jsx)("br",{}),"You can learn more at our"," ",(0,C.jsx)("a",{href:"https://docs.min.io/minio/baremetal/reference/minio-cli/minio-mc-admin/mc-admin.config.html?ref=con#id4",target:"_blank",rel:"noreferrer",children:"documentation"}),"."]})})})]})]})}))}}]); +//# sourceMappingURL=4653.7e30a491.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/4653.c79dfc48.chunk.js.map b/portal-ui/build/static/js/4653.7e30a491.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/4653.c79dfc48.chunk.js.map rename to portal-ui/build/static/js/4653.7e30a491.chunk.js.map index 9f41d9d11..10c3bb533 100644 --- a/portal-ui/build/static/js/4653.c79dfc48.chunk.js.map +++ b/portal-ui/build/static/js/4653.7e30a491.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/4653.c79dfc48.chunk.js","mappings":"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","sources":["screens/Console/Common/ScreenTitle/ScreenTitle.tsx","../node_modules/@mui/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","screens/Console/Configurations/ConfigurationPanels/ConfigurationOptions.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IScreenTitle {\n classes: any;\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n screenTitle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n },\n });\n\nconst ScreenTitle = ({\n classes,\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n return (\n \n \n
    \n {icon ?
    {icon}
    : null}\n
    \n

    {title}

    \n {subTitle}\n
    \n
    \n\n
    {actions}
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ScreenTitle);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of `` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n
    {routes}
    \n ) : null}\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nimport { configurationElements } from \"../utils\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport { SettingsIcon } from \"../../../../icons\";\nimport { Link, Redirect, Route, Router, Switch } from \"react-router-dom\";\nimport history from \"../../../../history\";\nimport VerticalTabs from \"../../Common/VerticalTabs/VerticalTabs\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport get from \"lodash/get\";\nimport ScreenTitle from \"../../Common/ScreenTitle/ScreenTitle\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\n\nconst ConfigurationForm = withSuspense(\n React.lazy(() => import(\"./ConfigurationForm\"))\n);\n\ninterface IConfigurationOptions {\n classes: any;\n match: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n settingsOptionsContainer: {\n display: \"flex\" as const,\n flexDirection: \"row\" as const,\n justifyContent: \"flex-start\" as const,\n flexWrap: \"wrap\" as const,\n border: \"#E5E5E5 1px solid\",\n borderRadius: 2,\n backgroundColor: \"#fff\",\n },\n ...searchField,\n ...actionsTray,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst getRoutePath = (path: string) => {\n return `${IAM_PAGES.SETTINGS}/${path}`;\n};\n\nconst ConfigurationOptions = ({ classes, match }: IConfigurationOptions) => {\n const configurationName = get(match, \"url\", \"\");\n let selConfigTab = configurationName.substring(\n configurationName.lastIndexOf(\"/\") + 1\n );\n selConfigTab = selConfigTab === \"settings\" ? \"region\" : selConfigTab;\n\n return (\n \n \n\n \n \n \n } title={\"Configuration:\"} />\n \n \n {configurationElements.map((element) => (\n \n ))}\n \n \n \n \n \n }\n >\n {configurationElements.map((element) => {\n const { configuration_id, configuration_label, icon } = element;\n return {\n tabConfig: {\n label: configuration_label,\n value: configuration_id,\n icon: icon,\n component: Link,\n to: getRoutePath(configuration_id),\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 withStyles(styles)(ConfigurationOptions);\n"],"names":["withStyles","theme","createStyles","headerBarIcon","marginRight","color","palette","primary","main","width","height","headerBarSubheader","maxWidth","screenTitle","display","alignItems","justifyContent","padding","borderBottom","flexFlow","titleColumn","fontSize","leftItems","rightItems","classes","icon","title","subTitle","actions","className","container","item","xs","style","margin","Context","React","TabContext","props","children","value","idPrefix","id","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","child","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","name","overridesResolver","styles","root","spacing","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","clsx","hidden","role","tabStripStyle","minHeight","tabsContainer","tabsHeaderContainer","background","borderRight","marginBottom","fontWeight","tabContentContainer","tabPanel","flexDirection","selectedTab","routes","isRouteTabs","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","push","tabConfig","content","Box","onChange","event","newValue","orientation","variant","scrollButtons","tabList","map","index","Tab","tabHeader","disableRipple","disableTouchRipple","focusRipple","ConfigurationForm","withSuspense","settingsOptionsContainer","flexWrap","border","borderRadius","backgroundColor","searchField","actionsTray","containerForHeader","match","configurationName","get","selConfigTab","substring","lastIndexOf","Fragment","label","history","configurationElements","element","exact","path","IAM_PAGES","configuration_id","component","configuration_label","to","Link","sx","paddingTop","iconComponent","help","href","target","rel"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/4653.7e30a491.chunk.js","mappings":"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","sources":["screens/Console/Common/ScreenTitle/ScreenTitle.tsx","../node_modules/@mui/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","screens/Console/Configurations/ConfigurationPanels/ConfigurationOptions.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IScreenTitle {\n classes: any;\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n screenTitle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n },\n });\n\nconst ScreenTitle = ({\n classes,\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n return (\n \n \n
    \n {icon ?
    {icon}
    : null}\n
    \n

    {title}

    \n {subTitle}\n
    \n
    \n\n
    {actions}
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ScreenTitle);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of `` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n
    {routes}
    \n ) : null}\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// 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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nimport { configurationElements } from \"../utils\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport { SettingsIcon } from \"../../../../icons\";\nimport { Link, Redirect, Route, Router, Switch } from \"react-router-dom\";\nimport history from \"../../../../history\";\nimport VerticalTabs from \"../../Common/VerticalTabs/VerticalTabs\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport get from \"lodash/get\";\nimport ScreenTitle from \"../../Common/ScreenTitle/ScreenTitle\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport { IAM_PAGES } from \"../../../../common/SecureComponent/permissions\";\n\nconst ConfigurationForm = withSuspense(\n React.lazy(() => import(\"./ConfigurationForm\"))\n);\n\ninterface IConfigurationOptions {\n classes: any;\n match: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n settingsOptionsContainer: {\n display: \"flex\" as const,\n flexDirection: \"row\" as const,\n justifyContent: \"flex-start\" as const,\n flexWrap: \"wrap\" as const,\n border: \"#E5E5E5 1px solid\",\n borderRadius: 2,\n backgroundColor: \"#fff\",\n },\n ...searchField,\n ...actionsTray,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst getRoutePath = (path: string) => {\n return `${IAM_PAGES.SETTINGS}/${path}`;\n};\n\nconst ConfigurationOptions = ({ classes, match }: IConfigurationOptions) => {\n const configurationName = get(match, \"url\", \"\");\n let selConfigTab = configurationName.substring(\n configurationName.lastIndexOf(\"/\") + 1\n );\n selConfigTab = selConfigTab === \"settings\" ? \"region\" : selConfigTab;\n\n return (\n \n \n\n \n \n \n } title={\"Configuration:\"} />\n \n \n {configurationElements.map((element) => (\n \n ))}\n \n \n \n \n \n }\n >\n {configurationElements.map((element) => {\n const { configuration_id, configuration_label, icon } = element;\n return {\n tabConfig: {\n label: configuration_label,\n value: configuration_id,\n icon: icon,\n component: Link,\n to: getRoutePath(configuration_id),\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 withStyles(styles)(ConfigurationOptions);\n"],"names":["withStyles","theme","createStyles","headerBarIcon","marginRight","color","palette","primary","main","width","height","headerBarSubheader","maxWidth","screenTitle","display","alignItems","justifyContent","padding","borderBottom","flexFlow","titleColumn","fontSize","leftItems","rightItems","classes","icon","title","subTitle","actions","className","container","item","xs","style","margin","Context","React","TabContext","props","children","value","idPrefix","id","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","child","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","name","overridesResolver","styles","root","spacing","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","clsx","hidden","role","tabStripStyle","minHeight","tabsContainer","tabsHeaderContainer","background","borderRight","marginBottom","fontWeight","tabContentContainer","tabPanel","flexDirection","selectedTab","routes","isRouteTabs","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","push","tabConfig","content","Box","onChange","event","newValue","orientation","variant","scrollButtons","tabList","map","index","Tab","tabHeader","disableRipple","disableTouchRipple","focusRipple","ConfigurationForm","withSuspense","settingsOptionsContainer","flexWrap","border","borderRadius","backgroundColor","searchField","actionsTray","containerForHeader","match","configurationName","get","selConfigTab","substring","lastIndexOf","Fragment","label","history","configurationElements","element","exact","path","IAM_PAGES","configuration_id","component","configuration_label","to","Link","sx","paddingTop","iconComponent","help","href","target","rel"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/471.13d4a140.chunk.js b/portal-ui/build/static/js/471.45f246bd.chunk.js similarity index 99% rename from portal-ui/build/static/js/471.13d4a140.chunk.js rename to portal-ui/build/static/js/471.45f246bd.chunk.js index 72a657d39..7adddd57d 100644 --- a/portal-ui/build/static/js/471.13d4a140.chunk.js +++ b/portal-ui/build/static/js/471.45f246bd.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[471],{84669:function(e,n,t){t(72791);var i=t(91523),s=t(11135),o=t(25787),r=t(74833),a=t(64554),l=t(80184);n.Z=(0,o.Z)((function(e){return(0,s.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var n=e.to,t=e.label,s=e.classes,o=e.className,c=e.executeOnClick;return(0,l.jsx)(a.Z,{sx:{display:"flex",alignItems:"center"},children:(0,l.jsx)(i.rU,{to:n,className:"".concat(s.link," ").concat(o||""),onClick:function(){c&&c()},children:(0,l.jsxs)("div",{className:s.iconBox,children:[(0,l.jsx)("div",{className:s.icon,children:(0,l.jsx)(r.xN,{})}),(0,l.jsx)("div",{className:s.label,children:t})]})})})}))},80471:function(e,n,t){t.r(n),t.d(n,{default:function(){return O}});var i=t(70885),s=t(1413),o=t(11135),r=t(23814),a=t(25787),l=t(64554),c=t(36151),x=t(23060),d=t(61889),p=t(32291),g=t(74794),u=t(72791),f=t(74833),h=t(3579),m=t(20165),j=t(12590),Z=t(55335),b=t(21435),v=t(68733),y=t(81207),k=t(30403),S=t(90673),w=t(38442),C=t(56087),I=t(60364),T=t(42649),z=t(95792),N=t(37516),R=t(80184),B=function(e){var n=e.icon,t=e.description;return(0,R.jsxs)(l.Z,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[n," ",(0,R.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:t})]})},E=function(e){var n=e.hasMargin,t=void 0===n||n;return(0,R.jsxs)(l.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginLeft:{xs:"0px",sm:"0px",md:t?"30px":""},marginTop:{xs:"0px",sm:t?"30px":""}},children:[(0,R.jsxs)(l.Z,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,R.jsx)(f.M9,{}),(0,R.jsx)("div",{children:"Why should I register?"})]}),(0,R.jsx)(l.Z,{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,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,R.jsx)(B,{icon:(0,R.jsx)(f._q,{}),description:"Call Home Monitoring"}),(0,R.jsx)(B,{icon:(0,R.jsx)(f.to,{}),description:"Health Diagnostics"}),(0,R.jsx)(B,{icon:(0,R.jsx)(f.Fs,{}),description:"Performance Analysis"})]})]})},L=t(74440),F=t(84669),M=function(e){var n=e.icon,t=void 0===n?null:n,i=e.title;return(0,R.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start"},children:[t,(0,R.jsx)("div",{className:"title-text",children:i})]})},A=(0,I.$j)((function(e){return{operatorMode:e.system.operatorMode}}),{displayErrorMessage:T.Ih}),O=(0,a.Z)((function(e){return(0,o.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({loading:{paddingTop:8,paddingLeft:40},buttons:{justifyContent:"flex-start",gap:20},localMessage:{fontSize:24,color:"#07193E",fontWeight:"bold",textAlign:"center",marginBottom:10},headerStyle:{color:e.palette.primary.main,fontSize:16,fontWeight:"bold"},registerActivationIcon:{color:e.palette.primary.main,fontSize:16,fontWeight:"bold",marginBottom:20,"& .min-icon":{width:32.12,height:25,marginRight:10,verticalAlign:"middle"}},registerActivationMode:{textAlign:"right","& a":{cursor:"pointer"}},subnetDescription:{textAlign:"left",Font:"normal normal normal 14px/17px Lato",letterSpacing:0,color:"#000000","& span":{fontWeight:"bold"}},registeredStatus:{border:"1px solid #E2E2E2",padding:"24px 24px 24px 24px",borderRadius:2,marginBottom:25,backgroundColor:"#FBFAFA","& .min-icon":{width:20,height:20,marginLeft:48,marginRight:13,verticalAlign:"middle",marginTop:-3},"& span":{fontWeight:"bold"}},offlineRegisterButton:{textAlign:"right",paddingRight:20},copyInputBox:{"& button":{border:"1px solid #5E5E5E",borderRadius:2}},link:{color:"#2781B0",cursor:"pointer"},smallBoxy:{border:"#E5E5E5 1px solid",borderRadius:2,padding:20,backgroundColor:"#fff"},sizedLabel:{minWidth:"75px"}},r.OR),r.qg),r.bK),(0,r.Bz)(e.spacing(4))))}))(A((function(e){var n=e.classes,t=e.displayErrorMessage,s=e.operatorMode,o=(0,u.useState)(""),r=(0,i.Z)(o,2),a=r[0],I=r[1],T=(0,u.useState)(""),B=(0,i.Z)(T,2),A=B[0],O=B[1],P=(0,u.useState)(""),W=(0,i.Z)(P,2),_=W[0],U=W[1],H=(0,u.useState)(""),V=(0,i.Z)(H,2),D=V[0],G=V[1],q=(0,u.useState)(""),K=(0,i.Z)(q,2),$=K[0],J=K[1],Q=(0,u.useState)(""),X=(0,i.Z)(Q,2),Y=X[0],ee=X[1],ne=(0,u.useState)(""),te=(0,i.Z)(ne,2),ie=te[0],se=te[1],oe=(0,u.useState)(""),re=(0,i.Z)(oe,2),ae=re[0],le=re[1],ce=(0,u.useState)([]),xe=(0,i.Z)(ce,2),de=xe[0],pe=xe[1],ge=(0,u.useState)(!1),ue=(0,i.Z)(ge,2),fe=ue[0],he=ue[1],me=(0,u.useState)(!0),je=(0,i.Z)(me,2),Ze=je[0],be=je[1],ve=(0,u.useState)(!1),ye=(0,i.Z)(ve,2),ke=ye[0],Se=ye[1],we=(0,u.useState)(!1),Ce=(0,i.Z)(we,2),Ie=Ce[0],Te=Ce[1],ze=(0,u.useState)(!1),Ne=(0,i.Z)(ze,2),Re=Ne[0],Be=Ne[1],Ee=(0,u.useState)(),Le=(0,i.Z)(Ee,2),Fe=Le[0],Me=Le[1],Ae=(0,u.useState)(!0),Oe=(0,i.Z)(Ae,2),Pe=Oe[0],We=Oe[1],_e=(0,u.useState)(!1),Ue=(0,i.Z)(_e,2),He=Ue[0],Ve=Ue[1],De=function(){ee(""),se(""),le(""),he(!1),be(!0),pe([]),I(""),O(""),U(""),G(""),J("")},Ge=(0,w.F)(C.C3,C.LC[C.gA.LICENSE],!0),qe=(0,u.useCallback)((function(){Ie||(Ge?(Te(!0),y.Z.invoke("GET","/api/v1/subnet/info").then((function(e){Me(e),Be(!0),Te(!1)})).catch((function(e){"License not found"!==e.errorMessage&&t(e),Be(!1),Te(!1)}))):Te(!1))}),[Ie,Ge,t]),Ke=function(){ke||ae||(Se(!0),y.Z.invoke("GET","/api/v1/subnet/registration-token").then((function(e){Se(!1),e&&e.regToken&&le(e.regToken)})).catch((function(e){console.log(e),t(e),Se(!1)})))},$e=function(e,n){var i={token:e,account_id:n};y.Z.invoke("POST","/api/v1/subnet/register",i).then((function(){Se(!1),De(),qe()})).catch((function(e){t(e),Se(!1)}))},Je=function(){if(!ke){Se(!0);var e={username:_,password:A,apiKey:a};y.Z.invoke("POST","/api/v1/subnet/login",e).then((function(e){Se(!1),e&&e.registered?(De(),qe()):e&&e.mfa_token?G(e.mfa_token):e&&e.access_token&&e.organizations.length>0&&(ee(e.access_token),pe(e.organizations),se(e.organizations[0].accountId.toString()))})).catch((function(e){t(e),Se(!1),De()}))}};(0,u.useEffect)((function(){Pe&&(qe(),We(!1))}),[qe,Pe,We]);var Qe,Xe=Ze?(0,R.jsx)(l.Z,{sx:{"& .title-text":{marginLeft:"27px",fontWeight:600}},children:(0,R.jsx)(M,{icon:(0,R.jsx)(j.Z,{}),title:"Register with MinIO Subscription Network"})}):(0,R.jsx)(l.Z,{sx:{"& .title-text":{marginLeft:"27px",fontWeight:600}},children:(0,R.jsx)(M,{icon:(0,R.jsx)(Z.Z,{}),title:" Offline Activation of SUBNET License"})});Qe=Ze?Y&&de.length>0?(0,R.jsxs)(l.Z,{sx:{display:"flex"},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,R.jsx)(l.Z,{sx:{marginTop:"15px",marginBottom:"15px","& .title-text":{marginLeft:"0px"}},children:(0,R.jsx)(M,{title:"Register MinIO cluster"})}),(0,R.jsxs)(l.Z,{children:[(0,R.jsx)(S.Z,{id:"subnet-organization",name:"subnet-organization",onChange:function(e){return se(e.target.value)},label:"Select an organization",value:ie,options:de.map((function(e){return{label:e.company,value:e.accountId.toString()}}))}),(0,R.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"15px"},children:(0,R.jsx)(c.Z,{className:n.button,color:"primary",onClick:function(){ke||(Se(!0),Y&&ie&&$e(Y,ie))},disabled:ke||0===Y.trim().length,variant:"contained",children:"Register"})})]})]}),(0,R.jsx)(E,{})]}):D?(0,R.jsxs)(l.Z,{sx:{display:"flex"},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,R.jsx)(l.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"30px",marginBottom:"30px"},children:"Two-Factor Authentication"}),(0,R.jsx)(l.Z,{children:"Please enter the 6-digit verification code that was sent to your email address. This code will be valid for 5 minutes."}),(0,R.jsx)(l.Z,{sx:{flex:"1",marginTop:"30px"},children:(0,R.jsx)(b.Z,{overlayIcon:(0,R.jsx)(k.Z,{}),id:"subnet-otp",name:"subnet-otp",onChange:function(e){return J(e.target.value)},placeholder:"",label:"",value:$})}),(0,R.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end"},children:(0,R.jsx)(c.Z,{color:"primary",onClick:function(){return function(){if(!ke){Se(!0);var e={username:_,otp:$,mfa_token:D};y.Z.invoke("POST","/api/v1/subnet/login/mfa",e).then((function(e){Se(!1),e&&e.access_token&&e.organizations.length>0&&(1===e.organizations.length?$e(e.access_token,e.organizations[0].accountId.toString()):(ee(e.access_token),pe(e.organizations),se(e.organizations[0].accountId.toString())))})).catch((function(e){t(e),Se(!1),J("")}))}}()},disabled:ke||0===$.trim().length||0===D.trim().length,variant:"contained",children:"Verify"})})]}),(0,R.jsx)(E,{})]}):(0,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:{xs:"column",md:"row"}},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,R.jsx)(l.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"30px",marginBottom:"30px"},children:"Use your MinIO Subscription Network login credentials to register this cluster."}),(0,R.jsxs)(l.Z,{sx:{flex:"1"},children:[(0,R.jsx)(b.Z,{className:n.spacerBottom,classes:{inputLabel:n.sizedLabel},id:"subnet-email",name:"subnet-email",onChange:function(e){return U(e.target.value)},label:"Email",value:_,overlayIcon:(0,R.jsx)(f.oy,{})}),(0,R.jsx)(b.Z,{className:n.spacerBottom,classes:{inputLabel:n.sizedLabel},id:"subnet-password",name:"subnet-password",onChange:function(e){return O(e.target.value)},label:"Password",type:fe?"text":"password",value:A,overlayIcon:fe?(0,R.jsx)(m.Z,{}):(0,R.jsx)(h.Z,{}),overlayAction:function(){return he(!fe)}}),(0,R.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end"},children:[(0,R.jsx)(c.Z,{type:"submit",className:n.spacerRight,variant:"outlined",onClick:function(e){e.preventDefault(),window.open("https://min.io/signup?ref=".concat(s?"op":"con"),"_blank")},children:"Sign up"}),(0,R.jsx)(c.Z,{type:"submit",variant:"contained",color:"primary",disabled:ke||0===_.trim().length||0===A.trim().length,onClick:function(){return Je()},children:"Register"})]})]})]}),(0,R.jsx)(E,{})]}):(0,R.jsxs)(l.Z,{sx:{display:"flex"},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column",flex:"2",marginTop:"15px","& .step-number":{color:"#ffffff",height:"25px",width:"25px",background:"#081C42",marginRight:"10px",textAlign:"center",fontWeight:600,borderRadius:"50%"},"& .step-row":{fontSize:"16px",display:"flex",marginTop:"15px",marginBottom:"15px"}},children:[(0,R.jsxs)(l.Z,{children:[(0,R.jsxs)(l.Z,{className:"step-row",children:[(0,R.jsx)("div",{className:"step-number",children:"1"})," ",(0,R.jsx)("div",{className:"step-text",children:"Copy the following registration token"})]}),(0,R.jsx)(l.Z,{sx:{flex:"1",marginTop:"15px",marginLeft:"35px","& input":{color:"#737373"}},children:(0,R.jsx)(b.Z,{id:"registration-token",name:"registration-token",placeholder:"",label:"",type:"text",onChange:function(){},value:ae,overlayIcon:(0,R.jsx)(f.TI,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(ae)}})})]}),(0,R.jsxs)(l.Z,{children:[(0,R.jsxs)(l.Z,{className:"step-row",children:[(0,R.jsx)("div",{className:"step-number",children:"2"}),(0,R.jsx)("div",{className:"step-text",children:"Navigate to SUBNET and register your cluster"})]}),(0,R.jsx)(l.Z,{sx:{flex:"1",marginLeft:"35px"},children:(0,R.jsx)(x.Z,{className:n.link,color:"inherit",href:"https://subnet.min.io/cluster/register",target:"_blank",children:"https://subnet.min.io/cluster/register"})})]}),(0,R.jsxs)(l.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"15px",marginBottom:"15px"},children:[(0,R.jsxs)(l.Z,{className:"step-row",children:[(0,R.jsx)("div",{className:"step-number",children:"3"})," ",(0,R.jsx)("div",{className:"step-text",children:"Enter the API key generated by SUBNET"})]}),(0,R.jsx)(l.Z,{sx:{flex:"1",marginTop:"15px",marginLeft:"35px"},children:(0,R.jsx)(b.Z,{value:a,onChange:function(e){return I(e.target.value)},id:"api-key",name:"api-key",placeholder:"",label:"",type:"text"})})]}),(0,R.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"15px"},children:(0,R.jsx)(c.Z,{variant:"contained",color:"primary",onClick:function(){return Je()},disabled:ke||0===a.trim().length,children:"Register"})})]}),(0,R.jsx)(E,{})]});var Ye="mc admin config set {alias} subnet proxy={proxy}",en=(0,R.jsxs)(u.Fragment,{children:[(0,R.jsxs)(l.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"43px"},children:[Re&&(0,R.jsx)(L.Z,{email:null===Fe||void 0===Fe?void 0:Fe.email}),Re?(0,R.jsx)(d.ZP,{item:!0,xs:12,marginTop:"25px",children:(0,R.jsxs)(l.Z,{sx:{padding:"20px","& a":{color:"#2781B0",cursor:"pointer"}},children:["Login to"," ",(0,R.jsx)(x.Z,{href:"https://subnet.min.io",target:"_blank",className:n.link,children:"SUBNET"})," ","to avail support for this MinIO cluster"]})}):null,Re?null:Xe,Re?null:Qe]}),!Re&&Ze&&(0,R.jsxs)(u.Fragment,{children:[(0,R.jsxs)(l.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",padding:"23px",marginTop:"40px",alignItems:"center",justifyContent:"space-between"},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex","& .min-icon":{height:"22px",width:"22px"}},children:[(0,R.jsx)(z.Z,{}),(0,R.jsx)("div",{style:{marginLeft:"10px",fontWeight:600},children:"Proxy Configuration"})]}),(0,R.jsxs)(l.Z,{sx:{marginTop:"10px",marginBottom:"10px",fontSize:"14px"},children:["For airgap/firewalled environments it is possible to"," ",(0,R.jsx)(x.Z,{className:n.link,href:"https://docs.min.io/docs/minio-server-configuration-guide.html?ref=con",target:"_blank",children:"configure a proxy"})," ","to connect to SUBNET ."]}),(0,R.jsx)(l.Z,{children:He&&(0,R.jsx)(b.Z,{disabled:!0,id:"subnetProxy",name:"subnetProxy",placeholder:"",onChange:function(){},label:"",value:Ye,overlayIcon:(0,R.jsx)(f.TI,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(Ye)}})})]}),(0,R.jsx)(l.Z,{sx:{display:"flex"},children:(0,R.jsx)(N.Z,{value:"enableProxy",id:"enableProxy",name:"enableProxy",checked:He,onChange:function(e){Ve(e.target.checked)}})})]}),(0,R.jsxs)(l.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",padding:"23px",marginTop:"40px",alignItems:"center",justifyContent:"center"},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,R.jsx)(v.Z,{})," Cluster does not have internet access? Use"," "]}),(0,R.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",marginLeft:"8px"},children:(0,R.jsx)(x.Z,{className:n.link,onClick:function(){Ke(),be(!Ze)},children:"Offline Activation."})})]})]})]}),nn=Ie?(0,R.jsx)("div",{children:"Loading.."}):en;return(0,R.jsxs)(u.Fragment,{children:[(0,R.jsx)(p.Z,{label:(0,R.jsx)(u.Fragment,{children:Ze?"Register":(0,R.jsx)(F.Z,{to:C.gA.REGISTER_SUPPORT,label:"Offline Registration",executeOnClick:function(){Ke(),be(!Ze)}})}),actions:(0,R.jsx)(u.Fragment,{})}),(0,R.jsx)(g.Z,{children:nn})]})})))},74440:function(e,n,t){t(72791);var i=t(64554),s=t(97506),o=t(80184);n.Z=function(e){var n=e.email,t=void 0===n?"":n;return(0,o.jsxs)(i.Z,{sx:{height:"67px",color:"#ffffff",display:"flex",position:"relative",top:"-30px",left:"-32px",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.Z,{className:"registered-box",children:[(0,o.jsx)(i.Z,{sx:{fontSize:"16px",fontWeight:400},children:"Register status:"}),(0,o.jsxs)(i.Z,{className:"reg-badge-box",children:[(0,o.jsx)(s.Z,{}),(0,o.jsx)(i.Z,{sx:{fontWeight:600},children:"Registered"})]})]}),(0,o.jsxs)(i.Z,{className:"registered-acc-box",sx:{alignItems:"center",justifyContent:"flex-start",display:{sm:"flex",xs:"none"}},children:[(0,o.jsx)(i.Z,{sx:{fontSize:"16px",fontWeight:400},children:"Registered to:"}),(0,o.jsx)(i.Z,{sx:{marginLeft:"8px",fontWeight:600},children:t})]})]})}},30403:function(e,n,t){var i=t(95318);n.Z=void 0;var s=i(t(45649)),o=t(80184),r=(0,s.default)((0,o.jsx)("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"}),"LockOutlined");n.Z=r},3579:function(e,n,t){var i=t(95318);n.Z=void 0;var s=i(t(45649)),o=t(80184),r=(0,s.default)((0,o.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"RemoveRedEye");n.Z=r},20165:function(e,n,t){var i=t(95318);n.Z=void 0;var s=i(t(45649)),o=t(80184),r=(0,s.default)((0,o.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");n.Z=r}}]); -//# sourceMappingURL=471.13d4a140.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[471],{84669:function(e,n,t){t(72791);var i=t(91523),s=t(11135),o=t(25787),r=t(13048),a=t(64554),l=t(80184);n.Z=(0,o.Z)((function(e){return(0,s.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var n=e.to,t=e.label,s=e.classes,o=e.className,c=e.executeOnClick;return(0,l.jsx)(a.Z,{sx:{display:"flex",alignItems:"center"},children:(0,l.jsx)(i.rU,{to:n,className:"".concat(s.link," ").concat(o||""),onClick:function(){c&&c()},children:(0,l.jsxs)("div",{className:s.iconBox,children:[(0,l.jsx)("div",{className:s.icon,children:(0,l.jsx)(r.xN,{})}),(0,l.jsx)("div",{className:s.label,children:t})]})})})}))},80471:function(e,n,t){t.r(n),t.d(n,{default:function(){return O}});var i=t(70885),s=t(1413),o=t(11135),r=t(23814),a=t(25787),l=t(64554),c=t(36151),x=t(23060),d=t(61889),p=t(32291),g=t(74794),u=t(72791),f=t(13048),h=t(3579),m=t(20165),j=t(12590),Z=t(55335),b=t(21435),v=t(68733),y=t(81207),k=t(30403),S=t(90673),w=t(38442),C=t(56087),I=t(60364),T=t(42649),z=t(95792),N=t(37516),R=t(80184),B=function(e){var n=e.icon,t=e.description;return(0,R.jsxs)(l.Z,{sx:{display:"flex","& .min-icon":{marginRight:"10px",height:"23px",width:"23px",marginBottom:"10px"}},children:[n," ",(0,R.jsx)("div",{style:{fontSize:"14px",fontStyle:"italic",color:"#5E5E5E"},children:t})]})},E=function(e){var n=e.hasMargin,t=void 0===n||n;return(0,R.jsxs)(l.Z,{sx:{flex:1,border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"20px",marginLeft:{xs:"0px",sm:"0px",md:t?"30px":""},marginTop:{xs:"0px",sm:t?"30px":""}},children:[(0,R.jsxs)(l.Z,{sx:{fontSize:"16px",fontWeight:600,display:"flex",alignItems:"center",marginBottom:"16px","& .min-icon":{height:"21px",width:"21px",marginRight:"15px"}},children:[(0,R.jsx)(f.M9,{}),(0,R.jsx)("div",{children:"Why should I register?"})]}),(0,R.jsx)(l.Z,{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,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,R.jsx)(B,{icon:(0,R.jsx)(f._q,{}),description:"Call Home Monitoring"}),(0,R.jsx)(B,{icon:(0,R.jsx)(f.to,{}),description:"Health Diagnostics"}),(0,R.jsx)(B,{icon:(0,R.jsx)(f.Fs,{}),description:"Performance Analysis"})]})]})},L=t(74440),F=t(84669),M=function(e){var n=e.icon,t=void 0===n?null:n,i=e.title;return(0,R.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-start"},children:[t,(0,R.jsx)("div",{className:"title-text",children:i})]})},A=(0,I.$j)((function(e){return{operatorMode:e.system.operatorMode}}),{displayErrorMessage:T.Ih}),O=(0,a.Z)((function(e){return(0,o.Z)((0,s.Z)((0,s.Z)((0,s.Z)((0,s.Z)({loading:{paddingTop:8,paddingLeft:40},buttons:{justifyContent:"flex-start",gap:20},localMessage:{fontSize:24,color:"#07193E",fontWeight:"bold",textAlign:"center",marginBottom:10},headerStyle:{color:e.palette.primary.main,fontSize:16,fontWeight:"bold"},registerActivationIcon:{color:e.palette.primary.main,fontSize:16,fontWeight:"bold",marginBottom:20,"& .min-icon":{width:32.12,height:25,marginRight:10,verticalAlign:"middle"}},registerActivationMode:{textAlign:"right","& a":{cursor:"pointer"}},subnetDescription:{textAlign:"left",Font:"normal normal normal 14px/17px Lato",letterSpacing:0,color:"#000000","& span":{fontWeight:"bold"}},registeredStatus:{border:"1px solid #E2E2E2",padding:"24px 24px 24px 24px",borderRadius:2,marginBottom:25,backgroundColor:"#FBFAFA","& .min-icon":{width:20,height:20,marginLeft:48,marginRight:13,verticalAlign:"middle",marginTop:-3},"& span":{fontWeight:"bold"}},offlineRegisterButton:{textAlign:"right",paddingRight:20},copyInputBox:{"& button":{border:"1px solid #5E5E5E",borderRadius:2}},link:{color:"#2781B0",cursor:"pointer"},smallBoxy:{border:"#E5E5E5 1px solid",borderRadius:2,padding:20,backgroundColor:"#fff"},sizedLabel:{minWidth:"75px"}},r.OR),r.qg),r.bK),(0,r.Bz)(e.spacing(4))))}))(A((function(e){var n=e.classes,t=e.displayErrorMessage,s=e.operatorMode,o=(0,u.useState)(""),r=(0,i.Z)(o,2),a=r[0],I=r[1],T=(0,u.useState)(""),B=(0,i.Z)(T,2),A=B[0],O=B[1],P=(0,u.useState)(""),W=(0,i.Z)(P,2),_=W[0],U=W[1],H=(0,u.useState)(""),V=(0,i.Z)(H,2),D=V[0],G=V[1],q=(0,u.useState)(""),K=(0,i.Z)(q,2),$=K[0],J=K[1],Q=(0,u.useState)(""),X=(0,i.Z)(Q,2),Y=X[0],ee=X[1],ne=(0,u.useState)(""),te=(0,i.Z)(ne,2),ie=te[0],se=te[1],oe=(0,u.useState)(""),re=(0,i.Z)(oe,2),ae=re[0],le=re[1],ce=(0,u.useState)([]),xe=(0,i.Z)(ce,2),de=xe[0],pe=xe[1],ge=(0,u.useState)(!1),ue=(0,i.Z)(ge,2),fe=ue[0],he=ue[1],me=(0,u.useState)(!0),je=(0,i.Z)(me,2),Ze=je[0],be=je[1],ve=(0,u.useState)(!1),ye=(0,i.Z)(ve,2),ke=ye[0],Se=ye[1],we=(0,u.useState)(!1),Ce=(0,i.Z)(we,2),Ie=Ce[0],Te=Ce[1],ze=(0,u.useState)(!1),Ne=(0,i.Z)(ze,2),Re=Ne[0],Be=Ne[1],Ee=(0,u.useState)(),Le=(0,i.Z)(Ee,2),Fe=Le[0],Me=Le[1],Ae=(0,u.useState)(!0),Oe=(0,i.Z)(Ae,2),Pe=Oe[0],We=Oe[1],_e=(0,u.useState)(!1),Ue=(0,i.Z)(_e,2),He=Ue[0],Ve=Ue[1],De=function(){ee(""),se(""),le(""),he(!1),be(!0),pe([]),I(""),O(""),U(""),G(""),J("")},Ge=(0,w.F)(C.C3,C.LC[C.gA.LICENSE],!0),qe=(0,u.useCallback)((function(){Ie||(Ge?(Te(!0),y.Z.invoke("GET","/api/v1/subnet/info").then((function(e){Me(e),Be(!0),Te(!1)})).catch((function(e){"License not found"!==e.errorMessage&&t(e),Be(!1),Te(!1)}))):Te(!1))}),[Ie,Ge,t]),Ke=function(){ke||ae||(Se(!0),y.Z.invoke("GET","/api/v1/subnet/registration-token").then((function(e){Se(!1),e&&e.regToken&&le(e.regToken)})).catch((function(e){console.log(e),t(e),Se(!1)})))},$e=function(e,n){var i={token:e,account_id:n};y.Z.invoke("POST","/api/v1/subnet/register",i).then((function(){Se(!1),De(),qe()})).catch((function(e){t(e),Se(!1)}))},Je=function(){if(!ke){Se(!0);var e={username:_,password:A,apiKey:a};y.Z.invoke("POST","/api/v1/subnet/login",e).then((function(e){Se(!1),e&&e.registered?(De(),qe()):e&&e.mfa_token?G(e.mfa_token):e&&e.access_token&&e.organizations.length>0&&(ee(e.access_token),pe(e.organizations),se(e.organizations[0].accountId.toString()))})).catch((function(e){t(e),Se(!1),De()}))}};(0,u.useEffect)((function(){Pe&&(qe(),We(!1))}),[qe,Pe,We]);var Qe,Xe=Ze?(0,R.jsx)(l.Z,{sx:{"& .title-text":{marginLeft:"27px",fontWeight:600}},children:(0,R.jsx)(M,{icon:(0,R.jsx)(j.Z,{}),title:"Register with MinIO Subscription Network"})}):(0,R.jsx)(l.Z,{sx:{"& .title-text":{marginLeft:"27px",fontWeight:600}},children:(0,R.jsx)(M,{icon:(0,R.jsx)(Z.Z,{}),title:" Offline Activation of SUBNET License"})});Qe=Ze?Y&&de.length>0?(0,R.jsxs)(l.Z,{sx:{display:"flex"},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,R.jsx)(l.Z,{sx:{marginTop:"15px",marginBottom:"15px","& .title-text":{marginLeft:"0px"}},children:(0,R.jsx)(M,{title:"Register MinIO cluster"})}),(0,R.jsxs)(l.Z,{children:[(0,R.jsx)(S.Z,{id:"subnet-organization",name:"subnet-organization",onChange:function(e){return se(e.target.value)},label:"Select an organization",value:ie,options:de.map((function(e){return{label:e.company,value:e.accountId.toString()}}))}),(0,R.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"15px"},children:(0,R.jsx)(c.Z,{className:n.button,color:"primary",onClick:function(){ke||(Se(!0),Y&&ie&&$e(Y,ie))},disabled:ke||0===Y.trim().length,variant:"contained",children:"Register"})})]})]}),(0,R.jsx)(E,{})]}):D?(0,R.jsxs)(l.Z,{sx:{display:"flex"},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,R.jsx)(l.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"30px",marginBottom:"30px"},children:"Two-Factor Authentication"}),(0,R.jsx)(l.Z,{children:"Please enter the 6-digit verification code that was sent to your email address. This code will be valid for 5 minutes."}),(0,R.jsx)(l.Z,{sx:{flex:"1",marginTop:"30px"},children:(0,R.jsx)(b.Z,{overlayIcon:(0,R.jsx)(k.Z,{}),id:"subnet-otp",name:"subnet-otp",onChange:function(e){return J(e.target.value)},placeholder:"",label:"",value:$})}),(0,R.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end"},children:(0,R.jsx)(c.Z,{color:"primary",onClick:function(){return function(){if(!ke){Se(!0);var e={username:_,otp:$,mfa_token:D};y.Z.invoke("POST","/api/v1/subnet/login/mfa",e).then((function(e){Se(!1),e&&e.access_token&&e.organizations.length>0&&(1===e.organizations.length?$e(e.access_token,e.organizations[0].accountId.toString()):(ee(e.access_token),pe(e.organizations),se(e.organizations[0].accountId.toString())))})).catch((function(e){t(e),Se(!1),J("")}))}}()},disabled:ke||0===$.trim().length||0===D.trim().length,variant:"contained",children:"Verify"})})]}),(0,R.jsx)(E,{})]}):(0,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:{xs:"column",md:"row"}},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column",flex:"2"},children:[(0,R.jsx)(l.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"30px",marginBottom:"30px"},children:"Use your MinIO Subscription Network login credentials to register this cluster."}),(0,R.jsxs)(l.Z,{sx:{flex:"1"},children:[(0,R.jsx)(b.Z,{className:n.spacerBottom,classes:{inputLabel:n.sizedLabel},id:"subnet-email",name:"subnet-email",onChange:function(e){return U(e.target.value)},label:"Email",value:_,overlayIcon:(0,R.jsx)(f.oy,{})}),(0,R.jsx)(b.Z,{className:n.spacerBottom,classes:{inputLabel:n.sizedLabel},id:"subnet-password",name:"subnet-password",onChange:function(e){return O(e.target.value)},label:"Password",type:fe?"text":"password",value:A,overlayIcon:fe?(0,R.jsx)(m.Z,{}):(0,R.jsx)(h.Z,{}),overlayAction:function(){return he(!fe)}}),(0,R.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end"},children:[(0,R.jsx)(c.Z,{type:"submit",className:n.spacerRight,variant:"outlined",onClick:function(e){e.preventDefault(),window.open("https://min.io/signup?ref=".concat(s?"op":"con"),"_blank")},children:"Sign up"}),(0,R.jsx)(c.Z,{type:"submit",variant:"contained",color:"primary",disabled:ke||0===_.trim().length||0===A.trim().length,onClick:function(){return Je()},children:"Register"})]})]})]}),(0,R.jsx)(E,{})]}):(0,R.jsxs)(l.Z,{sx:{display:"flex"},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column",flex:"2",marginTop:"15px","& .step-number":{color:"#ffffff",height:"25px",width:"25px",background:"#081C42",marginRight:"10px",textAlign:"center",fontWeight:600,borderRadius:"50%"},"& .step-row":{fontSize:"16px",display:"flex",marginTop:"15px",marginBottom:"15px"}},children:[(0,R.jsxs)(l.Z,{children:[(0,R.jsxs)(l.Z,{className:"step-row",children:[(0,R.jsx)("div",{className:"step-number",children:"1"})," ",(0,R.jsx)("div",{className:"step-text",children:"Copy the following registration token"})]}),(0,R.jsx)(l.Z,{sx:{flex:"1",marginTop:"15px",marginLeft:"35px","& input":{color:"#737373"}},children:(0,R.jsx)(b.Z,{id:"registration-token",name:"registration-token",placeholder:"",label:"",type:"text",onChange:function(){},value:ae,overlayIcon:(0,R.jsx)(f.TI,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(ae)}})})]}),(0,R.jsxs)(l.Z,{children:[(0,R.jsxs)(l.Z,{className:"step-row",children:[(0,R.jsx)("div",{className:"step-number",children:"2"}),(0,R.jsx)("div",{className:"step-text",children:"Navigate to SUBNET and register your cluster"})]}),(0,R.jsx)(l.Z,{sx:{flex:"1",marginLeft:"35px"},children:(0,R.jsx)(x.Z,{className:n.link,color:"inherit",href:"https://subnet.min.io/cluster/register",target:"_blank",children:"https://subnet.min.io/cluster/register"})})]}),(0,R.jsxs)(l.Z,{sx:{fontSize:"16px",display:"flex",flexFlow:"column",marginTop:"15px",marginBottom:"15px"},children:[(0,R.jsxs)(l.Z,{className:"step-row",children:[(0,R.jsx)("div",{className:"step-number",children:"3"})," ",(0,R.jsx)("div",{className:"step-text",children:"Enter the API key generated by SUBNET"})]}),(0,R.jsx)(l.Z,{sx:{flex:"1",marginTop:"15px",marginLeft:"35px"},children:(0,R.jsx)(b.Z,{value:a,onChange:function(e){return I(e.target.value)},id:"api-key",name:"api-key",placeholder:"",label:"",type:"text"})})]}),(0,R.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"flex-end",marginTop:"15px"},children:(0,R.jsx)(c.Z,{variant:"contained",color:"primary",onClick:function(){return Je()},disabled:ke||0===a.trim().length,children:"Register"})})]}),(0,R.jsx)(E,{})]});var Ye="mc admin config set {alias} subnet proxy={proxy}",en=(0,R.jsxs)(u.Fragment,{children:[(0,R.jsxs)(l.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",flexFlow:"column",padding:"43px"},children:[Re&&(0,R.jsx)(L.Z,{email:null===Fe||void 0===Fe?void 0:Fe.email}),Re?(0,R.jsx)(d.ZP,{item:!0,xs:12,marginTop:"25px",children:(0,R.jsxs)(l.Z,{sx:{padding:"20px","& a":{color:"#2781B0",cursor:"pointer"}},children:["Login to"," ",(0,R.jsx)(x.Z,{href:"https://subnet.min.io",target:"_blank",className:n.link,children:"SUBNET"})," ","to avail support for this MinIO cluster"]})}):null,Re?null:Xe,Re?null:Qe]}),!Re&&Ze&&(0,R.jsxs)(u.Fragment,{children:[(0,R.jsxs)(l.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",padding:"23px",marginTop:"40px",alignItems:"center",justifyContent:"space-between"},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex","& .min-icon":{height:"22px",width:"22px"}},children:[(0,R.jsx)(z.Z,{}),(0,R.jsx)("div",{style:{marginLeft:"10px",fontWeight:600},children:"Proxy Configuration"})]}),(0,R.jsxs)(l.Z,{sx:{marginTop:"10px",marginBottom:"10px",fontSize:"14px"},children:["For airgap/firewalled environments it is possible to"," ",(0,R.jsx)(x.Z,{className:n.link,href:"https://docs.min.io/docs/minio-server-configuration-guide.html?ref=con",target:"_blank",children:"configure a proxy"})," ","to connect to SUBNET ."]}),(0,R.jsx)(l.Z,{children:He&&(0,R.jsx)(b.Z,{disabled:!0,id:"subnetProxy",name:"subnetProxy",placeholder:"",onChange:function(){},label:"",value:Ye,overlayIcon:(0,R.jsx)(f.TI,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(Ye)}})})]}),(0,R.jsx)(l.Z,{sx:{display:"flex"},children:(0,R.jsx)(N.Z,{value:"enableProxy",id:"enableProxy",name:"enableProxy",checked:He,onChange:function(e){Ve(e.target.checked)}})})]}),(0,R.jsxs)(l.Z,{sx:{border:"1px solid #eaeaea",borderRadius:"2px",display:"flex",padding:"23px",marginTop:"40px",alignItems:"center",justifyContent:"center"},children:[(0,R.jsxs)(l.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,R.jsx)(v.Z,{})," Cluster does not have internet access? Use"," "]}),(0,R.jsx)(l.Z,{sx:{display:"flex",alignItems:"center",marginLeft:"8px"},children:(0,R.jsx)(x.Z,{className:n.link,onClick:function(){Ke(),be(!Ze)},children:"Offline Activation."})})]})]})]}),nn=Ie?(0,R.jsx)("div",{children:"Loading.."}):en;return(0,R.jsxs)(u.Fragment,{children:[(0,R.jsx)(p.Z,{label:(0,R.jsx)(u.Fragment,{children:Ze?"Register":(0,R.jsx)(F.Z,{to:C.gA.REGISTER_SUPPORT,label:"Offline Registration",executeOnClick:function(){Ke(),be(!Ze)}})}),actions:(0,R.jsx)(u.Fragment,{})}),(0,R.jsx)(g.Z,{children:nn})]})})))},74440:function(e,n,t){t(72791);var i=t(64554),s=t(97506),o=t(80184);n.Z=function(e){var n=e.email,t=void 0===n?"":n;return(0,o.jsxs)(i.Z,{sx:{height:"67px",color:"#ffffff",display:"flex",position:"relative",top:"-30px",left:"-32px",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.Z,{className:"registered-box",children:[(0,o.jsx)(i.Z,{sx:{fontSize:"16px",fontWeight:400},children:"Register status:"}),(0,o.jsxs)(i.Z,{className:"reg-badge-box",children:[(0,o.jsx)(s.Z,{}),(0,o.jsx)(i.Z,{sx:{fontWeight:600},children:"Registered"})]})]}),(0,o.jsxs)(i.Z,{className:"registered-acc-box",sx:{alignItems:"center",justifyContent:"flex-start",display:{sm:"flex",xs:"none"}},children:[(0,o.jsx)(i.Z,{sx:{fontSize:"16px",fontWeight:400},children:"Registered to:"}),(0,o.jsx)(i.Z,{sx:{marginLeft:"8px",fontWeight:600},children:t})]})]})}},30403:function(e,n,t){var i=t(95318);n.Z=void 0;var s=i(t(45649)),o=t(80184),r=(0,s.default)((0,o.jsx)("path",{d:"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z"}),"LockOutlined");n.Z=r},3579:function(e,n,t){var i=t(95318);n.Z=void 0;var s=i(t(45649)),o=t(80184),r=(0,s.default)((0,o.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"RemoveRedEye");n.Z=r},20165:function(e,n,t){var i=t(95318);n.Z=void 0;var s=i(t(45649)),o=t(80184),r=(0,s.default)((0,o.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");n.Z=r}}]); +//# sourceMappingURL=471.45f246bd.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/471.13d4a140.chunk.js.map b/portal-ui/build/static/js/471.45f246bd.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/471.13d4a140.chunk.js.map rename to portal-ui/build/static/js/471.45f246bd.chunk.js.map index cc2775539..2cb92536c 100644 --- a/portal-ui/build/static/js/471.13d4a140.chunk.js.map +++ b/portal-ui/build/static/js/471.45f246bd.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/471.13d4a140.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Support/RegisterHelpBox.tsx","screens/Console/Support/Register.tsx","screens/Console/Support/RegistrationStatusBanner.tsx","../node_modules/@mui/icons-material/LockOutlined.js","../node_modules/@mui/icons-material/RemoveRedEye.js","../node_modules/@mui/icons-material/VisibilityOff.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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\n","import { Box } from \"@mui/material\";\nimport {\n CallHomeFeatureIcon,\n DiagnosticsFeatureIcon,\n HelpIconFilled,\n PerformanceFeatureIcon,\n} from \"../../../icons\";\nimport React from \"react\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string;\n}) => {\n return (\n \n {icon}{\" \"}\n
    \n {description}\n
    \n \n );\n};\nconst RegisterHelpBox = ({ hasMargin = true }: { hasMargin?: boolean }) => {\n return (\n \n \n \n
    Why should I register?
    \n \n \n Registering this cluster with the MinIO Subscription Network (SUBNET)\n provides the following benefits in addition to the commercial license\n 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 \n );\n};\n\nexport default RegisterHelpBox;\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, Button, Grid, Link } from \"@mui/material\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { CopyIcon, UsersIcon } from \"../../../icons\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport OnlineRegistrationIcon from \"../../../icons/OnlineRegistrationIcon\";\nimport OfflineRegistrationIcon from \"../../../icons/OfflineRegistrationIcon\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport OfflineRegistrationBackIcon from \"../../../icons/OfflineRegistrationBackIcon\";\nimport api from \"../../../common/api\";\n\nimport {\n SubnetInfo,\n SubnetLoginRequest,\n SubnetLoginResponse,\n SubnetLoginWithMFARequest,\n SubnetOrganization,\n SubnetRegisterRequest,\n SubnetRegTokenResponse,\n} from \"../License/types\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport LockOutlinedIcon from \"@mui/icons-material/LockOutlined\";\nimport SelectWrapper from \"../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_PAGES_PERMISSIONS,\n} from \"../../../common/SecureComponent/permissions\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport SettingsIcon from \"../../../icons/SettingsIcon\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport { AppState } from \"../../../store\";\n\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport RegistrationStatusBanner from \"./RegistrationStatusBanner\";\nimport BackLink from \"../../../common/BackLink\";\n\ninterface IRegister {\n classes: any;\n displayErrorMessage: typeof setErrorSnackMessage;\n operatorMode: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n loading: {\n paddingTop: 8,\n paddingLeft: 40,\n },\n buttons: {\n justifyContent: \"flex-start\",\n gap: 20,\n },\n localMessage: {\n fontSize: 24,\n color: \"#07193E\",\n fontWeight: \"bold\",\n textAlign: \"center\",\n marginBottom: 10,\n },\n headerStyle: {\n color: theme.palette.primary.main,\n fontSize: 16,\n fontWeight: \"bold\",\n },\n registerActivationIcon: {\n color: theme.palette.primary.main,\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 20,\n \"& .min-icon\": {\n width: 32.12,\n height: 25,\n marginRight: 10,\n verticalAlign: \"middle\",\n },\n },\n registerActivationMode: {\n textAlign: \"right\",\n \"& a\": {\n cursor: \"pointer\",\n },\n },\n subnetDescription: {\n textAlign: \"left\",\n Font: \"normal normal normal 14px/17px Lato\",\n letterSpacing: 0,\n color: \"#000000\",\n \"& span\": {\n fontWeight: \"bold\",\n },\n },\n registeredStatus: {\n border: \"1px solid #E2E2E2\",\n padding: \"24px 24px 24px 24px\",\n borderRadius: 2,\n marginBottom: 25,\n backgroundColor: \"#FBFAFA\",\n \"& .min-icon\": {\n width: 20,\n height: 20,\n marginLeft: 48,\n marginRight: 13,\n verticalAlign: \"middle\",\n marginTop: -3,\n },\n \"& span\": {\n fontWeight: \"bold\",\n },\n },\n offlineRegisterButton: {\n textAlign: \"right\",\n paddingRight: 20,\n },\n copyInputBox: {\n \"& button\": {\n border: \"1px solid #5E5E5E\",\n borderRadius: 2,\n },\n },\n link: {\n color: \"#2781B0\",\n cursor: \"pointer\",\n },\n smallBoxy: {\n border: \"#E5E5E5 1px solid\",\n borderRadius: 2,\n padding: 20,\n backgroundColor: \"#fff\",\n },\n sizedLabel: {\n minWidth: \"75px\",\n },\n ...actionsTray,\n ...searchField,\n ...spacingUtils,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst FormTitle = ({ icon = null, title }: { icon?: any; title: any }) => {\n return (\n \n {icon}\n
    {title}
    \n \n );\n};\n\nconst Register = ({\n classes,\n displayErrorMessage,\n operatorMode,\n}: IRegister) => {\n const [license, setLicense] = useState(\"\");\n const [subnetPassword, setSubnetPassword] = useState(\"\");\n const [subnetEmail, setSubnetEmail] = useState(\"\");\n const [subnetMFAToken, setSubnetMFAToken] = useState(\"\");\n const [subnetOTP, setSubnetOTP] = useState(\"\");\n const [subnetAccessToken, setSubnetAccessToken] = useState(\"\");\n const [selectedSubnetOrganization, setSelectedSubnetOrganization] =\n useState(\"\");\n const [subnetRegToken, setSubnetRegToken] = useState(\"\");\n const [subnetOrganizations, setSubnetOrganizations] = useState<\n SubnetOrganization[]\n >([]);\n const [showPassword, setShowPassword] = useState(false);\n const [onlineActivation, setOnlineActivation] = useState(true);\n const [loading, setLoading] = useState(false);\n const [loadingLicenseInfo, setLoadingLicenseInfo] = useState(false);\n const [clusterRegistered, setClusterRegistered] = useState(false);\n const [licenseInfo, setLicenseInfo] = useState();\n\n const [initialLicenseLoading, setInitialLicenseLoading] =\n useState(true);\n const [displaySubnetProxy, setDisplaySubnetProxy] = useState(false);\n const clearForm = () => {\n setSubnetAccessToken(\"\");\n setSelectedSubnetOrganization(\"\");\n setSubnetRegToken(\"\");\n setShowPassword(false);\n setOnlineActivation(true);\n setSubnetOrganizations([]);\n setLicense(\"\");\n setSubnetPassword(\"\");\n setSubnetEmail(\"\");\n setSubnetMFAToken(\"\");\n setSubnetOTP(\"\");\n };\n\n const getSubnetInfo = hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.LICENSE],\n true\n );\n\n const fetchLicenseInfo = useCallback(() => {\n if (loadingLicenseInfo) {\n return;\n }\n if (getSubnetInfo) {\n setLoadingLicenseInfo(true);\n api\n .invoke(\"GET\", `/api/v1/subnet/info`)\n .then((res: SubnetInfo) => {\n setLicenseInfo(res);\n setClusterRegistered(true);\n setLoadingLicenseInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n if (err.errorMessage !== \"License not found\") {\n displayErrorMessage(err);\n }\n setClusterRegistered(false);\n setLoadingLicenseInfo(false);\n });\n } else {\n setLoadingLicenseInfo(false);\n }\n }, [loadingLicenseInfo, getSubnetInfo, displayErrorMessage]);\n\n const fetchSubnetRegToken = () => {\n if (loading || subnetRegToken) {\n return;\n }\n setLoading(true);\n api\n .invoke(\"GET\", \"/api/v1/subnet/registration-token\")\n .then((resp: SubnetRegTokenResponse) => {\n setLoading(false);\n if (resp && resp.regToken) {\n setSubnetRegToken(resp.regToken);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n console.log(err);\n displayErrorMessage(err);\n setLoading(false);\n });\n };\n\n const callRegister = (token: string, account_id: string) => {\n const request: SubnetRegisterRequest = {\n token: token,\n account_id: account_id,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/register\", request)\n .then(() => {\n setLoading(false);\n clearForm();\n fetchLicenseInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n });\n };\n const subnetRegister = () => {\n if (loading) {\n return;\n }\n setLoading(true);\n if (subnetAccessToken && selectedSubnetOrganization) {\n callRegister(subnetAccessToken, selectedSubnetOrganization);\n }\n };\n\n const subnetLoginWithMFA = () => {\n if (loading) {\n return;\n }\n 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 setLoading(false);\n if (resp && resp.access_token && resp.organizations.length > 0) {\n if (resp.organizations.length === 1) {\n callRegister(\n resp.access_token,\n resp.organizations[0].accountId.toString()\n );\n } else {\n setSubnetAccessToken(resp.access_token);\n setSubnetOrganizations(resp.organizations);\n setSelectedSubnetOrganization(\n resp.organizations[0].accountId.toString()\n );\n }\n }\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n setSubnetOTP(\"\");\n });\n };\n\n const subnetLogin = () => {\n if (loading) {\n return;\n }\n 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 setLoading(false);\n if (resp && resp.registered) {\n clearForm();\n fetchLicenseInfo();\n } else if (resp && resp.mfa_token) {\n setSubnetMFAToken(resp.mfa_token);\n } else if (resp && resp.access_token && resp.organizations.length > 0) {\n setSubnetAccessToken(resp.access_token);\n setSubnetOrganizations(resp.organizations);\n setSelectedSubnetOrganization(\n resp.organizations[0].accountId.toString()\n );\n }\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n clearForm();\n });\n };\n\n useEffect(() => {\n if (initialLicenseLoading) {\n fetchLicenseInfo();\n setInitialLicenseLoading(false);\n }\n }, [fetchLicenseInfo, initialLicenseLoading, setInitialLicenseLoading]);\n\n const formTitle = onlineActivation ? (\n \n }\n title={`Register with MinIO Subscription Network`}\n />\n \n ) : (\n \n }\n title={` Offline Activation of SUBNET License`}\n />\n \n );\n\n let clusterRegistrationForm: JSX.Element;\n\n if (onlineActivation) {\n if (subnetAccessToken && subnetOrganizations.length > 0) {\n clusterRegistrationForm = (\n \n \n \n \n \n \n \n setSelectedSubnetOrganization(e.target.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 subnetRegister()}\n disabled={loading || subnetAccessToken.trim().length === 0}\n variant=\"contained\"\n >\n Register\n \n \n \n \n \n \n );\n } else if (subnetMFAToken) {\n clusterRegistrationForm = (\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 subnetLoginWithMFA()}\n disabled={\n loading ||\n subnetOTP.trim().length === 0 ||\n subnetMFAToken.trim().length === 0\n }\n variant=\"contained\"\n >\n Verify\n \n \n \n\n \n \n );\n } else {\n clusterRegistrationForm = (\n \n \n \n Use your MinIO Subscription Network login credentials to register\n this cluster.\n \n \n ) =>\n setSubnetEmail(event.target.value)\n }\n label=\"Email\"\n value={subnetEmail}\n overlayIcon={}\n />\n ) =>\n setSubnetPassword(event.target.value)\n }\n label=\"Password\"\n type={showPassword ? \"text\" : \"password\"}\n value={subnetPassword}\n overlayIcon={\n showPassword ? : \n }\n overlayAction={() => setShowPassword(!showPassword)}\n />\n\n \n {\n e.preventDefault();\n window.open(\n `https://min.io/signup?ref=${\n operatorMode ? \"op\" : \"con\"\n }`,\n \"_blank\"\n );\n }}\n >\n Sign up\n \n subnetLogin()}\n >\n Register\n \n \n \n \n \n \n );\n }\n } else {\n clusterRegistrationForm = (\n \n \n \n \n
    1
    {\" \"}\n
    \n Copy the following registration token\n
    \n
    \n\n \n {}}\n value={subnetRegToken}\n overlayIcon={}\n extraInputProps={{\n readOnly: true,\n }}\n overlayAction={() =>\n navigator.clipboard.writeText(subnetRegToken)\n }\n />\n
    \n \n\n \n \n
    2
    \n
    \n Navigate to SUBNET and register your cluster\n
    \n
    \n\n \n \n https://subnet.min.io/cluster/register\n \n
    \n \n\n \n \n
    3
    {\" \"}\n
    \n Enter the API key generated by SUBNET\n
    \n
    \n\n \n ) =>\n setLicense(event.target.value)\n }\n id=\"api-key\"\n name=\"api-key\"\n placeholder=\"\"\n label=\"\"\n type=\"text\"\n />\n \n \n\n \n subnetLogin()}\n disabled={loading || license.trim().length === 0}\n >\n Register\n \n \n \n\n \n \n );\n }\n\n const proxyConfigurationCommand =\n \"mc admin config set {alias} subnet proxy={proxy}\";\n\n const regUi = (\n \n \n {clusterRegistered && (\n \n )}\n {clusterRegistered ? (\n \n \n Login to{\" \"}\n \n SUBNET\n {\" \"}\n to avail support for this MinIO cluster\n \n \n ) : null}\n\n {clusterRegistered ? null : formTitle}\n\n {clusterRegistered ? null : clusterRegistrationForm}\n \n\n {!clusterRegistered && onlineActivation && (\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 extraInputProps={{\n readOnly: true,\n }}\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 Cluster does not have internet\n access? Use{\" \"}\n \n \n {\n fetchSubnetRegToken();\n setOnlineActivation(!onlineActivation);\n }}\n >\n Offline Activation.\n \n \n \n
    \n )}\n
    \n );\n\n const loadingUi =
    Loading..
    ;\n const uiToShow = loadingLicenseInfo ? loadingUi : regUi;\n\n return (\n \n \n {!onlineActivation ? (\n {\n fetchSubnetRegToken();\n setOnlineActivation(!onlineActivation);\n }}\n />\n ) : (\n \"Register\"\n )}\n \n }\n actions={}\n />\n\n {uiToShow}\n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n operatorMode: state.system.operatorMode,\n});\n\nconst connector = connect(mapState, {\n displayErrorMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(Register));\n","import React from \"react\";\nimport { Box } from \"@mui/material\";\nimport VerifiedIcon from \"../../../icons/VerifiedIcon\";\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 _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"\n}), 'LockOutlined');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'RemoveRedEye');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","FeatureItem","description","Box","marginBottom","style","fontStyle","hasMargin","flex","border","flexFlow","padding","marginLeft","xs","sm","md","marginTop","FormTitle","title","justifyContent","connector","connect","state","operatorMode","system","displayErrorMessage","setErrorSnackMessage","loading","buttons","gap","localMessage","textAlign","headerStyle","main","registerActivationIcon","verticalAlign","registerActivationMode","cursor","subnetDescription","Font","letterSpacing","registeredStatus","backgroundColor","offlineRegisterButton","copyInputBox","smallBoxy","sizedLabel","minWidth","actionsTray","searchField","spacingUtils","containerForHeader","spacing","useState","license","setLicense","subnetPassword","setSubnetPassword","subnetEmail","setSubnetEmail","subnetMFAToken","setSubnetMFAToken","subnetOTP","setSubnetOTP","subnetAccessToken","setSubnetAccessToken","selectedSubnetOrganization","setSelectedSubnetOrganization","subnetRegToken","setSubnetRegToken","subnetOrganizations","setSubnetOrganizations","showPassword","setShowPassword","onlineActivation","setOnlineActivation","setLoading","loadingLicenseInfo","setLoadingLicenseInfo","clusterRegistered","setClusterRegistered","licenseInfo","setLicenseInfo","initialLicenseLoading","setInitialLicenseLoading","displaySubnetProxy","setDisplaySubnetProxy","clearForm","getSubnetInfo","hasPermission","CONSOLE_UI_RESOURCE","IAM_PAGES_PERMISSIONS","IAM_PAGES","fetchLicenseInfo","useCallback","api","then","res","catch","err","errorMessage","fetchSubnetRegToken","resp","regToken","console","log","callRegister","token","account_id","request","subnetLogin","username","password","apiKey","registered","mfa_token","access_token","organizations","length","accountId","toString","useEffect","clusterRegistrationForm","formTitle","OnlineRegistrationIcon","OfflineRegistrationIcon","SelectWrapper","id","name","onChange","e","target","value","options","map","organization","company","Button","button","disabled","trim","variant","InputBoxWrapper","overlayIcon","LockOutlined","event","placeholder","otp","subnetLoginWithMFA","spacerBottom","inputLabel","type","VisibilityOff","RemoveRedEye","overlayAction","spacerRight","preventDefault","window","open","extraInputProps","readOnly","navigator","clipboard","writeText","Link","href","proxyConfigurationCommand","regUi","Fragment","RegistrationStatusBanner","email","Grid","item","SettingsIcon","FormSwitchWrapper","checked","OfflineRegistrationBackIcon","uiToShow","PageHeader","BackLink","actions","PageLayout","position","top","left","fill","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/471.45f246bd.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Support/RegisterHelpBox.tsx","screens/Console/Support/Register.tsx","screens/Console/Support/RegistrationStatusBanner.tsx","../node_modules/@mui/icons-material/LockOutlined.js","../node_modules/@mui/icons-material/RemoveRedEye.js","../node_modules/@mui/icons-material/VisibilityOff.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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\n","import { Box } from \"@mui/material\";\nimport {\n CallHomeFeatureIcon,\n DiagnosticsFeatureIcon,\n HelpIconFilled,\n PerformanceFeatureIcon,\n} from \"../../../icons\";\nimport React from \"react\";\n\nconst FeatureItem = ({\n icon,\n description,\n}: {\n icon: any;\n description: string;\n}) => {\n return (\n \n {icon}{\" \"}\n
    \n {description}\n
    \n \n );\n};\nconst RegisterHelpBox = ({ hasMargin = true }: { hasMargin?: boolean }) => {\n return (\n \n \n \n
    Why should I register?
    \n \n \n Registering this cluster with the MinIO Subscription Network (SUBNET)\n provides the following benefits in addition to the commercial license\n 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 \n );\n};\n\nexport default RegisterHelpBox;\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Box, Button, Grid, Link } from \"@mui/material\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport React, { Fragment, useCallback, useEffect, useState } from \"react\";\nimport { CopyIcon, UsersIcon } from \"../../../icons\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport OnlineRegistrationIcon from \"../../../icons/OnlineRegistrationIcon\";\nimport OfflineRegistrationIcon from \"../../../icons/OfflineRegistrationIcon\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport OfflineRegistrationBackIcon from \"../../../icons/OfflineRegistrationBackIcon\";\nimport api from \"../../../common/api\";\n\nimport {\n SubnetInfo,\n SubnetLoginRequest,\n SubnetLoginResponse,\n SubnetLoginWithMFARequest,\n SubnetOrganization,\n SubnetRegisterRequest,\n SubnetRegTokenResponse,\n} from \"../License/types\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport LockOutlinedIcon from \"@mui/icons-material/LockOutlined\";\nimport SelectWrapper from \"../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_PAGES_PERMISSIONS,\n} from \"../../../common/SecureComponent/permissions\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport SettingsIcon from \"../../../icons/SettingsIcon\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport { AppState } from \"../../../store\";\n\nimport RegisterHelpBox from \"./RegisterHelpBox\";\nimport RegistrationStatusBanner from \"./RegistrationStatusBanner\";\nimport BackLink from \"../../../common/BackLink\";\n\ninterface IRegister {\n classes: any;\n displayErrorMessage: typeof setErrorSnackMessage;\n operatorMode: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n loading: {\n paddingTop: 8,\n paddingLeft: 40,\n },\n buttons: {\n justifyContent: \"flex-start\",\n gap: 20,\n },\n localMessage: {\n fontSize: 24,\n color: \"#07193E\",\n fontWeight: \"bold\",\n textAlign: \"center\",\n marginBottom: 10,\n },\n headerStyle: {\n color: theme.palette.primary.main,\n fontSize: 16,\n fontWeight: \"bold\",\n },\n registerActivationIcon: {\n color: theme.palette.primary.main,\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 20,\n \"& .min-icon\": {\n width: 32.12,\n height: 25,\n marginRight: 10,\n verticalAlign: \"middle\",\n },\n },\n registerActivationMode: {\n textAlign: \"right\",\n \"& a\": {\n cursor: \"pointer\",\n },\n },\n subnetDescription: {\n textAlign: \"left\",\n Font: \"normal normal normal 14px/17px Lato\",\n letterSpacing: 0,\n color: \"#000000\",\n \"& span\": {\n fontWeight: \"bold\",\n },\n },\n registeredStatus: {\n border: \"1px solid #E2E2E2\",\n padding: \"24px 24px 24px 24px\",\n borderRadius: 2,\n marginBottom: 25,\n backgroundColor: \"#FBFAFA\",\n \"& .min-icon\": {\n width: 20,\n height: 20,\n marginLeft: 48,\n marginRight: 13,\n verticalAlign: \"middle\",\n marginTop: -3,\n },\n \"& span\": {\n fontWeight: \"bold\",\n },\n },\n offlineRegisterButton: {\n textAlign: \"right\",\n paddingRight: 20,\n },\n copyInputBox: {\n \"& button\": {\n border: \"1px solid #5E5E5E\",\n borderRadius: 2,\n },\n },\n link: {\n color: \"#2781B0\",\n cursor: \"pointer\",\n },\n smallBoxy: {\n border: \"#E5E5E5 1px solid\",\n borderRadius: 2,\n padding: 20,\n backgroundColor: \"#fff\",\n },\n sizedLabel: {\n minWidth: \"75px\",\n },\n ...actionsTray,\n ...searchField,\n ...spacingUtils,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst FormTitle = ({ icon = null, title }: { icon?: any; title: any }) => {\n return (\n \n {icon}\n
    {title}
    \n \n );\n};\n\nconst Register = ({\n classes,\n displayErrorMessage,\n operatorMode,\n}: IRegister) => {\n const [license, setLicense] = useState(\"\");\n const [subnetPassword, setSubnetPassword] = useState(\"\");\n const [subnetEmail, setSubnetEmail] = useState(\"\");\n const [subnetMFAToken, setSubnetMFAToken] = useState(\"\");\n const [subnetOTP, setSubnetOTP] = useState(\"\");\n const [subnetAccessToken, setSubnetAccessToken] = useState(\"\");\n const [selectedSubnetOrganization, setSelectedSubnetOrganization] =\n useState(\"\");\n const [subnetRegToken, setSubnetRegToken] = useState(\"\");\n const [subnetOrganizations, setSubnetOrganizations] = useState<\n SubnetOrganization[]\n >([]);\n const [showPassword, setShowPassword] = useState(false);\n const [onlineActivation, setOnlineActivation] = useState(true);\n const [loading, setLoading] = useState(false);\n const [loadingLicenseInfo, setLoadingLicenseInfo] = useState(false);\n const [clusterRegistered, setClusterRegistered] = useState(false);\n const [licenseInfo, setLicenseInfo] = useState();\n\n const [initialLicenseLoading, setInitialLicenseLoading] =\n useState(true);\n const [displaySubnetProxy, setDisplaySubnetProxy] = useState(false);\n const clearForm = () => {\n setSubnetAccessToken(\"\");\n setSelectedSubnetOrganization(\"\");\n setSubnetRegToken(\"\");\n setShowPassword(false);\n setOnlineActivation(true);\n setSubnetOrganizations([]);\n setLicense(\"\");\n setSubnetPassword(\"\");\n setSubnetEmail(\"\");\n setSubnetMFAToken(\"\");\n setSubnetOTP(\"\");\n };\n\n const getSubnetInfo = hasPermission(\n CONSOLE_UI_RESOURCE,\n IAM_PAGES_PERMISSIONS[IAM_PAGES.LICENSE],\n true\n );\n\n const fetchLicenseInfo = useCallback(() => {\n if (loadingLicenseInfo) {\n return;\n }\n if (getSubnetInfo) {\n setLoadingLicenseInfo(true);\n api\n .invoke(\"GET\", `/api/v1/subnet/info`)\n .then((res: SubnetInfo) => {\n setLicenseInfo(res);\n setClusterRegistered(true);\n setLoadingLicenseInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n if (err.errorMessage !== \"License not found\") {\n displayErrorMessage(err);\n }\n setClusterRegistered(false);\n setLoadingLicenseInfo(false);\n });\n } else {\n setLoadingLicenseInfo(false);\n }\n }, [loadingLicenseInfo, getSubnetInfo, displayErrorMessage]);\n\n const fetchSubnetRegToken = () => {\n if (loading || subnetRegToken) {\n return;\n }\n setLoading(true);\n api\n .invoke(\"GET\", \"/api/v1/subnet/registration-token\")\n .then((resp: SubnetRegTokenResponse) => {\n setLoading(false);\n if (resp && resp.regToken) {\n setSubnetRegToken(resp.regToken);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n console.log(err);\n displayErrorMessage(err);\n setLoading(false);\n });\n };\n\n const callRegister = (token: string, account_id: string) => {\n const request: SubnetRegisterRequest = {\n token: token,\n account_id: account_id,\n };\n api\n .invoke(\"POST\", \"/api/v1/subnet/register\", request)\n .then(() => {\n setLoading(false);\n clearForm();\n fetchLicenseInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n });\n };\n const subnetRegister = () => {\n if (loading) {\n return;\n }\n setLoading(true);\n if (subnetAccessToken && selectedSubnetOrganization) {\n callRegister(subnetAccessToken, selectedSubnetOrganization);\n }\n };\n\n const subnetLoginWithMFA = () => {\n if (loading) {\n return;\n }\n 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 setLoading(false);\n if (resp && resp.access_token && resp.organizations.length > 0) {\n if (resp.organizations.length === 1) {\n callRegister(\n resp.access_token,\n resp.organizations[0].accountId.toString()\n );\n } else {\n setSubnetAccessToken(resp.access_token);\n setSubnetOrganizations(resp.organizations);\n setSelectedSubnetOrganization(\n resp.organizations[0].accountId.toString()\n );\n }\n }\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n setSubnetOTP(\"\");\n });\n };\n\n const subnetLogin = () => {\n if (loading) {\n return;\n }\n 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 setLoading(false);\n if (resp && resp.registered) {\n clearForm();\n fetchLicenseInfo();\n } else if (resp && resp.mfa_token) {\n setSubnetMFAToken(resp.mfa_token);\n } else if (resp && resp.access_token && resp.organizations.length > 0) {\n setSubnetAccessToken(resp.access_token);\n setSubnetOrganizations(resp.organizations);\n setSelectedSubnetOrganization(\n resp.organizations[0].accountId.toString()\n );\n }\n })\n .catch((err: ErrorResponseHandler) => {\n displayErrorMessage(err);\n setLoading(false);\n clearForm();\n });\n };\n\n useEffect(() => {\n if (initialLicenseLoading) {\n fetchLicenseInfo();\n setInitialLicenseLoading(false);\n }\n }, [fetchLicenseInfo, initialLicenseLoading, setInitialLicenseLoading]);\n\n const formTitle = onlineActivation ? (\n \n }\n title={`Register with MinIO Subscription Network`}\n />\n \n ) : (\n \n }\n title={` Offline Activation of SUBNET License`}\n />\n \n );\n\n let clusterRegistrationForm: JSX.Element;\n\n if (onlineActivation) {\n if (subnetAccessToken && subnetOrganizations.length > 0) {\n clusterRegistrationForm = (\n \n \n \n \n \n \n \n setSelectedSubnetOrganization(e.target.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 subnetRegister()}\n disabled={loading || subnetAccessToken.trim().length === 0}\n variant=\"contained\"\n >\n Register\n \n \n \n \n \n \n );\n } else if (subnetMFAToken) {\n clusterRegistrationForm = (\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 subnetLoginWithMFA()}\n disabled={\n loading ||\n subnetOTP.trim().length === 0 ||\n subnetMFAToken.trim().length === 0\n }\n variant=\"contained\"\n >\n Verify\n \n \n \n\n \n \n );\n } else {\n clusterRegistrationForm = (\n \n \n \n Use your MinIO Subscription Network login credentials to register\n this cluster.\n \n \n ) =>\n setSubnetEmail(event.target.value)\n }\n label=\"Email\"\n value={subnetEmail}\n overlayIcon={}\n />\n ) =>\n setSubnetPassword(event.target.value)\n }\n label=\"Password\"\n type={showPassword ? \"text\" : \"password\"}\n value={subnetPassword}\n overlayIcon={\n showPassword ? : \n }\n overlayAction={() => setShowPassword(!showPassword)}\n />\n\n \n {\n e.preventDefault();\n window.open(\n `https://min.io/signup?ref=${\n operatorMode ? \"op\" : \"con\"\n }`,\n \"_blank\"\n );\n }}\n >\n Sign up\n \n subnetLogin()}\n >\n Register\n \n \n \n \n \n \n );\n }\n } else {\n clusterRegistrationForm = (\n \n \n \n \n
    1
    {\" \"}\n
    \n Copy the following registration token\n
    \n
    \n\n \n {}}\n value={subnetRegToken}\n overlayIcon={}\n extraInputProps={{\n readOnly: true,\n }}\n overlayAction={() =>\n navigator.clipboard.writeText(subnetRegToken)\n }\n />\n
    \n \n\n \n \n
    2
    \n
    \n Navigate to SUBNET and register your cluster\n
    \n
    \n\n \n \n https://subnet.min.io/cluster/register\n \n
    \n \n\n \n \n
    3
    {\" \"}\n
    \n Enter the API key generated by SUBNET\n
    \n
    \n\n \n ) =>\n setLicense(event.target.value)\n }\n id=\"api-key\"\n name=\"api-key\"\n placeholder=\"\"\n label=\"\"\n type=\"text\"\n />\n \n \n\n \n subnetLogin()}\n disabled={loading || license.trim().length === 0}\n >\n Register\n \n \n \n\n \n \n );\n }\n\n const proxyConfigurationCommand =\n \"mc admin config set {alias} subnet proxy={proxy}\";\n\n const regUi = (\n \n \n {clusterRegistered && (\n \n )}\n {clusterRegistered ? (\n \n \n Login to{\" \"}\n \n SUBNET\n {\" \"}\n to avail support for this MinIO cluster\n \n \n ) : null}\n\n {clusterRegistered ? null : formTitle}\n\n {clusterRegistered ? null : clusterRegistrationForm}\n \n\n {!clusterRegistered && onlineActivation && (\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 extraInputProps={{\n readOnly: true,\n }}\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 Cluster does not have internet\n access? Use{\" \"}\n \n \n {\n fetchSubnetRegToken();\n setOnlineActivation(!onlineActivation);\n }}\n >\n Offline Activation.\n \n \n \n
    \n )}\n
    \n );\n\n const loadingUi =
    Loading..
    ;\n const uiToShow = loadingLicenseInfo ? loadingUi : regUi;\n\n return (\n \n \n {!onlineActivation ? (\n {\n fetchSubnetRegToken();\n setOnlineActivation(!onlineActivation);\n }}\n />\n ) : (\n \"Register\"\n )}\n \n }\n actions={}\n />\n\n {uiToShow}\n \n );\n};\n\nconst mapState = (state: AppState) => ({\n operatorMode: state.system.operatorMode,\n});\n\nconst connector = connect(mapState, {\n displayErrorMessage: setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(Register));\n","import React from \"react\";\nimport { Box } from \"@mui/material\";\nimport VerifiedIcon from \"../../../icons/VerifiedIcon\";\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 _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M18 8h-1V6c0-2.76-2.24-5-5-5S7 3.24 7 6v2H6c-1.1 0-2 .9-2 2v10c0 1.1.9 2 2 2h12c1.1 0 2-.9 2-2V10c0-1.1-.9-2-2-2zM9 6c0-1.66 1.34-3 3-3s3 1.34 3 3v2H9V6zm9 14H6V10h12v10zm-6-3c1.1 0 2-.9 2-2s-.9-2-2-2-2 .9-2 2 .9 2 2 2z\"\n}), 'LockOutlined');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'RemoveRedEye');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","FeatureItem","description","Box","marginBottom","style","fontStyle","hasMargin","flex","border","flexFlow","padding","marginLeft","xs","sm","md","marginTop","FormTitle","title","justifyContent","connector","connect","state","operatorMode","system","displayErrorMessage","setErrorSnackMessage","loading","buttons","gap","localMessage","textAlign","headerStyle","main","registerActivationIcon","verticalAlign","registerActivationMode","cursor","subnetDescription","Font","letterSpacing","registeredStatus","backgroundColor","offlineRegisterButton","copyInputBox","smallBoxy","sizedLabel","minWidth","actionsTray","searchField","spacingUtils","containerForHeader","spacing","useState","license","setLicense","subnetPassword","setSubnetPassword","subnetEmail","setSubnetEmail","subnetMFAToken","setSubnetMFAToken","subnetOTP","setSubnetOTP","subnetAccessToken","setSubnetAccessToken","selectedSubnetOrganization","setSelectedSubnetOrganization","subnetRegToken","setSubnetRegToken","subnetOrganizations","setSubnetOrganizations","showPassword","setShowPassword","onlineActivation","setOnlineActivation","setLoading","loadingLicenseInfo","setLoadingLicenseInfo","clusterRegistered","setClusterRegistered","licenseInfo","setLicenseInfo","initialLicenseLoading","setInitialLicenseLoading","displaySubnetProxy","setDisplaySubnetProxy","clearForm","getSubnetInfo","hasPermission","CONSOLE_UI_RESOURCE","IAM_PAGES_PERMISSIONS","IAM_PAGES","fetchLicenseInfo","useCallback","api","then","res","catch","err","errorMessage","fetchSubnetRegToken","resp","regToken","console","log","callRegister","token","account_id","request","subnetLogin","username","password","apiKey","registered","mfa_token","access_token","organizations","length","accountId","toString","useEffect","clusterRegistrationForm","formTitle","OnlineRegistrationIcon","OfflineRegistrationIcon","SelectWrapper","id","name","onChange","e","target","value","options","map","organization","company","Button","button","disabled","trim","variant","InputBoxWrapper","overlayIcon","LockOutlined","event","placeholder","otp","subnetLoginWithMFA","spacerBottom","inputLabel","type","VisibilityOff","RemoveRedEye","overlayAction","spacerRight","preventDefault","window","open","extraInputProps","readOnly","navigator","clipboard","writeText","Link","href","proxyConfigurationCommand","regUi","Fragment","RegistrationStatusBanner","email","Grid","item","SettingsIcon","FormSwitchWrapper","checked","OfflineRegistrationBackIcon","uiToShow","PageHeader","BackLink","actions","PageLayout","position","top","left","fill","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4874.96b74c82.chunk.js b/portal-ui/build/static/js/4874.96b74c82.chunk.js deleted file mode 100644 index fb22b0984..000000000 --- a/portal-ui/build/static/js/4874.96b74c82.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4874],{23804:function(e,n,t){t(72791);var i=t(11135),o=t(25787),r=t(61889),a=t(80184);n.Z=(0,o.Z)((function(e){return(0,i.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,i=e.title,o=e.help;return(0,a.jsx)("div",{className:n.root,children:(0,a.jsxs)(r.ZP,{container:!0,children:[(0,a.jsxs)(r.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,i]}),(0,a.jsx)(r.ZP,{item:!0,xs:12,className:n.helpText,children:o})]})})}))},40603:function(e,n,t){var i=t(1413),o=t(45987),r=(t(72791),t(85531)),a=t(72455),s=t(80184),l=["onClick","text","disabled","tooltip","icon"],c=(0,a.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,i=n.color,o=e.palette.primary.main;return"primary"===i&&"contained"===t?o=e.palette.primary.contrastText:"primary"===i&&"outlined"===t?o=e.palette.primary.main:"secondary"===i&&(o=e.palette.secondary.main),o}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=c(e),t=e.onClick,a=e.text,d=void 0===a?"":a,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,h=e.icon,f=void 0===h?null:h,x=(0,o.Z)(e,l);return(0,s.jsxs)(r.Z,(0,i.Z)((0,i.Z)({classes:n,tooltip:p||d,variant:"outlined",onClick:t,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},x),{},{children:[(0,s.jsx)("span",{children:d})," ",f]}))}},85531:function(e,n,t){var i=t(1413),o=t(4942),r=t(45987),a=(t(72791),t(11135)),s=t(25787),l=t(13400),c=t(20068),d=t(28182),u=t(80184),m=["classes","children","variant","tooltip"];n.Z=(0,s.Z)((function(e){return(0,a.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,t=e.children,a=e.variant,s=void 0===a?"outlined":a,p=e.tooltip,h=(0,r.Z)(e,m),f=(0,u.jsx)(l.Z,(0,i.Z)((0,i.Z)({},h),{},{className:(0,d.Z)(n.root,(0,o.Z)({},n.contained,"contained"===s)),children:t}));return p&&""!==p?(0,u.jsx)(c.Z,{title:p,children:(0,u.jsx)("span",{children:f})}):f}))},32291:function(e,n,t){var i=t(72791),o=t(60364),r=t(61889),a=t(11135),s=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),m=t(3925),p=t(74833),h=t(80184),f={toggleList:m.kQ},x=(0,o.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),f);n.Z=x((0,s.Z)((function(e){return(0,a.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,o=e.actions,a=e.sidebarOpen,s=e.operatorMode,m=e.managerObjects,f=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(i.Fragment,{}):(0,h.jsxs)(r.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,h.jsx)("div",{className:n.logo,children:s?(0,h.jsx)(d.Z,{}):(0,h.jsx)(u.Z,{})}),(0,h.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),x&&(0,h.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,h.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.rightMenu,children:[o&&o,m&&m.length>0&&(0,h.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){f()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(p.gx,{})})]})]})})))},59114:function(e,n,t){var i=t(4942),o=t(1413),r=(t(72791),t(63466)),a=t(74900),s=t(27391),l=t(25787),c=t(11135),d=t(23814),u=t(80184);n.Z=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,o.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,o=e.classes,l=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,m=e.overrideClass,p=e.value,h=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(r.Z,{position:d,className:o.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(s.Z,{placeholder:t,className:m||o.searchField,id:"search-resource",label:"",InputProps:h,onChange:function(e){l(e.target.value)},variant:"standard",value:p})}))},94874:function(e,n,t){t.r(n);var i=t(70885),o=t(1413),r=t(72791),a=t(60364),s=t(26181),l=t.n(s),c=t(11135),d=t(25787),u=t(61889),m=t(74833),p=t(42649),h=t(23814),f=t(92983),x=t(32291),g=t(81207),Z=t(62666),b=t(23804),j=t(74794),y=t(56087),C=t(38442),v=t(59114),I=t(75578),P=t(40603),E=t(80184),S=(0,I.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(5609),t.e(3320)]).then(t.bind(t,31014))}))),k=(0,I.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(312)]).then(t.bind(t,312))}))),M={setErrorSnackMessage:p.Ih},F=(0,a.$j)(null,M);n.default=(0,d.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},h.OR),h.qg),{},{searchField:(0,o.Z)((0,o.Z)({},h.qg.searchField),{},{maxWidth:380}),tableBlock:(0,o.Z)((0,o.Z)({},h.VX.tableBlock),{},{marginTop:15})},(0,h.Bz)(e.spacing(4))))}))(F((function(e){var n=e.classes,t=e.setErrorSnackMessage,o=(0,r.useState)([]),a=(0,i.Z)(o,2),s=a[0],c=a[1],d=(0,r.useState)(!1),p=(0,i.Z)(d,2),h=p[0],I=p[1],M=(0,r.useState)(!1),F=(0,i.Z)(M,2),A=F[0],L=F[1],N=(0,r.useState)(!1),B=(0,i.Z)(N,2),T=B[0],O=B[1],w=(0,r.useState)(""),R=(0,i.Z)(w,2),_=R[0],z=R[1],D=(0,r.useState)(""),W=(0,i.Z)(D,2),Y=W[0],q=W[1],U=(0,r.useState)(null),G=(0,i.Z)(U,2),$=G[0],H=G[1],K=(0,C.F)(y.C3,[y.Ft.ADMIN_GET_POLICY]),Q=(0,C.F)(y.C3,[y.Ft.ADMIN_DELETE_POLICY]),V=(0,C.F)(y.C3,[y.Ft.ADMIN_LIST_USER_POLICIES]);(0,r.useEffect)((function(){X()}),[]),(0,r.useEffect)((function(){h&&(V?g.Z.invoke("GET","/api/v1/policies").then((function(e){var n=l()(e,"policies",[]);n.sort((function(e,n){return e.name>n.name?1:e.name.\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport { Policy, PolicyList } from \"./types\";\nimport { AddIcon, IAMPoliciesIcon } from \"../../../icons\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\n\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport api from \"../../../common/api\";\nimport history from \"../../../history\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../common/SecureComponent\";\nimport SearchBox from \"../Common/SearchBox\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst AddPolicy = withSuspense(React.lazy(() => import(\"./AddPolicy\")));\nconst DeletePolicy = withSuspense(React.lazy(() => import(\"./DeletePolicy\")));\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...searchField,\n searchField: {\n ...searchField.searchField,\n maxWidth: 380,\n },\n tableBlock: {\n ...tableStyles.tableBlock,\n marginTop: 15,\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IPoliciesProps {\n classes: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst ListPolicies = ({ classes, setErrorSnackMessage }: IPoliciesProps) => {\n const [records, setRecords] = useState([]);\n const [loading, setLoading] = useState(false);\n const [addScreenOpen, setAddScreenOpen] = useState(false);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [selectedPolicy, setSelectedPolicy] = useState(\"\");\n const [filterPolicies, setFilterPolicies] = useState(\"\");\n const [policyEdit, setPolicyEdit] = useState(null);\n\n const viewPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_POLICY,\n ]);\n\n const deletePolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_DELETE_POLICY,\n ]);\n\n const displayPolicies = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_LIST_USER_POLICIES,\n ]);\n\n useEffect(() => {\n fetchRecords();\n }, []);\n\n useEffect(() => {\n if (loading) {\n if (displayPolicies) {\n api\n .invoke(\"GET\", `/api/v1/policies`)\n .then((res: PolicyList) => {\n const policies = get(res, \"policies\", []);\n\n policies.sort((pa, pb) => {\n if (pa.name > pb.name) {\n return 1;\n }\n\n if (pa.name < pb.name) {\n return -1;\n }\n\n return 0;\n });\n\n setLoading(false);\n setRecords(policies);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setErrorSnackMessage(err);\n });\n } else {\n setLoading(false);\n }\n }\n }, [loading, setLoading, setRecords, setErrorSnackMessage, displayPolicies]);\n\n const fetchRecords = () => {\n setLoading(true);\n };\n\n const closeAddModalAndRefresh = (refresh: boolean) => {\n setAddScreenOpen(false);\n\n if (refresh) {\n fetchRecords();\n }\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n\n if (refresh) {\n fetchRecords();\n }\n };\n\n const confirmDeletePolicy = (policy: string) => {\n setDeleteOpen(true);\n setSelectedPolicy(policy);\n };\n\n const viewAction = (policy: any) => {\n history.push(`${IAM_PAGES.POLICIES}/${policy.name}`);\n };\n\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n disableButtonFunction: () => !viewPolicy,\n },\n {\n type: \"delete\",\n onClick: confirmDeletePolicy,\n sendOnlyId: true,\n disableButtonFunction: () => !deletePolicy,\n },\n ];\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.name.includes(filterPolicies)\n );\n\n return (\n \n {addScreenOpen && (\n \n )}\n {deleteOpen && (\n \n )}\n \n \n \n \n\n \n }\n onClick={() => {\n setAddScreenOpen(true);\n setPolicyEdit(null);\n }}\n />\n \n \n \n
    \n
    \n \n \n \n \n \n \n }\n help={\n \n MinIO uses Policy-Based Access Control (PBAC) to define the\n authorized actions and resources to which an authenticated user\n has access. Each policy describes one or more actions and\n conditions that outline the permissions of a user or group of\n users.\n
    \n
    \n MinIO PBAC is built for compatibility with AWS IAM policy\n syntax, structure, and behavior. The MinIO documentation makes a\n best-effort to cover IAM-specific behavior and functionality.\n Consider deferring to the IAM documentation for more complete\n documentation on AWS IAM-specific topics.\n
    \n
    \n You can learn more at our{\" \"}\n \n documentation\n \n .\n
    \n }\n />\n
    \n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(ListPolicies));\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","useStyles","makeStyles","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","onClick","disabled","tooltip","icon","restProps","size","sx","borderWidth","borderStyle","opacity","contained","background","dark","light","children","rest","button","clsx","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","label","justifyContent","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","actions","includes","Fragment","direction","sm","md","length","component","id","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","InputProps","e","target","AddPolicy","withSuspense","React","DeletePolicy","setErrorSnackMessage","actionsTray","maxWidth","tableBlock","tableStyles","containerForHeader","spacing","useState","records","setRecords","loading","setLoading","addScreenOpen","setAddScreenOpen","deleteOpen","setDeleteOpen","selectedPolicy","setSelectedPolicy","filterPolicies","setFilterPolicies","policyEdit","setPolicyEdit","viewPolicy","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","deletePolicy","displayPolicies","useEffect","fetchRecords","api","then","res","policies","get","sort","pa","pb","name","catch","err","tableActions","type","policy","history","IAM_PAGES","disableButtonFunction","sendOnlyId","filteredRecords","filter","elementItem","open","closeModalAndRefresh","refresh","closeDeleteModalAndRefresh","pageContainer","scopes","resource","errorProps","itemActions","columns","elementKey","isLoading","entityName","idField","href","rel"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/4874.e9458ae5.chunk.js b/portal-ui/build/static/js/4874.e9458ae5.chunk.js new file mode 100644 index 000000000..cbe7b3511 --- /dev/null +++ b/portal-ui/build/static/js/4874.e9458ae5.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[4874],{23804:function(e,n,t){t(72791);var i=t(11135),o=t(25787),r=t(61889),a=t(80184);n.Z=(0,o.Z)((function(e){return(0,i.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,i=e.title,o=e.help;return(0,a.jsx)("div",{className:n.root,children:(0,a.jsxs)(r.ZP,{container:!0,children:[(0,a.jsxs)(r.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,i]}),(0,a.jsx)(r.ZP,{item:!0,xs:12,className:n.helpText,children:o})]})})}))},40603:function(e,n,t){var i=t(1413),o=t(45987),r=(t(72791),t(85531)),a=t(72455),s=t(80184),l=["onClick","text","disabled","tooltip","icon","className"],c=(0,a.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,i=n.color,o=e.palette.primary.main;return"primary"===i&&"contained"===t?o=e.palette.primary.contrastText:"primary"===i&&"outlined"===t?o=e.palette.primary.main:"secondary"===i&&(o=e.palette.secondary.main),o}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=c(e),t=e.onClick,a=e.text,d=void 0===a?"":a,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,h=e.icon,f=void 0===h?null:h,x=e.className,g=void 0===x?"":x,Z=(0,o.Z)(e,l);return(0,s.jsxs)(r.Z,(0,i.Z)((0,i.Z)({className:g,classes:n,tooltip:p||d,variant:"outlined",onClick:t,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},Z),{},{children:[(0,s.jsx)("span",{children:d})," ",f]}))}},85531:function(e,n,t){var i=t(1413),o=t(4942),r=t(45987),a=(t(72791),t(11135)),s=t(25787),l=t(13400),c=t(20068),d=t(28182),u=t(80184),m=["classes","children","variant","tooltip"];n.Z=(0,s.Z)((function(e){return(0,a.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,t=e.children,a=e.variant,s=void 0===a?"outlined":a,p=e.tooltip,h=(0,r.Z)(e,m),f=(0,u.jsx)(l.Z,(0,i.Z)((0,i.Z)({},h),{},{className:(0,d.Z)(n.root,(0,o.Z)({},n.contained,"contained"===s)),children:t}));return p&&""!==p?(0,u.jsx)(c.Z,{title:p,children:(0,u.jsx)("span",{children:f})}):f}))},32291:function(e,n,t){var i=t(72791),o=t(60364),r=t(61889),a=t(11135),s=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),m=t(3925),p=t(13048),h=t(80184),f={toggleList:m.kQ},x=(0,o.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),f);n.Z=x((0,s.Z)((function(e){return(0,a.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,o=e.actions,a=e.sidebarOpen,s=e.operatorMode,m=e.managerObjects,f=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(i.Fragment,{}):(0,h.jsxs)(r.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!a&&(0,h.jsx)("div",{className:n.logo,children:s?(0,h.jsx)(d.Z,{}):(0,h.jsx)(u.Z,{})}),(0,h.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),x&&(0,h.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,h.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.rightMenu,children:[o&&o,m&&m.length>0&&(0,h.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){f()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(p.gx,{})})]})]})})))},59114:function(e,n,t){var i=t(4942),o=t(1413),r=(t(72791),t(63466)),a=t(74900),s=t(27391),l=t(25787),c=t(11135),d=t(23814),u=t(80184);n.Z=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,o.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,o=e.classes,l=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,m=e.overrideClass,p=e.value,h=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(r.Z,{position:d,className:o.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(s.Z,{placeholder:t,className:m||o.searchField,id:"search-resource",label:"",InputProps:h,onChange:function(e){l(e.target.value)},variant:"standard",value:p})}))},94874:function(e,n,t){t.r(n);var i=t(70885),o=t(1413),r=t(72791),a=t(60364),s=t(26181),l=t.n(s),c=t(11135),d=t(25787),u=t(61889),m=t(13048),p=t(42649),h=t(23814),f=t(92983),x=t(32291),g=t(81207),Z=t(62666),b=t(23804),j=t(74794),y=t(56087),C=t(38442),v=t(59114),I=t(75578),P=t(40603),E=t(80184),S=(0,I.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(5609),t.e(3320)]).then(t.bind(t,31014))}))),k=(0,I.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(2442),t.e(312)]).then(t.bind(t,312))}))),M={setErrorSnackMessage:p.Ih},F=(0,a.$j)(null,M);n.default=(0,d.Z)((function(e){return(0,c.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},h.OR),h.qg),{},{searchField:(0,o.Z)((0,o.Z)({},h.qg.searchField),{},{maxWidth:380}),tableBlock:(0,o.Z)((0,o.Z)({},h.VX.tableBlock),{},{marginTop:15})},(0,h.Bz)(e.spacing(4))))}))(F((function(e){var n=e.classes,t=e.setErrorSnackMessage,o=(0,r.useState)([]),a=(0,i.Z)(o,2),s=a[0],c=a[1],d=(0,r.useState)(!1),p=(0,i.Z)(d,2),h=p[0],I=p[1],M=(0,r.useState)(!1),F=(0,i.Z)(M,2),A=F[0],N=F[1],L=(0,r.useState)(!1),B=(0,i.Z)(L,2),T=B[0],O=B[1],w=(0,r.useState)(""),R=(0,i.Z)(w,2),_=R[0],z=R[1],D=(0,r.useState)(""),W=(0,i.Z)(D,2),Y=W[0],q=W[1],U=(0,r.useState)(null),G=(0,i.Z)(U,2),$=G[0],H=G[1],K=(0,C.F)(y.C3,[y.Ft.ADMIN_GET_POLICY]),Q=(0,C.F)(y.C3,[y.Ft.ADMIN_DELETE_POLICY]),V=(0,C.F)(y.C3,[y.Ft.ADMIN_LIST_USER_POLICIES]);(0,r.useEffect)((function(){X()}),[]),(0,r.useEffect)((function(){h&&(V?g.Z.invoke("GET","/api/v1/policies").then((function(e){var n=l()(e,"policies",[]);n.sort((function(e,n){return e.name>n.name?1:e.name.\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport { Policy, PolicyList } from \"./types\";\nimport { AddIcon, IAMPoliciesIcon } from \"../../../icons\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\n\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport api from \"../../../common/api\";\nimport history from \"../../../history\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport {\n CONSOLE_UI_RESOURCE,\n IAM_PAGES,\n IAM_SCOPES,\n} from \"../../../common/SecureComponent/permissions\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../common/SecureComponent\";\nimport SearchBox from \"../Common/SearchBox\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport RBIconButton from \"../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst AddPolicy = withSuspense(React.lazy(() => import(\"./AddPolicy\")));\nconst DeletePolicy = withSuspense(React.lazy(() => import(\"./DeletePolicy\")));\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...searchField,\n searchField: {\n ...searchField.searchField,\n maxWidth: 380,\n },\n tableBlock: {\n ...tableStyles.tableBlock,\n marginTop: 15,\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IPoliciesProps {\n classes: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst ListPolicies = ({ classes, setErrorSnackMessage }: IPoliciesProps) => {\n const [records, setRecords] = useState([]);\n const [loading, setLoading] = useState(false);\n const [addScreenOpen, setAddScreenOpen] = useState(false);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [selectedPolicy, setSelectedPolicy] = useState(\"\");\n const [filterPolicies, setFilterPolicies] = useState(\"\");\n const [policyEdit, setPolicyEdit] = useState(null);\n\n const viewPolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_GET_POLICY,\n ]);\n\n const deletePolicy = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_DELETE_POLICY,\n ]);\n\n const displayPolicies = hasPermission(CONSOLE_UI_RESOURCE, [\n IAM_SCOPES.ADMIN_LIST_USER_POLICIES,\n ]);\n\n useEffect(() => {\n fetchRecords();\n }, []);\n\n useEffect(() => {\n if (loading) {\n if (displayPolicies) {\n api\n .invoke(\"GET\", `/api/v1/policies`)\n .then((res: PolicyList) => {\n const policies = get(res, \"policies\", []);\n\n policies.sort((pa, pb) => {\n if (pa.name > pb.name) {\n return 1;\n }\n\n if (pa.name < pb.name) {\n return -1;\n }\n\n return 0;\n });\n\n setLoading(false);\n setRecords(policies);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setErrorSnackMessage(err);\n });\n } else {\n setLoading(false);\n }\n }\n }, [loading, setLoading, setRecords, setErrorSnackMessage, displayPolicies]);\n\n const fetchRecords = () => {\n setLoading(true);\n };\n\n const closeAddModalAndRefresh = (refresh: boolean) => {\n setAddScreenOpen(false);\n\n if (refresh) {\n fetchRecords();\n }\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n\n if (refresh) {\n fetchRecords();\n }\n };\n\n const confirmDeletePolicy = (policy: string) => {\n setDeleteOpen(true);\n setSelectedPolicy(policy);\n };\n\n const viewAction = (policy: any) => {\n history.push(`${IAM_PAGES.POLICIES}/${policy.name}`);\n };\n\n const tableActions = [\n {\n type: \"view\",\n onClick: viewAction,\n disableButtonFunction: () => !viewPolicy,\n },\n {\n type: \"delete\",\n onClick: confirmDeletePolicy,\n sendOnlyId: true,\n disableButtonFunction: () => !deletePolicy,\n },\n ];\n\n const filteredRecords = records.filter((elementItem) =>\n elementItem.name.includes(filterPolicies)\n );\n\n return (\n \n {addScreenOpen && (\n \n )}\n {deleteOpen && (\n \n )}\n \n \n \n \n\n \n }\n onClick={() => {\n setAddScreenOpen(true);\n setPolicyEdit(null);\n }}\n />\n \n \n \n \n \n \n \n \n }\n help={\n \n MinIO uses Policy-Based Access Control (PBAC) to define the\n authorized actions and resources to which an authenticated user\n has access. Each policy describes one or more actions and\n conditions that outline the permissions of a user or group of\n users.\n
    \n
    \n MinIO PBAC is built for compatibility with AWS IAM policy\n syntax, structure, and behavior. The MinIO documentation makes a\n best-effort to cover IAM-specific behavior and functionality.\n Consider deferring to the IAM documentation for more complete\n documentation on AWS IAM-specific topics.\n
    \n
    \n You can learn more at our{\" \"}\n \n documentation\n \n .\n
    \n }\n />\n
    \n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(ListPolicies));\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","useStyles","makeStyles","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","onClick","disabled","tooltip","icon","restProps","size","sx","borderWidth","borderStyle","opacity","contained","background","dark","light","children","rest","button","clsx","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","label","justifyContent","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","actions","includes","Fragment","direction","sm","md","length","component","id","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","InputProps","e","target","AddPolicy","withSuspense","React","DeletePolicy","setErrorSnackMessage","actionsTray","maxWidth","tableBlock","tableStyles","containerForHeader","spacing","useState","records","setRecords","loading","setLoading","addScreenOpen","setAddScreenOpen","deleteOpen","setDeleteOpen","selectedPolicy","setSelectedPolicy","filterPolicies","setFilterPolicies","policyEdit","setPolicyEdit","viewPolicy","hasPermission","CONSOLE_UI_RESOURCE","IAM_SCOPES","deletePolicy","displayPolicies","useEffect","fetchRecords","api","then","res","policies","get","sort","pa","pb","name","catch","err","tableActions","type","policy","history","IAM_PAGES","disableButtonFunction","sendOnlyId","filteredRecords","filter","elementItem","open","closeModalAndRefresh","refresh","closeDeleteModalAndRefresh","pageContainer","scopes","resource","errorProps","itemActions","columns","elementKey","isLoading","entityName","idField","href","rel"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5088.0395aa79.chunk.js b/portal-ui/build/static/js/5088.92dee249.chunk.js similarity index 98% rename from portal-ui/build/static/js/5088.0395aa79.chunk.js rename to portal-ui/build/static/js/5088.92dee249.chunk.js index 0242eab81..d5238159b 100644 --- a/portal-ui/build/static/js/5088.0395aa79.chunk.js +++ b/portal-ui/build/static/js/5088.92dee249.chunk.js @@ -1,2 +1,2 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5088],{23804:function(e,n,t){"use strict";t(72791);var s=t(11135),i=t(25787),o=t(61889),r=t(80184);n.Z=(0,i.Z)((function(e){return(0,s.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,s=e.title,i=e.help;return(0,r.jsx)("div",{className:n.root,children:(0,r.jsxs)(o.ZP,{container:!0,children:[(0,r.jsxs)(o.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,s]}),(0,r.jsx)(o.ZP,{item:!0,xs:12,className:n.helpText,children:i})]})})}))},74794:function(e,n,t){"use strict";var s=t(1413),i=(t(72791),t(61889)),o=t(11135),r=t(25787),a=t(23814),c=t(80184);n.Z=(0,r.Z)((function(e){return(0,o.Z)((0,s.Z)({},a.Bw))}))((function(e){var n=e.classes,t=e.className,s=void 0===t?"":t,o=e.children;return(0,c.jsx)("div",{className:n.contentSpacer,children:(0,c.jsx)(i.ZP,{container:!0,children:(0,c.jsx)(i.ZP,{item:!0,xs:12,className:s,children:o})})})}))},32291:function(e,n,t){"use strict";var s=t(72791),i=t(60364),o=t(61889),r=t(11135),a=t(25787),c=t(20890),l=t(13400),d=t(95466),g=t(84683),u=t(3925),f=t(74833),m=t(80184),h={toggleList:u.kQ},x=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),h);n.Z=x((0,a.Z)((function(e){return(0,r.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,i=e.actions,r=e.sidebarOpen,a=e.operatorMode,u=e.managerObjects,h=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,m.jsx)(s.Fragment,{}):(0,m.jsxs)(o.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,m.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!r&&(0,m.jsx)("div",{className:n.logo,children:a?(0,m.jsx)(d.Z,{}):(0,m.jsx)(g.Z,{})}),(0,m.jsx)(c.Z,{variant:"h4",className:n.labelStyle,children:t})]}),x&&(0,m.jsx)(o.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,m.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.rightMenu,children:[i&&i,u&&u.length>0&&(0,m.jsx)(l.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,m.jsx)(f.gx,{})})]})]})})))},75088:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return k}});var s=t(70885),i=t(1413),o=t(72791),r=t(95087),a=t(60364),c=t(91431),l="error",d="success",g="inProgress",u=t(11135),f=t(25787),m=t(26824),h=t(23814),x=t(61889),p=t(36151),j=t(32291),v=t(42649),b=t(93385),Z=t(74833),w=t(81207),y=t(72401),C=t(80184),S=(0,f.Z)((function(e){return(0,u.Z)({titleBar:{borderBottom:"#E5E5E5 1px solid",padding:"30px 25px",fontSize:20,color:"#07193E",fontWeight:"bold",borderRadius:"10px 10px 0px 0px",paddingTop:0},divisorContainer:{padding:25},serversData:{color:"#07193E",fontSize:18,display:"flex",alignItems:"center","& svg":{marginRight:10}},minioVersionContainer:{fontSize:12,color:"#07193E",justifyContent:"center",alignSelf:"center",alignItems:"center",display:"flex"},versionIcon:{color:"#07193E",marginRight:20},loaderAlign:{textAlign:"center"},advancedContainer:{justifyContent:"flex-end",display:"flex"},optionsContainer:{padding:0,marginBottom:25},advancedConfiguration:{color:"#2781B0",fontSize:10,textDecoration:"underline",border:"none",backgroundColor:"transparent",cursor:"pointer",alignItems:"center",display:"flex","&:hover":{color:"#07193E"},"& svg":{width:10,alignSelf:"center",marginLeft:5}},advancedOpen:{transform:"rotateZ(-90deg) translateX(-4px) translateY(2px)"},advancedClosed:{transform:"rotateZ(90deg)"},advancedContent:{backgroundColor:"#F5F7F9",maxHeight:0,transitionDuration:"0.3s",overflow:"hidden",padding:"0 15px","&.open":{maxHeight:400,padding:15}}})}))((function(e){var n=e.title,t=e.children,i=e.classes,r=e.advancedVisible,a=e.advancedContent,c=(0,o.useState)("N/A"),l=(0,s.Z)(c,2),d=l[0],g=l[1],u=(0,o.useState)(0),f=(0,s.Z)(u,2),m=f[0],h=f[1],p=(0,o.useState)(0),j=(0,s.Z)(p,2),v=j[0],S=j[1],N=(0,o.useState)(!0),P=(0,s.Z)(N,2),E=P[0],k=P[1],I=(0,o.useState)(!1),D=(0,s.Z)(I,2),O=D[0],M=D[1];return(0,o.useEffect)((function(){E&&w.Z.invoke("GET","/api/v1/admin/info?defaultOnly=true").then((function(e){var n,t=null===(n=e.servers)||void 0===n?void 0:n.length;if(h(t),e.servers.length>0){g(e.servers[0].version);var s=e.servers.reduce((function(e,n){return e+n.drives.length}),0);S(s)}k(!1)})).catch((function(e){k(!1)}))}),[E]),(0,C.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,C.jsx)(x.ZP,{item:!0,xs:12,className:i.titleBar,children:n}),(0,C.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,C.jsxs)(x.ZP,{item:!0,xs:12,className:i.optionsContainer,children:[(0,C.jsx)(x.ZP,{container:!0,className:i.divisorContainer,children:E?(0,C.jsx)(o.Fragment,{children:(0,C.jsx)(x.ZP,{item:!0,xs:12,className:i.loaderAlign,children:(0,C.jsx)(y.Z,{style:{width:25,height:25}})})}):(0,C.jsxs)(o.Fragment,{children:[(0,C.jsxs)(x.ZP,{item:!0,xs:12,md:4,className:i.serversData,children:[(0,C.jsx)(Z.FU,{})," ",(0,C.jsx)("strong",{children:m}),"\xa0nodes,\xa0",(0,C.jsx)("strong",{children:v}),"\xa0 drives"]}),(0,C.jsxs)(x.ZP,{item:!0,xs:12,md:4,className:i.minioVersionContainer,children:[(0,C.jsx)("span",{className:i.versionIcon,children:(0,C.jsx)(Z.Db,{})})," ","MinIO VERSION\xa0",(0,C.jsx)("strong",{children:d})]}),(0,C.jsx)(x.ZP,{item:!0,xs:12,md:4,className:i.advancedContainer,children:r&&(0,C.jsxs)("button",{onClick:function(){M(!O)},className:i.advancedConfiguration,children:["Advanced configurations"," ",(0,C.jsx)("span",{className:O?i.advancedOpen:i.advancedClosed,children:(0,C.jsx)(b.Z,{})})]})})]})}),a&&(0,C.jsx)(x.ZP,{xs:12,className:"".concat(i.advancedContent," ").concat(O?"open":""),children:a})]}),t]})]})})),N=t(74794),P=t(23804),E=t(89357),k=(0,a.$j)((function(e){return{message:e.healthInfo.message,serverDiagnosticStatus:e.system.serverDiagnosticStatus}}),{healthInfoMessageReceived:c.ec,healthInfoResetMessage:c.Xp,setSnackBarMessage:v.y1,setServerDiagStat:v.KY})((0,f.Z)((function(e){return(0,u.Z)((0,i.Z)((0,i.Z)({loading:{paddingTop:8,paddingLeft:40},buttons:{justifyContent:"flex-start",gap:20},localMessage:{fontSize:24,color:"#07193E",fontWeight:"bold",textAlign:"center",marginBottom:10},startDiagnostic:{textAlign:"center",marginBottom:25},progressResult:{textAlign:"center",marginBottom:25},diagNew:{textAlign:"right",margin:25,marginBottom:0}},h.OR),(0,h.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.healthInfoMessageReceived,i=e.healthInfoResetMessage,a=e.message,c=e.setSnackBarMessage,u=e.setServerDiagStat,f=e.serverDiagnosticStatus,h=(0,o.useState)(!1),v=(0,s.Z)(h,2),b=v[0],Z=v[1],w=(0,o.useState)(!1),k=(0,s.Z)(w,2),I=k[0],D=k[1],O=(0,o.useState)(!0),M=(0,s.Z)(O,2),B=M[0],R=M[1],A=(0,o.useState)(""),T=(0,s.Z)(A,2),F=T[0],_=T[1],L=(0,o.useState)("New Diagnostic"),z=(0,s.Z)(L,2),V=z[0],W=z[1];return(0,o.useEffect)((function(){f!==g?f===d&&I?W("Diagnostic complete"):f!==l||W("Error"):W("Diagnostic in progress...")}),[f,b,I]),(0,o.useEffect)((function(){f===d&&a!=={}&&R(!1),f===g&&R(!0),Z(!1)}),[f,a]),(0,o.useEffect)((function(){if(b){i();var e=new URL(window.location.toString()),n=e.port,s=(0,m.x2)(e.protocol),o=new r.w3cwebsocket("".concat(s,"://").concat(e.hostname,":").concat(n,"/ws/health-info?deadline=1h")),a=null;null!==o&&(o.onopen=function(){console.log("WebSocket Client Connected"),o.send("ok"),a=setInterval((function(){o.send("ok")}),1e4),D(!0),_("Diagnostic started. Please do not refresh page during diagnosis."),u(g)},o.onmessage=function(e){var n=JSON.parse(e.data.toString());n.timestamp=new Date(n.timestamp.toString()),t(n)},o.onerror=function(e){console.log("error closing websocket:",e.message),o.close(1e3),clearInterval(a),u(l)},o.onclose=function(e){clearInterval(a),e.code===m.HE||e.code===m.ci||e.code===m.V9?(console.log("connection closed by server with code:",e.code),_("An error occurred while getting Diagnostic file."),u(l)):(console.log("connection closed by server"),_("Diagnostic file is ready to be downloaded."),u(d))})}else Z(!1)}),[t,i,b,c,u]),(0,C.jsxs)(o.Fragment,{children:[(0,C.jsx)(j.Z,{label:"Health"}),(0,C.jsxs)(N.Z,{children:[(0,C.jsx)(x.ZP,{item:!0,xs:12,className:n.boxy,children:(0,C.jsx)(S,{title:V,advancedVisible:!1,children:(0,C.jsxs)(x.ZP,{container:!0,className:n.buttons,children:[!I&&(0,C.jsx)(x.ZP,{item:!0,xs:12,className:n.startDiagnostic,children:(0,C.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:b,onClick:function(){return Z(!0)},children:"Start Diagnostic"})},"start-diag"),I&&(0,C.jsxs)(x.ZP,{item:!0,xs:12,className:n.progressResult,children:[(0,C.jsx)("div",{className:n.localMessage,children:F}),f===g?(0,C.jsx)("div",{className:n.loading,children:(0,C.jsx)(y.Z,{style:{width:25,height:25}})}):(0,C.jsxs)(o.Fragment,{children:[f!==l&&(0,C.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",onClick:function(){!function(e,n){var t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(n)),t.setAttribute("download",e),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}("diagnostic.json",JSON.stringify(a,null,2))},disabled:B,children:"Download"}),(0,C.jsx)(x.ZP,{item:!0,xs:12,className:n.diagNew,children:(0,C.jsx)(p.Z,{id:"start-new-diagnostic",type:"submit",variant:"contained",color:"primary",disabled:b,onClick:function(){return Z(!0)},children:"Start New Diagnostic"})})]})]},"start-download")]})})}),!I&&(0,C.jsxs)(o.Fragment,{children:[(0,C.jsx)("br",{}),(0,C.jsx)(P.Z,{title:"During the health diagnostics run all production traffic will be suspended.",iconComponent:(0,C.jsx)(E.Z,{}),help:(0,C.jsx)(o.Fragment,{})})]})]})]})})))},26824:function(e,n,t){"use strict";t.d(n,{HE:function(){return o},V9:function(){return s},ci:function(){return i},x2:function(){return r}});var s=1006,i=1008,o=1011,r=function(e){var n="ws";return"https:"===e&&(n="wss"),n}},93385:function(e,n,t){"use strict";var s=t(95318);n.Z=void 0;var i=s(t(45649)),o=t(80184),r=(0,i.default)((0,o.jsx)("path",{d:"M6.23 20.23 8 22l10-10L8 2 6.23 3.77 14.46 12z"}),"ArrowForwardIos");n.Z=r},94210:function(e){var n=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 n()}try{return __global__||n()}finally{delete Object.prototype.__global__}}()},95087:function(e,n,t){var s;if("object"===typeof globalThis)s=globalThis;else try{s=t(94210)}catch(a){}finally{if(s||"undefined"===typeof window||(s=window),!s)throw new Error("Could not determine global this")}var i=s.WebSocket||s.MozWebSocket,o=t(51496);function r(e,n){return n?new i(e,n):new i(e)}i&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(r,e,{get:function(){return i[e]}})})),e.exports={w3cwebsocket:i?r:null,version:o}},51496:function(e,n,t){e.exports=t(19794).version},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); -//# sourceMappingURL=5088.0395aa79.chunk.js.map \ No newline at end of file +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5088],{23804:function(e,n,t){"use strict";t(72791);var s=t(11135),i=t(25787),o=t(61889),r=t(80184);n.Z=(0,i.Z)((function(e){return(0,s.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,s=e.title,i=e.help;return(0,r.jsx)("div",{className:n.root,children:(0,r.jsxs)(o.ZP,{container:!0,children:[(0,r.jsxs)(o.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,s]}),(0,r.jsx)(o.ZP,{item:!0,xs:12,className:n.helpText,children:i})]})})}))},74794:function(e,n,t){"use strict";var s=t(1413),i=(t(72791),t(61889)),o=t(11135),r=t(25787),a=t(23814),c=t(80184);n.Z=(0,r.Z)((function(e){return(0,o.Z)((0,s.Z)({},a.Bw))}))((function(e){var n=e.classes,t=e.className,s=void 0===t?"":t,o=e.children;return(0,c.jsx)("div",{className:n.contentSpacer,children:(0,c.jsx)(i.ZP,{container:!0,children:(0,c.jsx)(i.ZP,{item:!0,xs:12,className:s,children:o})})})}))},32291:function(e,n,t){"use strict";var s=t(72791),i=t(60364),o=t(61889),r=t(11135),a=t(25787),c=t(20890),l=t(13400),d=t(95466),g=t(84683),u=t(3925),f=t(13048),m=t(80184),h={toggleList:u.kQ},x=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),h);n.Z=x((0,a.Z)((function(e){return(0,r.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,i=e.actions,r=e.sidebarOpen,a=e.operatorMode,u=e.managerObjects,h=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,m.jsx)(s.Fragment,{}):(0,m.jsxs)(o.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,m.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!r&&(0,m.jsx)("div",{className:n.logo,children:a?(0,m.jsx)(d.Z,{}):(0,m.jsx)(g.Z,{})}),(0,m.jsx)(c.Z,{variant:"h4",className:n.labelStyle,children:t})]}),x&&(0,m.jsx)(o.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,m.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.rightMenu,children:[i&&i,u&&u.length>0&&(0,m.jsx)(l.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,m.jsx)(f.gx,{})})]})]})})))},75088:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return k}});var s=t(70885),i=t(1413),o=t(72791),r=t(95087),a=t(60364),c=t(91431),l="error",d="success",g="inProgress",u=t(11135),f=t(25787),m=t(26824),h=t(23814),x=t(61889),p=t(36151),j=t(32291),v=t(42649),b=t(93385),Z=t(13048),w=t(81207),y=t(72401),C=t(80184),S=(0,f.Z)((function(e){return(0,u.Z)({titleBar:{borderBottom:"#E5E5E5 1px solid",padding:"30px 25px",fontSize:20,color:"#07193E",fontWeight:"bold",borderRadius:"10px 10px 0px 0px",paddingTop:0},divisorContainer:{padding:25},serversData:{color:"#07193E",fontSize:18,display:"flex",alignItems:"center","& svg":{marginRight:10}},minioVersionContainer:{fontSize:12,color:"#07193E",justifyContent:"center",alignSelf:"center",alignItems:"center",display:"flex"},versionIcon:{color:"#07193E",marginRight:20},loaderAlign:{textAlign:"center"},advancedContainer:{justifyContent:"flex-end",display:"flex"},optionsContainer:{padding:0,marginBottom:25},advancedConfiguration:{color:"#2781B0",fontSize:10,textDecoration:"underline",border:"none",backgroundColor:"transparent",cursor:"pointer",alignItems:"center",display:"flex","&:hover":{color:"#07193E"},"& svg":{width:10,alignSelf:"center",marginLeft:5}},advancedOpen:{transform:"rotateZ(-90deg) translateX(-4px) translateY(2px)"},advancedClosed:{transform:"rotateZ(90deg)"},advancedContent:{backgroundColor:"#F5F7F9",maxHeight:0,transitionDuration:"0.3s",overflow:"hidden",padding:"0 15px","&.open":{maxHeight:400,padding:15}}})}))((function(e){var n=e.title,t=e.children,i=e.classes,r=e.advancedVisible,a=e.advancedContent,c=(0,o.useState)("N/A"),l=(0,s.Z)(c,2),d=l[0],g=l[1],u=(0,o.useState)(0),f=(0,s.Z)(u,2),m=f[0],h=f[1],p=(0,o.useState)(0),j=(0,s.Z)(p,2),v=j[0],S=j[1],N=(0,o.useState)(!0),P=(0,s.Z)(N,2),E=P[0],k=P[1],I=(0,o.useState)(!1),D=(0,s.Z)(I,2),O=D[0],M=D[1];return(0,o.useEffect)((function(){E&&w.Z.invoke("GET","/api/v1/admin/info?defaultOnly=true").then((function(e){var n,t=null===(n=e.servers)||void 0===n?void 0:n.length;if(h(t),e.servers.length>0){g(e.servers[0].version);var s=e.servers.reduce((function(e,n){return e+n.drives.length}),0);S(s)}k(!1)})).catch((function(e){k(!1)}))}),[E]),(0,C.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,C.jsx)(x.ZP,{item:!0,xs:12,className:i.titleBar,children:n}),(0,C.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,C.jsxs)(x.ZP,{item:!0,xs:12,className:i.optionsContainer,children:[(0,C.jsx)(x.ZP,{container:!0,className:i.divisorContainer,children:E?(0,C.jsx)(o.Fragment,{children:(0,C.jsx)(x.ZP,{item:!0,xs:12,className:i.loaderAlign,children:(0,C.jsx)(y.Z,{style:{width:25,height:25}})})}):(0,C.jsxs)(o.Fragment,{children:[(0,C.jsxs)(x.ZP,{item:!0,xs:12,md:4,className:i.serversData,children:[(0,C.jsx)(Z.FU,{})," ",(0,C.jsx)("strong",{children:m}),"\xa0nodes,\xa0",(0,C.jsx)("strong",{children:v}),"\xa0 drives"]}),(0,C.jsxs)(x.ZP,{item:!0,xs:12,md:4,className:i.minioVersionContainer,children:[(0,C.jsx)("span",{className:i.versionIcon,children:(0,C.jsx)(Z.Db,{})})," ","MinIO VERSION\xa0",(0,C.jsx)("strong",{children:d})]}),(0,C.jsx)(x.ZP,{item:!0,xs:12,md:4,className:i.advancedContainer,children:r&&(0,C.jsxs)("button",{onClick:function(){M(!O)},className:i.advancedConfiguration,children:["Advanced configurations"," ",(0,C.jsx)("span",{className:O?i.advancedOpen:i.advancedClosed,children:(0,C.jsx)(b.Z,{})})]})})]})}),a&&(0,C.jsx)(x.ZP,{xs:12,className:"".concat(i.advancedContent," ").concat(O?"open":""),children:a})]}),t]})]})})),N=t(74794),P=t(23804),E=t(89357),k=(0,a.$j)((function(e){return{message:e.healthInfo.message,serverDiagnosticStatus:e.system.serverDiagnosticStatus}}),{healthInfoMessageReceived:c.ec,healthInfoResetMessage:c.Xp,setSnackBarMessage:v.y1,setServerDiagStat:v.KY})((0,f.Z)((function(e){return(0,u.Z)((0,i.Z)((0,i.Z)({loading:{paddingTop:8,paddingLeft:40},buttons:{justifyContent:"flex-start",gap:20},localMessage:{fontSize:24,color:"#07193E",fontWeight:"bold",textAlign:"center",marginBottom:10},startDiagnostic:{textAlign:"center",marginBottom:25},progressResult:{textAlign:"center",marginBottom:25},diagNew:{textAlign:"right",margin:25,marginBottom:0}},h.OR),(0,h.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.healthInfoMessageReceived,i=e.healthInfoResetMessage,a=e.message,c=e.setSnackBarMessage,u=e.setServerDiagStat,f=e.serverDiagnosticStatus,h=(0,o.useState)(!1),v=(0,s.Z)(h,2),b=v[0],Z=v[1],w=(0,o.useState)(!1),k=(0,s.Z)(w,2),I=k[0],D=k[1],O=(0,o.useState)(!0),M=(0,s.Z)(O,2),B=M[0],R=M[1],A=(0,o.useState)(""),T=(0,s.Z)(A,2),F=T[0],_=T[1],L=(0,o.useState)("New Diagnostic"),z=(0,s.Z)(L,2),V=z[0],W=z[1];return(0,o.useEffect)((function(){f!==g?f===d&&I?W("Diagnostic complete"):f!==l||W("Error"):W("Diagnostic in progress...")}),[f,b,I]),(0,o.useEffect)((function(){f===d&&a!=={}&&R(!1),f===g&&R(!0),Z(!1)}),[f,a]),(0,o.useEffect)((function(){if(b){i();var e=new URL(window.location.toString()),n=e.port,s=(0,m.x2)(e.protocol),o=new r.w3cwebsocket("".concat(s,"://").concat(e.hostname,":").concat(n,"/ws/health-info?deadline=1h")),a=null;null!==o&&(o.onopen=function(){console.log("WebSocket Client Connected"),o.send("ok"),a=setInterval((function(){o.send("ok")}),1e4),D(!0),_("Diagnostic started. Please do not refresh page during diagnosis."),u(g)},o.onmessage=function(e){var n=JSON.parse(e.data.toString());n.timestamp=new Date(n.timestamp.toString()),t(n)},o.onerror=function(e){console.log("error closing websocket:",e.message),o.close(1e3),clearInterval(a),u(l)},o.onclose=function(e){clearInterval(a),e.code===m.HE||e.code===m.ci||e.code===m.V9?(console.log("connection closed by server with code:",e.code),_("An error occurred while getting Diagnostic file."),u(l)):(console.log("connection closed by server"),_("Diagnostic file is ready to be downloaded."),u(d))})}else Z(!1)}),[t,i,b,c,u]),(0,C.jsxs)(o.Fragment,{children:[(0,C.jsx)(j.Z,{label:"Health"}),(0,C.jsxs)(N.Z,{children:[(0,C.jsx)(x.ZP,{item:!0,xs:12,className:n.boxy,children:(0,C.jsx)(S,{title:V,advancedVisible:!1,children:(0,C.jsxs)(x.ZP,{container:!0,className:n.buttons,children:[!I&&(0,C.jsx)(x.ZP,{item:!0,xs:12,className:n.startDiagnostic,children:(0,C.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",disabled:b,onClick:function(){return Z(!0)},children:"Start Diagnostic"})},"start-diag"),I&&(0,C.jsxs)(x.ZP,{item:!0,xs:12,className:n.progressResult,children:[(0,C.jsx)("div",{className:n.localMessage,children:F}),f===g?(0,C.jsx)("div",{className:n.loading,children:(0,C.jsx)(y.Z,{style:{width:25,height:25}})}):(0,C.jsxs)(o.Fragment,{children:[f!==l&&(0,C.jsx)(p.Z,{type:"submit",variant:"contained",color:"primary",onClick:function(){!function(e,n){var t=document.createElement("a");t.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(n)),t.setAttribute("download",e),t.style.display="none",document.body.appendChild(t),t.click(),document.body.removeChild(t)}("diagnostic.json",JSON.stringify(a,null,2))},disabled:B,children:"Download"}),(0,C.jsx)(x.ZP,{item:!0,xs:12,className:n.diagNew,children:(0,C.jsx)(p.Z,{id:"start-new-diagnostic",type:"submit",variant:"contained",color:"primary",disabled:b,onClick:function(){return Z(!0)},children:"Start New Diagnostic"})})]})]},"start-download")]})})}),!I&&(0,C.jsxs)(o.Fragment,{children:[(0,C.jsx)("br",{}),(0,C.jsx)(P.Z,{title:"During the health diagnostics run all production traffic will be suspended.",iconComponent:(0,C.jsx)(E.Z,{}),help:(0,C.jsx)(o.Fragment,{})})]})]})]})})))},26824:function(e,n,t){"use strict";t.d(n,{HE:function(){return o},V9:function(){return s},ci:function(){return i},x2:function(){return r}});var s=1006,i=1008,o=1011,r=function(e){var n="ws";return"https:"===e&&(n="wss"),n}},93385:function(e,n,t){"use strict";var s=t(95318);n.Z=void 0;var i=s(t(45649)),o=t(80184),r=(0,i.default)((0,o.jsx)("path",{d:"M6.23 20.23 8 22l10-10L8 2 6.23 3.77 14.46 12z"}),"ArrowForwardIos");n.Z=r},94210:function(e){var n=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 n()}try{return __global__||n()}finally{delete Object.prototype.__global__}}()},95087:function(e,n,t){var s;if("object"===typeof globalThis)s=globalThis;else try{s=t(94210)}catch(a){}finally{if(s||"undefined"===typeof window||(s=window),!s)throw new Error("Could not determine global this")}var i=s.WebSocket||s.MozWebSocket,o=t(51496);function r(e,n){return n?new i(e,n):new i(e)}i&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(r,e,{get:function(){return i[e]}})})),e.exports={w3cwebsocket:i?r:null,version:o}},51496:function(e,n,t){e.exports=t(19794).version},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); +//# sourceMappingURL=5088.92dee249.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5088.0395aa79.chunk.js.map b/portal-ui/build/static/js/5088.92dee249.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/5088.0395aa79.chunk.js.map rename to portal-ui/build/static/js/5088.92dee249.chunk.js.map index be5027872..8f0afef7a 100644 --- a/portal-ui/build/static/js/5088.0395aa79.chunk.js.map +++ b/portal-ui/build/static/js/5088.92dee249.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/5088.0395aa79.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/HealthInfo/types.ts","screens/Console/Common/TestWrapper/TestWrapper.tsx","screens/Console/HealthInfo/HealthInfo.tsx","utils/wsUtils.ts","../node_modules/@mui/icons-material/ArrowForwardIos.js","../node_modules/es5-ext/global.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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 DiagStatError = \"error\";\nexport const DiagStatSuccess = \"success\";\nexport const DiagStatInProgress = \"inProgress\";\nexport interface HealthInfoMessage {\n timestamp: Date;\n error: string;\n perf: perfInfo;\n minio: minioHealthInfo;\n sys: sysHealthInfo;\n}\n\nexport interface perfInfo {\n drives: serverDrivesInfo[];\n net: serverNetHealthInfo[];\n net_parallel: serverNetHealthInfo;\n error: string;\n}\n\nexport interface serverDrivesInfo {\n addr: string;\n serial: drivePerfInfo[];\n parallel: drivePerfInfo[];\n error: string;\n}\n\nexport interface drivePerfInfo {\n endpoint: string;\n latency: diskLatency;\n throughput: diskThroughput;\n error: string;\n}\nexport interface diskLatency {\n avg_secs: number;\n percentile50_secs: number;\n percentile90_secs: number;\n percentile99_secs: number;\n min_secs: number;\n max_secs: number;\n}\n\nexport interface diskThroughput {\n avg_bytes_per_sec: number;\n percentile50_bytes_per_sec: number;\n percentile90_bytes_per_sec: number;\n percentile99_bytes_per_sec: number;\n min_bytes_per_sec: number;\n max_bytes_per_sec: number;\n}\n\nexport interface serverNetHealthInfo {\n addr: string;\n net: netPerfInfo[];\n error: string;\n}\n\nexport interface netPerfInfo {\n remote: string;\n latency: netLatency;\n throughput: netThroughput;\n error: string;\n}\n\nexport interface netLatency {\n avg_secs: number;\n percentile50_secs: number;\n percentile90_secs: number;\n percentile99_secs: number;\n min_secs: number;\n max_secs: number;\n}\nexport interface netThroughput {\n avg_bytes_per_sec: number;\n percentile50_bytes_per_sec: number;\n percentile90_bytes_per_sec: number;\n percentile99_bytes_per_sec: number;\n min_bytes_per_sec: number;\n max_bytes_per_sec: number;\n}\n\nexport interface minioHealthInfo {\n info: infoMessage;\n config: any;\n error: string;\n}\n\nexport interface infoMessage {\n mode: string;\n domain: string[];\n region: string;\n sqsARN: string[];\n deploymentID: string;\n buckets: buckets;\n objects: objects;\n usage: usage;\n services: services;\n backend: any;\n servers: serverProperties[];\n}\n\nexport interface buckets {\n count: number;\n}\n\nexport interface objects {\n count: number;\n}\n\nexport interface usage {\n size: number;\n}\n\nexport interface services {\n vault: vault;\n ldap: ldap;\n logger: Map[];\n audit: Map[];\n notifications: Map[]>;\n}\n\nexport interface vault {\n status: string;\n encrypt: string;\n decrypt: string;\n}\n\nexport interface ldap {\n status: string;\n}\n\nexport interface status {\n status: string;\n}\n\nexport interface serverProperties {\n state: string;\n endpoint: string;\n uptime: number;\n version: string;\n commitID: string;\n network: Map;\n drives: disk[];\n}\n\nexport interface disk {\n endpoint: string;\n rootDisk: boolean;\n path: string;\n healing: boolean;\n state: string;\n uuid: string;\n model: string;\n totalspace: number;\n usedspace: number;\n availspace: number;\n readthroughput: number;\n writethroughput: number;\n readlatency: number;\n writelatency: number;\n utilization: number;\n}\n\nexport interface sysHealthInfo {\n cpus: serverCpuInfo[];\n drives: serverDiskHwInfo[];\n osinfos: serverOsInfo[];\n meminfos: serverMemInfo[];\n procinfos: serverProcInfo[];\n error: string;\n}\n\nexport interface serverCpuInfo {\n addr: string;\n cpu: cpuInfoStat[];\n time: cpuTimeStat[];\n error: string;\n}\n\nexport interface cpuInfoStat {\n cpu: number;\n vendorId: string;\n family: string;\n model: string;\n stepping: number;\n physicalId: string;\n coreId: string;\n cores: number;\n modelName: string;\n mhz: number;\n cacheSize: number;\n flags: string[];\n microcode: string;\n}\n\nexport interface cpuTimeStat {\n cpu: string;\n user: number;\n system: number;\n idle: number;\n nice: number;\n iowait: number;\n irq: number;\n softirq: number;\n steal: number;\n guest: number;\n guestNice: number;\n}\n\nexport interface serverDiskHwInfo {\n addr: string;\n usages: diskUsageStat[];\n partitions: partitionStat[];\n counters: Map;\n error: string;\n}\n\nexport interface diskUsageStat {\n path: string;\n fstype: string;\n total: number;\n free: number;\n used: number;\n usedPercent: number;\n inodesTotal: number;\n inodesUsed: number;\n inodesFree: number;\n inodesUsedPercent: number;\n}\n\nexport interface partitionStat {\n device: string;\n mountpoint: string;\n fstype: string;\n opts: string;\n smartInfo: smartInfo;\n}\n\nexport interface smartInfo {\n device: string;\n scsi: scsiInfo;\n nvme: nvmeInfo;\n ata: ataInfo;\n error: string;\n}\n\nexport interface scsiInfo {\n scsiCapacityBytes: number;\n scsiModeSenseBuf: string;\n scsirespLen: number;\n scsiBdLen: number;\n scsiOffset: number;\n sciRpm: number;\n}\n\nexport interface nvmeInfo {\n serialNum: string;\n vendorId: string;\n firmwareVersion: string;\n modelNum: string;\n spareAvailable: string;\n spareThreshold: string;\n temperature: string;\n criticalWarning: string;\n maxDataTransferPages: number;\n controllerBusyTime: number;\n powerOnHours: number;\n powerCycles: number;\n unsafeShutdowns: number;\n mediaAndDataIntgerityErrors: number;\n dataUnitsReadBytes: number;\n dataUnitsWrittenBytes: number;\n hostReadCommands: number;\n hostWriteCommands: number;\n}\n\nexport interface ataInfo {\n scsiLuWWNDeviceID: string;\n serialNum: string;\n modelNum: string;\n firmwareRevision: string;\n RotationRate: string;\n MajorVersion: string;\n MinorVersion: string;\n smartSupportAvailable: boolean;\n smartSupportEnabled: boolean;\n smartErrorLog: string;\n transport: string;\n}\n\nexport interface diskIOCountersStat {\n readCount: number;\n mergedReadCount: number;\n DriteCount: number;\n mergedWriteCount: number;\n readBytes: number;\n writeBytes: number;\n readTime: number;\n writeTime: number;\n iopsInProgress: number;\n ioTime: number;\n weightedIO: number;\n name: string;\n serialNumber: string;\n label: string;\n}\n\nexport interface serverOsInfo {\n addr: string;\n info: infoStat;\n sensors: temperatureStat[];\n users: userStat[];\n error: string;\n}\n\nexport interface infoStat {\n hostname: string;\n uptime: number;\n bootTime: number;\n procs: number;\n os: string;\n platform: string;\n platformFamily: string;\n platformVersion: string;\n kernelVersion: string;\n kernelArch: string;\n virtualizationSystem: string;\n virtualizationRole: string;\n hostid: string;\n}\n\nexport interface temperatureStat {\n sensorKey: string;\n sensorTemperature: number;\n}\n\nexport interface userStat {\n user: string;\n terminal: string;\n host: string;\n started: number;\n}\n\nexport interface serverMemInfo {\n addr: string;\n swap: swapMemoryStat;\n virtualmem: virtualMemoryStat;\n error: string;\n}\n\nexport interface swapMemoryStat {\n total: number;\n used: number;\n free: number;\n usedPercent: number;\n sin: number;\n sout: number;\n pgin: number;\n pgout: number;\n pgfault: number;\n pgmajfault: number;\n}\n\nexport interface virtualMemoryStat {\n total: number;\n available: number;\n used: number;\n usedPercent: number;\n free: number;\n active: number;\n inactive: number;\n wired: number;\n laundry: number;\n buffers: number;\n cached: number;\n writeback: number;\n dirty: number;\n writebacktmp: number;\n shared: number;\n slab: number;\n sreclaimable: number;\n sunreclaim: number;\n pagetables: number;\n swapcached: number;\n commitlimit: number;\n committedas: number;\n hightotal: number;\n highfree: number;\n lowtotal: number;\n lowfree: number;\n swaptotal: number;\n swapfree: number;\n mapped: number;\n vmalloctotal: number;\n vmallocused: number;\n vmallocchunk: number;\n hugepagestotal: number;\n hugepagesfree: number;\n hugepagesize: number;\n}\n\nexport interface serverProcInfo {\n addr: string;\n processes: sysProcess[];\n error: string;\n}\n\nexport interface sysProcess {\n pid: number;\n background: boolean;\n cpupercent: number;\n children: number[];\n cmd: string;\n connections: nethwConnectionStat[];\n createtime: number;\n cwd: string;\n exe: string;\n gids: number[];\n iocounters: processIOCountersStat;\n isrunning: boolean;\n meminfo: memoryInfoStat;\n memmaps: any[];\n mempercent: number;\n name: string;\n netiocounters: nethwIOCounterStat[];\n nice: number;\n numctxswitches: processNmCtxSwitchesStat;\n numfds: number;\n numthreads: number;\n pagefaults: processPageFaultsStat;\n parent: number;\n ppid: number;\n rlimit: processRLimitStat[];\n status: string;\n tgid: number;\n cputimes: cpuTimeStat;\n uids: number[];\n username: string;\n}\n\nexport interface nethwConnectionStat {\n fd: number;\n family: number;\n type: number;\n localaddr: netAddr;\n remoteaddr: netAddr;\n status: string;\n uids: number[];\n pid: number;\n}\n\nexport interface netAddr {\n ip: string;\n port: number;\n}\n\nexport interface processIOCountersStat {\n readCount: number;\n writeCount: number;\n readBytes: number;\n writeBytes: number;\n}\n\nexport interface memoryInfoStat {\n rss: number;\n vms: number;\n hwm: number;\n data: number;\n stack: number;\n locked: number;\n swap: number;\n}\n\nexport interface nethwIOCounterStat {\n name: string;\n bytesSent: number;\n bytesRecv: number;\n packetsSent: number;\n packetsRecv: number;\n errin: number;\n errout: number;\n dropin: number;\n dropout: number;\n fifoin: number;\n fifoout: number;\n}\n\nexport interface processNmCtxSwitchesStat {\n voluntary: number;\n involuntary: number;\n}\n\nexport interface processPageFaultsStat {\n minorFaults: number;\n majorFaults: number;\n childMinorFaults: number;\n childMajorFaults: number;\n}\n\nexport interface processRLimitStat {\n resource: number;\n soft: number;\n hard: number;\n used: number;\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, useState, useEffect } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid } from \"@mui/material\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport { DrivesIcon, VersionIcon } from \"../../../../icons\";\nimport { ServerInfo, Usage } from \"../../Dashboard/types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport Loader from \"../Loader/Loader\";\n\ninterface ITestWrapper {\n title: any;\n children: any;\n classes: any;\n advancedVisible: boolean;\n advancedContent?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n titleBar: {\n borderBottom: \"#E5E5E5 1px solid\",\n padding: \"30px 25px\",\n fontSize: 20,\n color: \"#07193E\",\n fontWeight: \"bold\",\n borderRadius: \"10px 10px 0px 0px\",\n paddingTop: 0,\n },\n divisorContainer: {\n padding: 25,\n },\n serversData: {\n color: \"#07193E\",\n fontSize: 18,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n marginRight: 10,\n },\n },\n minioVersionContainer: {\n fontSize: 12,\n color: \"#07193E\",\n justifyContent: \"center\",\n alignSelf: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n },\n versionIcon: {\n color: \"#07193E\",\n marginRight: 20,\n },\n loaderAlign: {\n textAlign: \"center\",\n },\n advancedContainer: {\n justifyContent: \"flex-end\",\n display: \"flex\",\n },\n optionsContainer: {\n padding: 0,\n marginBottom: 25,\n },\n advancedConfiguration: {\n color: \"#2781B0\",\n fontSize: 10,\n textDecoration: \"underline\",\n border: \"none\",\n backgroundColor: \"transparent\",\n cursor: \"pointer\",\n alignItems: \"center\",\n display: \"flex\",\n\n \"&:hover\": {\n color: \"#07193E\",\n },\n\n \"& svg\": {\n width: 10,\n alignSelf: \"center\",\n marginLeft: 5,\n },\n },\n advancedOpen: {\n transform: \"rotateZ(-90deg) translateX(-4px) translateY(2px)\",\n },\n advancedClosed: {\n transform: \"rotateZ(90deg)\",\n },\n advancedContent: {\n backgroundColor: \"#F5F7F9\",\n maxHeight: 0,\n transitionDuration: \"0.3s\",\n overflow: \"hidden\",\n padding: \"0 15px\",\n \"&.open\": {\n maxHeight: 400,\n padding: 15,\n },\n },\n });\n\nconst TestWrapper = ({\n title,\n children,\n classes,\n advancedVisible,\n advancedContent,\n}: ITestWrapper) => {\n const [version, setVersion] = useState(\"N/A\");\n const [totalNodes, setTotalNodes] = useState(0);\n const [totalDrives, setTotalDrives] = useState(0);\n const [loading, setLoading] = useState(true);\n const [advancedOpen, setAdvancedOpen] = useState(false);\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/admin/info?defaultOnly=true`)\n .then((res: Usage) => {\n const totalServers = res.servers?.length;\n setTotalNodes(totalServers);\n\n if (res.servers.length > 0) {\n setVersion(res.servers[0].version);\n\n const totalServers = res.servers.reduce(\n (prevTotal: number, currentElement: ServerInfo) => {\n return prevTotal + currentElement.drives.length;\n },\n 0\n );\n setTotalDrives(totalServers);\n }\n\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n });\n }\n }, [loading]);\n\n return (\n \n \n {title}\n \n \n \n \n {!loading ? (\n \n \n {totalNodes}\n  nodes, \n {totalDrives}  drives\n \n \n \n \n {\" \"}\n MinIO VERSION {version}\n \n \n {advancedVisible && (\n {\n setAdvancedOpen(!advancedOpen);\n }}\n className={classes.advancedConfiguration}\n >\n Advanced configurations{\" \"}\n \n \n \n \n )}\n \n
    \n ) : (\n \n \n \n \n \n )}\n \n {advancedContent && (\n \n {advancedContent}\n \n )}\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(TestWrapper);\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, { Fragment, useEffect, useState } from \"react\";\nimport {\n ICloseEvent,\n IMessageEvent,\n w3cwebsocket as W3CWebSocket,\n} from \"websocket\";\nimport { AppState } from \"../../../store\";\nimport { connect } from \"react-redux\";\nimport { healthInfoMessageReceived, healthInfoResetMessage } from \"./actions\";\nimport {\n DiagStatError,\n DiagStatInProgress,\n DiagStatSuccess,\n HealthInfoMessage,\n} from \"./types\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n WSCloseAbnormalClosure,\n WSCloseInternalServerErr,\n WSClosePolicyViolation,\n wsProtocol,\n} from \"../../../utils/wsUtils\";\nimport {\n actionsTray,\n containerForHeader,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { Button, Grid } from \"@mui/material\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport { setServerDiagStat, setSnackBarMessage } from \"../../../actions\";\nimport TestWrapper from \"../Common/TestWrapper/TestWrapper\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport WarnIcon from \"../../../icons/WarnIcon\";\nimport Loader from \"../Common/Loader/Loader\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n loading: {\n paddingTop: 8,\n paddingLeft: 40,\n },\n buttons: {\n justifyContent: \"flex-start\",\n gap: 20,\n },\n localMessage: {\n fontSize: 24,\n color: \"#07193E\",\n fontWeight: \"bold\",\n textAlign: \"center\",\n marginBottom: 10,\n },\n startDiagnostic: {\n textAlign: \"center\",\n marginBottom: 25,\n },\n progressResult: {\n textAlign: \"center\",\n marginBottom: 25,\n },\n diagNew: {\n textAlign: \"right\",\n margin: 25,\n marginBottom: 0,\n },\n ...actionsTray,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\n \"href\",\n \"data:text/plain;charset=utf-8,\" + encodeURIComponent(text)\n );\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n\n document.body.removeChild(element);\n};\n\ninterface IHealthInfo {\n classes: any;\n healthInfoMessageReceived: typeof healthInfoMessageReceived;\n healthInfoResetMessage: typeof healthInfoResetMessage;\n message: HealthInfoMessage;\n namespace: string;\n tenant: string;\n setSnackBarMessage: typeof setSnackBarMessage;\n setServerDiagStat: typeof setServerDiagStat;\n serverDiagnosticStatus: string;\n}\n\nconst HealthInfo = ({\n classes,\n healthInfoMessageReceived,\n healthInfoResetMessage,\n message,\n setSnackBarMessage,\n setServerDiagStat,\n serverDiagnosticStatus,\n}: IHealthInfo) => {\n const [startDiagnostic, setStartDiagnostic] = useState(false);\n const [diagStarted, setDiagStarted] = useState(false);\n const [downloadDisabled, setDownloadDisabled] = useState(true);\n const [localMessage, setMessage] = useState(\"\");\n const [title, setTitle] = useState(\"New Diagnostic\");\n\n useEffect(() => {\n if (serverDiagnosticStatus === DiagStatInProgress) {\n setTitle(\"Diagnostic in progress...\");\n return;\n }\n\n if (serverDiagnosticStatus === DiagStatSuccess && diagStarted) {\n setTitle(\"Diagnostic complete\");\n return;\n }\n\n if (serverDiagnosticStatus === DiagStatError) {\n setTitle(\"Error\");\n return;\n }\n }, [serverDiagnosticStatus, startDiagnostic, diagStarted]);\n\n useEffect(() => {\n if (\n serverDiagnosticStatus === DiagStatSuccess &&\n message !== ({} as HealthInfoMessage)\n ) {\n // Allow download of diagnostics file only when\n // it succeded fetching all the results and info is not empty.\n setDownloadDisabled(false);\n }\n if (serverDiagnosticStatus === DiagStatInProgress) {\n // Disable Start Diagnotic and Disable Download buttons\n // if a Diagnosis is in progress.\n setDownloadDisabled(true);\n }\n setStartDiagnostic(false);\n }, [serverDiagnosticStatus, message]);\n\n useEffect(() => {\n if (startDiagnostic) {\n healthInfoResetMessage();\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 const wsProt = wsProtocol(url.protocol);\n\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}/ws/health-info?deadline=1h`\n );\n\n let interval: any | null = null;\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n c.send(\"ok\");\n interval = setInterval(() => {\n c.send(\"ok\");\n }, 10 * 1000);\n setDiagStarted(true);\n setMessage(\n \"Diagnostic started. Please do not refresh page during diagnosis.\"\n );\n setServerDiagStat(DiagStatInProgress);\n };\n c.onmessage = (message: IMessageEvent) => {\n let m: HealthInfoMessage = JSON.parse(message.data.toString());\n m.timestamp = new Date(m.timestamp.toString());\n\n healthInfoMessageReceived(m);\n };\n c.onerror = (error: Error) => {\n console.log(\"error closing websocket:\", error.message);\n c.close(1000);\n clearInterval(interval);\n setServerDiagStat(DiagStatError);\n };\n c.onclose = (event: ICloseEvent) => {\n clearInterval(interval);\n if (\n event.code === WSCloseInternalServerErr ||\n event.code === WSClosePolicyViolation ||\n event.code === WSCloseAbnormalClosure\n ) {\n // handle close with error\n console.log(\"connection closed by server with code:\", event.code);\n setMessage(\"An error occurred while getting Diagnostic file.\");\n setServerDiagStat(DiagStatError);\n } else {\n console.log(\"connection closed by server\");\n\n setMessage(\"Diagnostic file is ready to be downloaded.\");\n setServerDiagStat(DiagStatSuccess);\n }\n };\n }\n } else {\n // reset start status\n setStartDiagnostic(false);\n }\n }, [\n healthInfoMessageReceived,\n healthInfoResetMessage,\n startDiagnostic,\n setSnackBarMessage,\n setServerDiagStat,\n ]);\n\n return (\n \n \n \n \n \n \n {!diagStarted && (\n \n setStartDiagnostic(true)}\n >\n Start Diagnostic\n \n \n )}\n {diagStarted && (\n \n
    {localMessage}
    \n {serverDiagnosticStatus === DiagStatInProgress ? (\n
    \n \n
    \n ) : (\n \n {serverDiagnosticStatus !== DiagStatError && (\n {\n download(\n \"diagnostic.json\",\n JSON.stringify(message, null, 2)\n );\n }}\n disabled={downloadDisabled}\n >\n Download\n \n )}\n \n setStartDiagnostic(true)}\n >\n Start New Diagnostic\n \n \n \n )}\n
    \n )}\n \n \n \n {!diagStarted && (\n \n
    \n }\n help={}\n />\n \n )}\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n message: state.healthInfo.message,\n serverDiagnosticStatus: state.system.serverDiagnosticStatus,\n});\n\nconst connector = connect(mapState, {\n healthInfoMessageReceived: healthInfoMessageReceived,\n healthInfoResetMessage: healthInfoResetMessage,\n setSnackBarMessage,\n setServerDiagStat,\n});\n\nexport default connector(withStyles(styles)(HealthInfo));\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseNormalClosure = 1000;\nexport const WSCloseCloseGoingAway = 1001;\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6.23 20.23 8 22l10-10L8 2 6.23 3.77 14.46 12z\"\n}), 'ArrowForwardIos');\n\nexports.default = _default;","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","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":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","pageContentStyles","children","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","label","justifyContent","labelStyle","color","marginLeft","marginTop","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","actions","includes","Fragment","direction","sm","md","sx","variant","length","component","onClick","id","size","DiagStatError","DiagStatSuccess","DiagStatInProgress","titleBar","borderBottom","padding","divisorContainer","serversData","minioVersionContainer","alignSelf","versionIcon","loaderAlign","advancedContainer","optionsContainer","advancedConfiguration","textDecoration","cursor","advancedOpen","transform","advancedClosed","advancedContent","maxHeight","transitionDuration","overflow","advancedVisible","useState","version","setVersion","totalNodes","setTotalNodes","totalDrives","setTotalDrives","loading","setLoading","setAdvancedOpen","useEffect","api","then","res","totalServers","servers","reduce","prevTotal","currentElement","drives","catch","err","Grid","Loader","style","ArrowForwardIos","message","healthInfo","serverDiagnosticStatus","healthInfoMessageReceived","healthInfoResetMessage","setSnackBarMessage","setServerDiagStat","buttons","gap","localMessage","startDiagnostic","progressResult","diagNew","margin","actionsTray","containerForHeader","spacing","setStartDiagnostic","diagStarted","setDiagStarted","downloadDisabled","setDownloadDisabled","setMessage","setTitle","url","URL","window","location","toString","port","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","interval","onopen","log","send","setInterval","onmessage","m","JSON","parse","data","timestamp","Date","onerror","error","close","clearInterval","onclose","event","code","WSCloseInternalServerErr","WSClosePolicyViolation","WSCloseAbnormalClosure","PageHeader","PageLayout","boxy","Button","type","disabled","filename","text","element","document","createElement","setAttribute","encodeURIComponent","body","appendChild","click","removeChild","download","stringify","HelpBox","WarnIcon","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","naiveFallback","self","Error","module","this","globalThis","Object","defineProperty","prototype","get","configurable","__global__","_globalThis","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","forEach","prop"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/5088.92dee249.chunk.js","mappings":"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","sources":["common/HelpBox.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/HealthInfo/types.ts","screens/Console/Common/TestWrapper/TestWrapper.tsx","screens/Console/HealthInfo/HealthInfo.tsx","utils/wsUtils.ts","../node_modules/@mui/icons-material/ArrowForwardIos.js","../node_modules/es5-ext/global.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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 DiagStatError = \"error\";\nexport const DiagStatSuccess = \"success\";\nexport const DiagStatInProgress = \"inProgress\";\nexport interface HealthInfoMessage {\n timestamp: Date;\n error: string;\n perf: perfInfo;\n minio: minioHealthInfo;\n sys: sysHealthInfo;\n}\n\nexport interface perfInfo {\n drives: serverDrivesInfo[];\n net: serverNetHealthInfo[];\n net_parallel: serverNetHealthInfo;\n error: string;\n}\n\nexport interface serverDrivesInfo {\n addr: string;\n serial: drivePerfInfo[];\n parallel: drivePerfInfo[];\n error: string;\n}\n\nexport interface drivePerfInfo {\n endpoint: string;\n latency: diskLatency;\n throughput: diskThroughput;\n error: string;\n}\nexport interface diskLatency {\n avg_secs: number;\n percentile50_secs: number;\n percentile90_secs: number;\n percentile99_secs: number;\n min_secs: number;\n max_secs: number;\n}\n\nexport interface diskThroughput {\n avg_bytes_per_sec: number;\n percentile50_bytes_per_sec: number;\n percentile90_bytes_per_sec: number;\n percentile99_bytes_per_sec: number;\n min_bytes_per_sec: number;\n max_bytes_per_sec: number;\n}\n\nexport interface serverNetHealthInfo {\n addr: string;\n net: netPerfInfo[];\n error: string;\n}\n\nexport interface netPerfInfo {\n remote: string;\n latency: netLatency;\n throughput: netThroughput;\n error: string;\n}\n\nexport interface netLatency {\n avg_secs: number;\n percentile50_secs: number;\n percentile90_secs: number;\n percentile99_secs: number;\n min_secs: number;\n max_secs: number;\n}\nexport interface netThroughput {\n avg_bytes_per_sec: number;\n percentile50_bytes_per_sec: number;\n percentile90_bytes_per_sec: number;\n percentile99_bytes_per_sec: number;\n min_bytes_per_sec: number;\n max_bytes_per_sec: number;\n}\n\nexport interface minioHealthInfo {\n info: infoMessage;\n config: any;\n error: string;\n}\n\nexport interface infoMessage {\n mode: string;\n domain: string[];\n region: string;\n sqsARN: string[];\n deploymentID: string;\n buckets: buckets;\n objects: objects;\n usage: usage;\n services: services;\n backend: any;\n servers: serverProperties[];\n}\n\nexport interface buckets {\n count: number;\n}\n\nexport interface objects {\n count: number;\n}\n\nexport interface usage {\n size: number;\n}\n\nexport interface services {\n vault: vault;\n ldap: ldap;\n logger: Map[];\n audit: Map[];\n notifications: Map[]>;\n}\n\nexport interface vault {\n status: string;\n encrypt: string;\n decrypt: string;\n}\n\nexport interface ldap {\n status: string;\n}\n\nexport interface status {\n status: string;\n}\n\nexport interface serverProperties {\n state: string;\n endpoint: string;\n uptime: number;\n version: string;\n commitID: string;\n network: Map;\n drives: disk[];\n}\n\nexport interface disk {\n endpoint: string;\n rootDisk: boolean;\n path: string;\n healing: boolean;\n state: string;\n uuid: string;\n model: string;\n totalspace: number;\n usedspace: number;\n availspace: number;\n readthroughput: number;\n writethroughput: number;\n readlatency: number;\n writelatency: number;\n utilization: number;\n}\n\nexport interface sysHealthInfo {\n cpus: serverCpuInfo[];\n drives: serverDiskHwInfo[];\n osinfos: serverOsInfo[];\n meminfos: serverMemInfo[];\n procinfos: serverProcInfo[];\n error: string;\n}\n\nexport interface serverCpuInfo {\n addr: string;\n cpu: cpuInfoStat[];\n time: cpuTimeStat[];\n error: string;\n}\n\nexport interface cpuInfoStat {\n cpu: number;\n vendorId: string;\n family: string;\n model: string;\n stepping: number;\n physicalId: string;\n coreId: string;\n cores: number;\n modelName: string;\n mhz: number;\n cacheSize: number;\n flags: string[];\n microcode: string;\n}\n\nexport interface cpuTimeStat {\n cpu: string;\n user: number;\n system: number;\n idle: number;\n nice: number;\n iowait: number;\n irq: number;\n softirq: number;\n steal: number;\n guest: number;\n guestNice: number;\n}\n\nexport interface serverDiskHwInfo {\n addr: string;\n usages: diskUsageStat[];\n partitions: partitionStat[];\n counters: Map;\n error: string;\n}\n\nexport interface diskUsageStat {\n path: string;\n fstype: string;\n total: number;\n free: number;\n used: number;\n usedPercent: number;\n inodesTotal: number;\n inodesUsed: number;\n inodesFree: number;\n inodesUsedPercent: number;\n}\n\nexport interface partitionStat {\n device: string;\n mountpoint: string;\n fstype: string;\n opts: string;\n smartInfo: smartInfo;\n}\n\nexport interface smartInfo {\n device: string;\n scsi: scsiInfo;\n nvme: nvmeInfo;\n ata: ataInfo;\n error: string;\n}\n\nexport interface scsiInfo {\n scsiCapacityBytes: number;\n scsiModeSenseBuf: string;\n scsirespLen: number;\n scsiBdLen: number;\n scsiOffset: number;\n sciRpm: number;\n}\n\nexport interface nvmeInfo {\n serialNum: string;\n vendorId: string;\n firmwareVersion: string;\n modelNum: string;\n spareAvailable: string;\n spareThreshold: string;\n temperature: string;\n criticalWarning: string;\n maxDataTransferPages: number;\n controllerBusyTime: number;\n powerOnHours: number;\n powerCycles: number;\n unsafeShutdowns: number;\n mediaAndDataIntgerityErrors: number;\n dataUnitsReadBytes: number;\n dataUnitsWrittenBytes: number;\n hostReadCommands: number;\n hostWriteCommands: number;\n}\n\nexport interface ataInfo {\n scsiLuWWNDeviceID: string;\n serialNum: string;\n modelNum: string;\n firmwareRevision: string;\n RotationRate: string;\n MajorVersion: string;\n MinorVersion: string;\n smartSupportAvailable: boolean;\n smartSupportEnabled: boolean;\n smartErrorLog: string;\n transport: string;\n}\n\nexport interface diskIOCountersStat {\n readCount: number;\n mergedReadCount: number;\n DriteCount: number;\n mergedWriteCount: number;\n readBytes: number;\n writeBytes: number;\n readTime: number;\n writeTime: number;\n iopsInProgress: number;\n ioTime: number;\n weightedIO: number;\n name: string;\n serialNumber: string;\n label: string;\n}\n\nexport interface serverOsInfo {\n addr: string;\n info: infoStat;\n sensors: temperatureStat[];\n users: userStat[];\n error: string;\n}\n\nexport interface infoStat {\n hostname: string;\n uptime: number;\n bootTime: number;\n procs: number;\n os: string;\n platform: string;\n platformFamily: string;\n platformVersion: string;\n kernelVersion: string;\n kernelArch: string;\n virtualizationSystem: string;\n virtualizationRole: string;\n hostid: string;\n}\n\nexport interface temperatureStat {\n sensorKey: string;\n sensorTemperature: number;\n}\n\nexport interface userStat {\n user: string;\n terminal: string;\n host: string;\n started: number;\n}\n\nexport interface serverMemInfo {\n addr: string;\n swap: swapMemoryStat;\n virtualmem: virtualMemoryStat;\n error: string;\n}\n\nexport interface swapMemoryStat {\n total: number;\n used: number;\n free: number;\n usedPercent: number;\n sin: number;\n sout: number;\n pgin: number;\n pgout: number;\n pgfault: number;\n pgmajfault: number;\n}\n\nexport interface virtualMemoryStat {\n total: number;\n available: number;\n used: number;\n usedPercent: number;\n free: number;\n active: number;\n inactive: number;\n wired: number;\n laundry: number;\n buffers: number;\n cached: number;\n writeback: number;\n dirty: number;\n writebacktmp: number;\n shared: number;\n slab: number;\n sreclaimable: number;\n sunreclaim: number;\n pagetables: number;\n swapcached: number;\n commitlimit: number;\n committedas: number;\n hightotal: number;\n highfree: number;\n lowtotal: number;\n lowfree: number;\n swaptotal: number;\n swapfree: number;\n mapped: number;\n vmalloctotal: number;\n vmallocused: number;\n vmallocchunk: number;\n hugepagestotal: number;\n hugepagesfree: number;\n hugepagesize: number;\n}\n\nexport interface serverProcInfo {\n addr: string;\n processes: sysProcess[];\n error: string;\n}\n\nexport interface sysProcess {\n pid: number;\n background: boolean;\n cpupercent: number;\n children: number[];\n cmd: string;\n connections: nethwConnectionStat[];\n createtime: number;\n cwd: string;\n exe: string;\n gids: number[];\n iocounters: processIOCountersStat;\n isrunning: boolean;\n meminfo: memoryInfoStat;\n memmaps: any[];\n mempercent: number;\n name: string;\n netiocounters: nethwIOCounterStat[];\n nice: number;\n numctxswitches: processNmCtxSwitchesStat;\n numfds: number;\n numthreads: number;\n pagefaults: processPageFaultsStat;\n parent: number;\n ppid: number;\n rlimit: processRLimitStat[];\n status: string;\n tgid: number;\n cputimes: cpuTimeStat;\n uids: number[];\n username: string;\n}\n\nexport interface nethwConnectionStat {\n fd: number;\n family: number;\n type: number;\n localaddr: netAddr;\n remoteaddr: netAddr;\n status: string;\n uids: number[];\n pid: number;\n}\n\nexport interface netAddr {\n ip: string;\n port: number;\n}\n\nexport interface processIOCountersStat {\n readCount: number;\n writeCount: number;\n readBytes: number;\n writeBytes: number;\n}\n\nexport interface memoryInfoStat {\n rss: number;\n vms: number;\n hwm: number;\n data: number;\n stack: number;\n locked: number;\n swap: number;\n}\n\nexport interface nethwIOCounterStat {\n name: string;\n bytesSent: number;\n bytesRecv: number;\n packetsSent: number;\n packetsRecv: number;\n errin: number;\n errout: number;\n dropin: number;\n dropout: number;\n fifoin: number;\n fifoout: number;\n}\n\nexport interface processNmCtxSwitchesStat {\n voluntary: number;\n involuntary: number;\n}\n\nexport interface processPageFaultsStat {\n minorFaults: number;\n majorFaults: number;\n childMinorFaults: number;\n childMajorFaults: number;\n}\n\nexport interface processRLimitStat {\n resource: number;\n soft: number;\n hard: number;\n used: number;\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, useState, useEffect } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid } from \"@mui/material\";\nimport ArrowForwardIosIcon from \"@mui/icons-material/ArrowForwardIos\";\nimport { DrivesIcon, VersionIcon } from \"../../../../icons\";\nimport { ServerInfo, Usage } from \"../../Dashboard/types\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport Loader from \"../Loader/Loader\";\n\ninterface ITestWrapper {\n title: any;\n children: any;\n classes: any;\n advancedVisible: boolean;\n advancedContent?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n titleBar: {\n borderBottom: \"#E5E5E5 1px solid\",\n padding: \"30px 25px\",\n fontSize: 20,\n color: \"#07193E\",\n fontWeight: \"bold\",\n borderRadius: \"10px 10px 0px 0px\",\n paddingTop: 0,\n },\n divisorContainer: {\n padding: 25,\n },\n serversData: {\n color: \"#07193E\",\n fontSize: 18,\n display: \"flex\",\n alignItems: \"center\",\n \"& svg\": {\n marginRight: 10,\n },\n },\n minioVersionContainer: {\n fontSize: 12,\n color: \"#07193E\",\n justifyContent: \"center\",\n alignSelf: \"center\",\n alignItems: \"center\",\n display: \"flex\",\n },\n versionIcon: {\n color: \"#07193E\",\n marginRight: 20,\n },\n loaderAlign: {\n textAlign: \"center\",\n },\n advancedContainer: {\n justifyContent: \"flex-end\",\n display: \"flex\",\n },\n optionsContainer: {\n padding: 0,\n marginBottom: 25,\n },\n advancedConfiguration: {\n color: \"#2781B0\",\n fontSize: 10,\n textDecoration: \"underline\",\n border: \"none\",\n backgroundColor: \"transparent\",\n cursor: \"pointer\",\n alignItems: \"center\",\n display: \"flex\",\n\n \"&:hover\": {\n color: \"#07193E\",\n },\n\n \"& svg\": {\n width: 10,\n alignSelf: \"center\",\n marginLeft: 5,\n },\n },\n advancedOpen: {\n transform: \"rotateZ(-90deg) translateX(-4px) translateY(2px)\",\n },\n advancedClosed: {\n transform: \"rotateZ(90deg)\",\n },\n advancedContent: {\n backgroundColor: \"#F5F7F9\",\n maxHeight: 0,\n transitionDuration: \"0.3s\",\n overflow: \"hidden\",\n padding: \"0 15px\",\n \"&.open\": {\n maxHeight: 400,\n padding: 15,\n },\n },\n });\n\nconst TestWrapper = ({\n title,\n children,\n classes,\n advancedVisible,\n advancedContent,\n}: ITestWrapper) => {\n const [version, setVersion] = useState(\"N/A\");\n const [totalNodes, setTotalNodes] = useState(0);\n const [totalDrives, setTotalDrives] = useState(0);\n const [loading, setLoading] = useState(true);\n const [advancedOpen, setAdvancedOpen] = useState(false);\n\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/admin/info?defaultOnly=true`)\n .then((res: Usage) => {\n const totalServers = res.servers?.length;\n setTotalNodes(totalServers);\n\n if (res.servers.length > 0) {\n setVersion(res.servers[0].version);\n\n const totalServers = res.servers.reduce(\n (prevTotal: number, currentElement: ServerInfo) => {\n return prevTotal + currentElement.drives.length;\n },\n 0\n );\n setTotalDrives(totalServers);\n }\n\n setLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n });\n }\n }, [loading]);\n\n return (\n \n \n {title}\n \n \n \n \n {!loading ? (\n \n \n {totalNodes}\n  nodes, \n {totalDrives}  drives\n \n \n \n \n {\" \"}\n MinIO VERSION {version}\n \n \n {advancedVisible && (\n {\n setAdvancedOpen(!advancedOpen);\n }}\n className={classes.advancedConfiguration}\n >\n Advanced configurations{\" \"}\n \n \n \n \n )}\n \n
    \n ) : (\n \n \n \n \n \n )}\n \n {advancedContent && (\n \n {advancedContent}\n \n )}\n \n {children}\n \n \n );\n};\n\nexport default withStyles(styles)(TestWrapper);\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, { Fragment, useEffect, useState } from \"react\";\nimport {\n ICloseEvent,\n IMessageEvent,\n w3cwebsocket as W3CWebSocket,\n} from \"websocket\";\nimport { AppState } from \"../../../store\";\nimport { connect } from \"react-redux\";\nimport { healthInfoMessageReceived, healthInfoResetMessage } from \"./actions\";\nimport {\n DiagStatError,\n DiagStatInProgress,\n DiagStatSuccess,\n HealthInfoMessage,\n} from \"./types\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n WSCloseAbnormalClosure,\n WSCloseInternalServerErr,\n WSClosePolicyViolation,\n wsProtocol,\n} from \"../../../utils/wsUtils\";\nimport {\n actionsTray,\n containerForHeader,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { Button, Grid } from \"@mui/material\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport { setServerDiagStat, setSnackBarMessage } from \"../../../actions\";\nimport TestWrapper from \"../Common/TestWrapper/TestWrapper\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport HelpBox from \"../../../common/HelpBox\";\nimport WarnIcon from \"../../../icons/WarnIcon\";\nimport Loader from \"../Common/Loader/Loader\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n loading: {\n paddingTop: 8,\n paddingLeft: 40,\n },\n buttons: {\n justifyContent: \"flex-start\",\n gap: 20,\n },\n localMessage: {\n fontSize: 24,\n color: \"#07193E\",\n fontWeight: \"bold\",\n textAlign: \"center\",\n marginBottom: 10,\n },\n startDiagnostic: {\n textAlign: \"center\",\n marginBottom: 25,\n },\n progressResult: {\n textAlign: \"center\",\n marginBottom: 25,\n },\n diagNew: {\n textAlign: \"right\",\n margin: 25,\n marginBottom: 0,\n },\n ...actionsTray,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\n \"href\",\n \"data:text/plain;charset=utf-8,\" + encodeURIComponent(text)\n );\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n\n document.body.removeChild(element);\n};\n\ninterface IHealthInfo {\n classes: any;\n healthInfoMessageReceived: typeof healthInfoMessageReceived;\n healthInfoResetMessage: typeof healthInfoResetMessage;\n message: HealthInfoMessage;\n namespace: string;\n tenant: string;\n setSnackBarMessage: typeof setSnackBarMessage;\n setServerDiagStat: typeof setServerDiagStat;\n serverDiagnosticStatus: string;\n}\n\nconst HealthInfo = ({\n classes,\n healthInfoMessageReceived,\n healthInfoResetMessage,\n message,\n setSnackBarMessage,\n setServerDiagStat,\n serverDiagnosticStatus,\n}: IHealthInfo) => {\n const [startDiagnostic, setStartDiagnostic] = useState(false);\n const [diagStarted, setDiagStarted] = useState(false);\n const [downloadDisabled, setDownloadDisabled] = useState(true);\n const [localMessage, setMessage] = useState(\"\");\n const [title, setTitle] = useState(\"New Diagnostic\");\n\n useEffect(() => {\n if (serverDiagnosticStatus === DiagStatInProgress) {\n setTitle(\"Diagnostic in progress...\");\n return;\n }\n\n if (serverDiagnosticStatus === DiagStatSuccess && diagStarted) {\n setTitle(\"Diagnostic complete\");\n return;\n }\n\n if (serverDiagnosticStatus === DiagStatError) {\n setTitle(\"Error\");\n return;\n }\n }, [serverDiagnosticStatus, startDiagnostic, diagStarted]);\n\n useEffect(() => {\n if (\n serverDiagnosticStatus === DiagStatSuccess &&\n message !== ({} as HealthInfoMessage)\n ) {\n // Allow download of diagnostics file only when\n // it succeded fetching all the results and info is not empty.\n setDownloadDisabled(false);\n }\n if (serverDiagnosticStatus === DiagStatInProgress) {\n // Disable Start Diagnotic and Disable Download buttons\n // if a Diagnosis is in progress.\n setDownloadDisabled(true);\n }\n setStartDiagnostic(false);\n }, [serverDiagnosticStatus, message]);\n\n useEffect(() => {\n if (startDiagnostic) {\n healthInfoResetMessage();\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 const wsProt = wsProtocol(url.protocol);\n\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}/ws/health-info?deadline=1h`\n );\n\n let interval: any | null = null;\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n c.send(\"ok\");\n interval = setInterval(() => {\n c.send(\"ok\");\n }, 10 * 1000);\n setDiagStarted(true);\n setMessage(\n \"Diagnostic started. Please do not refresh page during diagnosis.\"\n );\n setServerDiagStat(DiagStatInProgress);\n };\n c.onmessage = (message: IMessageEvent) => {\n let m: HealthInfoMessage = JSON.parse(message.data.toString());\n m.timestamp = new Date(m.timestamp.toString());\n\n healthInfoMessageReceived(m);\n };\n c.onerror = (error: Error) => {\n console.log(\"error closing websocket:\", error.message);\n c.close(1000);\n clearInterval(interval);\n setServerDiagStat(DiagStatError);\n };\n c.onclose = (event: ICloseEvent) => {\n clearInterval(interval);\n if (\n event.code === WSCloseInternalServerErr ||\n event.code === WSClosePolicyViolation ||\n event.code === WSCloseAbnormalClosure\n ) {\n // handle close with error\n console.log(\"connection closed by server with code:\", event.code);\n setMessage(\"An error occurred while getting Diagnostic file.\");\n setServerDiagStat(DiagStatError);\n } else {\n console.log(\"connection closed by server\");\n\n setMessage(\"Diagnostic file is ready to be downloaded.\");\n setServerDiagStat(DiagStatSuccess);\n }\n };\n }\n } else {\n // reset start status\n setStartDiagnostic(false);\n }\n }, [\n healthInfoMessageReceived,\n healthInfoResetMessage,\n startDiagnostic,\n setSnackBarMessage,\n setServerDiagStat,\n ]);\n\n return (\n \n \n \n \n \n \n {!diagStarted && (\n \n setStartDiagnostic(true)}\n >\n Start Diagnostic\n \n \n )}\n {diagStarted && (\n \n
    {localMessage}
    \n {serverDiagnosticStatus === DiagStatInProgress ? (\n
    \n \n
    \n ) : (\n \n {serverDiagnosticStatus !== DiagStatError && (\n {\n download(\n \"diagnostic.json\",\n JSON.stringify(message, null, 2)\n );\n }}\n disabled={downloadDisabled}\n >\n Download\n \n )}\n \n setStartDiagnostic(true)}\n >\n Start New Diagnostic\n \n \n \n )}\n
    \n )}\n \n \n \n {!diagStarted && (\n \n
    \n }\n help={}\n />\n \n )}\n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n message: state.healthInfo.message,\n serverDiagnosticStatus: state.system.serverDiagnosticStatus,\n});\n\nconst connector = connect(mapState, {\n healthInfoMessageReceived: healthInfoMessageReceived,\n healthInfoResetMessage: healthInfoResetMessage,\n setSnackBarMessage,\n setServerDiagStat,\n});\n\nexport default connector(withStyles(styles)(HealthInfo));\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseNormalClosure = 1000;\nexport const WSCloseCloseGoingAway = 1001;\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6.23 20.23 8 22l10-10L8 2 6.23 3.77 14.46 12z\"\n}), 'ArrowForwardIos');\n\nexports.default = _default;","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","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":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","pageContentStyles","children","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","label","justifyContent","labelStyle","color","marginLeft","marginTop","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","actions","includes","Fragment","direction","sm","md","sx","variant","length","component","onClick","id","size","DiagStatError","DiagStatSuccess","DiagStatInProgress","titleBar","borderBottom","padding","divisorContainer","serversData","minioVersionContainer","alignSelf","versionIcon","loaderAlign","advancedContainer","optionsContainer","advancedConfiguration","textDecoration","cursor","advancedOpen","transform","advancedClosed","advancedContent","maxHeight","transitionDuration","overflow","advancedVisible","useState","version","setVersion","totalNodes","setTotalNodes","totalDrives","setTotalDrives","loading","setLoading","setAdvancedOpen","useEffect","api","then","res","totalServers","servers","reduce","prevTotal","currentElement","drives","catch","err","Grid","Loader","style","ArrowForwardIos","message","healthInfo","serverDiagnosticStatus","healthInfoMessageReceived","healthInfoResetMessage","setSnackBarMessage","setServerDiagStat","buttons","gap","localMessage","startDiagnostic","progressResult","diagNew","margin","actionsTray","containerForHeader","spacing","setStartDiagnostic","diagStarted","setDiagStarted","downloadDisabled","setDownloadDisabled","setMessage","setTitle","url","URL","window","location","toString","port","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","interval","onopen","log","send","setInterval","onmessage","m","JSON","parse","data","timestamp","Date","onerror","error","close","clearInterval","onclose","event","code","WSCloseInternalServerErr","WSClosePolicyViolation","WSCloseAbnormalClosure","PageHeader","PageLayout","boxy","Button","type","disabled","filename","text","element","document","createElement","setAttribute","encodeURIComponent","body","appendChild","click","removeChild","download","stringify","HelpBox","WarnIcon","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","naiveFallback","self","Error","module","this","globalThis","Object","defineProperty","prototype","get","configurable","__global__","_globalThis","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","forEach","prop"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5140.92c7c01a.chunk.js b/portal-ui/build/static/js/5140.9827e93f.chunk.js similarity index 97% rename from portal-ui/build/static/js/5140.92c7c01a.chunk.js rename to portal-ui/build/static/js/5140.9827e93f.chunk.js index 6bee97ef5..ab8f8cf2f 100644 --- a/portal-ui/build/static/js/5140.92c7c01a.chunk.js +++ b/portal-ui/build/static/js/5140.9827e93f.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5140],{32291:function(e,n,a){var t=a(72791),r=a(60364),s=a(61889),i=a(11135),o=a(25787),c=a(20890),l=a(13400),d=a(95466),m=a(84683),p=a(3925),u=a(74833),h=a(80184),x={toggleList:p.kQ},f=(0,r.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),x);n.Z=f((0,o.Z)((function(e){return(0,i.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,a=e.label,r=e.actions,i=e.sidebarOpen,o=e.operatorMode,p=e.managerObjects,x=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(t.Fragment,{}):(0,h.jsxs)(s.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(s.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!i&&(0,h.jsx)("div",{className:n.logo,children:o?(0,h.jsx)(d.Z,{}):(0,h.jsx)(m.Z,{})}),(0,h.jsx)(c.Z,{variant:"h4",className:n.labelStyle,children:a})]}),f&&(0,h.jsx)(s.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,h.jsxs)(s.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:n.rightMenu,children:[r&&r,p&&p.length>0&&(0,h.jsx)(l.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){x()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(u.gx,{})})]})]})})))},65140:function(e,n,a){a.r(n);var t=a(70885),r=a(1413),s=a(72791),i=a(11135),o=a(25787),c=a(91523),l=a(64554),d=a(13400),m=a(32291),p=a(23814),u=a(77608),h=a(62666),x=a(28789),f=a(72401),g=a(80184);n.default=(0,o.Z)((function(e){return(0,i.Z)((0,r.Z)({breadcrumLink:{textDecoration:"none",color:"black"},iframeStyle:{border:0,position:"absolute",height:"calc(100vh - 77px)",width:"100%"},divContainer:{position:"absolute",left:0,top:80,height:"calc(100vh - 81px)",width:"100%"},loader:{width:100,margin:"auto",marginTop:80},pageHeader:{borderBottom:"1px solid #dedede"}},(0,p.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,a=e.match,r=(0,s.useState)(!0),i=(0,t.Z)(r,2),o=i[0],p=i[1],j=a.params.tenantName,b=a.params.tenantNamespace,Z=s.useRef(null);return(0,g.jsxs)(s.Fragment,{children:[(0,g.jsx)(l.Z,{className:n.pageHeader,children:(0,g.jsx)(m.Z,{label:(0,g.jsxs)(s.Fragment,{children:[(0,g.jsx)(c.rU,{to:"/tenants",className:n.breadcrumLink,children:"Tenants"})," > ",(0,g.jsx)(c.rU,{to:"/namespaces/".concat(b,"/tenants/").concat(j),className:n.breadcrumLink,children:a.params.tenantName})," > Management"]}),actions:(0,g.jsxs)(s.Fragment,{children:[(0,g.jsx)(d.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){if(null!==Z&&null!==Z.current&&null!==Z.current.contentDocument){var e=Z.current.contentDocument.location.toString(),n="&";if(e.indexOf("?")<0&&(n="?"),e.indexOf("cp=y")<0){var a="".concat(e).concat(n,"cp=y");Z.current.contentDocument.location.replace(a)}else Z.current.contentDocument.location.reload()}},size:"large",children:(0,g.jsx)(x.default,{})}),(0,g.jsx)(d.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h.Z.push("/namespaces/".concat(b,"/tenants/").concat(j))},size:"large",children:(0,g.jsx)(u.Z,{})})]})})}),(0,g.jsxs)("div",{className:n.divContainer,children:[o&&(0,g.jsx)("div",{className:n.loader,children:(0,g.jsx)(f.Z,{})}),(0,g.jsx)("iframe",{ref:Z,className:n.iframeStyle,title:"metrics",src:"/api/hop/".concat(b,"/").concat(j,"/?cp=y"),onLoad:function(e){p(!1)}})]})]})}))},77608:function(e,n,a){var t=a(95318);n.Z=void 0;var r=t(a(45649)),s=a(80184),i=(0,r.default)((0,s.jsx)("path",{d:"M10.09 15.59 11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"ExitToApp");n.Z=i}}]); -//# sourceMappingURL=5140.92c7c01a.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5140],{32291:function(e,n,a){var t=a(72791),r=a(60364),s=a(61889),i=a(11135),o=a(25787),c=a(20890),l=a(13400),d=a(95466),m=a(84683),p=a(3925),u=a(13048),h=a(80184),x={toggleList:p.kQ},f=(0,r.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),x);n.Z=f((0,o.Z)((function(e){return(0,i.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,a=e.label,r=e.actions,i=e.sidebarOpen,o=e.operatorMode,p=e.managerObjects,x=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(t.Fragment,{}):(0,h.jsxs)(s.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(s.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!i&&(0,h.jsx)("div",{className:n.logo,children:o?(0,h.jsx)(d.Z,{}):(0,h.jsx)(m.Z,{})}),(0,h.jsx)(c.Z,{variant:"h4",className:n.labelStyle,children:a})]}),f&&(0,h.jsx)(s.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,h.jsxs)(s.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:n.rightMenu,children:[r&&r,p&&p.length>0&&(0,h.jsx)(l.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){x()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(u.gx,{})})]})]})})))},65140:function(e,n,a){a.r(n);var t=a(70885),r=a(1413),s=a(72791),i=a(11135),o=a(25787),c=a(91523),l=a(64554),d=a(13400),m=a(32291),p=a(23814),u=a(77608),h=a(62666),x=a(28789),f=a(72401),g=a(80184);n.default=(0,o.Z)((function(e){return(0,i.Z)((0,r.Z)({breadcrumLink:{textDecoration:"none",color:"black"},iframeStyle:{border:0,position:"absolute",height:"calc(100vh - 77px)",width:"100%"},divContainer:{position:"absolute",left:0,top:80,height:"calc(100vh - 81px)",width:"100%"},loader:{width:100,margin:"auto",marginTop:80},pageHeader:{borderBottom:"1px solid #dedede"}},(0,p.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,a=e.match,r=(0,s.useState)(!0),i=(0,t.Z)(r,2),o=i[0],p=i[1],j=a.params.tenantName,b=a.params.tenantNamespace,Z=s.useRef(null);return(0,g.jsxs)(s.Fragment,{children:[(0,g.jsx)(l.Z,{className:n.pageHeader,children:(0,g.jsx)(m.Z,{label:(0,g.jsxs)(s.Fragment,{children:[(0,g.jsx)(c.rU,{to:"/tenants",className:n.breadcrumLink,children:"Tenants"})," > ",(0,g.jsx)(c.rU,{to:"/namespaces/".concat(b,"/tenants/").concat(j),className:n.breadcrumLink,children:a.params.tenantName})," > Management"]}),actions:(0,g.jsxs)(s.Fragment,{children:[(0,g.jsx)(d.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){if(null!==Z&&null!==Z.current&&null!==Z.current.contentDocument){var e=Z.current.contentDocument.location.toString(),n="&";if(e.indexOf("?")<0&&(n="?"),e.indexOf("cp=y")<0){var a="".concat(e).concat(n,"cp=y");Z.current.contentDocument.location.replace(a)}else Z.current.contentDocument.location.reload()}},size:"large",children:(0,g.jsx)(x.default,{})}),(0,g.jsx)(d.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h.Z.push("/namespaces/".concat(b,"/tenants/").concat(j))},size:"large",children:(0,g.jsx)(u.Z,{})})]})})}),(0,g.jsxs)("div",{className:n.divContainer,children:[o&&(0,g.jsx)("div",{className:n.loader,children:(0,g.jsx)(f.Z,{})}),(0,g.jsx)("iframe",{ref:Z,className:n.iframeStyle,title:"metrics",src:"/api/hop/".concat(b,"/").concat(j,"/?cp=y"),onLoad:function(e){p(!1)}})]})]})}))},77608:function(e,n,a){var t=a(95318);n.Z=void 0;var r=t(a(45649)),s=a(80184),i=(0,r.default)((0,s.jsx)("path",{d:"M10.09 15.59 11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"ExitToApp");n.Z=i}}]); +//# sourceMappingURL=5140.9827e93f.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5140.92c7c01a.chunk.js.map b/portal-ui/build/static/js/5140.9827e93f.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/5140.92c7c01a.chunk.js.map rename to portal-ui/build/static/js/5140.9827e93f.chunk.js.map index 362fc44b7..87c3488c5 100644 --- a/portal-ui/build/static/js/5140.92c7c01a.chunk.js.map +++ b/portal-ui/build/static/js/5140.9827e93f.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/5140.92c7c01a.chunk.js","mappings":"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","sources":["screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Tenants/TenantDetails/hop/Hop.tsx","../node_modules/@mui/icons-material/ExitToApp.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Link } from \"react-router-dom\";\nimport { Box, IconButton } from \"@mui/material\";\nimport PageHeader from \"../../../Common/PageHeader/PageHeader\";\nimport { containerForHeader } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport ExitToAppIcon from \"@mui/icons-material/ExitToApp\";\nimport history from \"./../../../../../history\";\nimport RefreshIcon from \"../../../../../icons/RefreshIcon\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\ninterface IHopSimple {\n classes: any;\n match: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n iframeStyle: {\n border: 0,\n position: \"absolute\",\n height: \"calc(100vh - 77px)\",\n width: \"100%\",\n },\n divContainer: {\n position: \"absolute\",\n left: 0,\n top: 80,\n height: \"calc(100vh - 81px)\",\n width: \"100%\",\n },\n loader: {\n width: 100,\n margin: \"auto\",\n marginTop: 80,\n },\n\n pageHeader: {\n borderBottom: \"1px solid #dedede\",\n },\n\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst Hop = ({ classes, match }: IHopSimple) => {\n const [loading, setLoading] = useState(true);\n\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n const consoleFrame = React.useRef(null);\n\n return (\n \n \n \n \n Tenants\n \n {` > `}\n \n {match.params[\"tenantName\"]}\n \n {` > Management`}\n \n }\n actions={\n \n {\n if (\n consoleFrame !== null &&\n consoleFrame.current !== null &&\n consoleFrame.current.contentDocument !== null\n ) {\n const loc =\n consoleFrame.current.contentDocument.location.toString();\n\n let add = \"&\";\n\n if (loc.indexOf(\"?\") < 0) {\n add = `?`;\n }\n\n if (loc.indexOf(\"cp=y\") < 0) {\n const next = `${loc}${add}cp=y`;\n consoleFrame.current.contentDocument.location.replace(\n next\n );\n } else {\n consoleFrame.current.contentDocument.location.reload();\n }\n }\n }}\n size=\"large\"\n >\n \n \n {\n history.push(\n `/namespaces/${tenantNamespace}/tenants/${tenantName}`\n );\n }}\n size=\"large\"\n >\n \n \n \n }\n />\n \n
    \n {loading && (\n
    \n \n
    \n )}\n {\n setLoading(false);\n }}\n />\n
    \n
    \n );\n};\n\nexport default withStyles(styles)(Hop);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M10.09 15.59 11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'ExitToApp');\n\nexports.default = _default;"],"names":["mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","withStyles","theme","createStyles","headerContainer","width","minHeight","display","backgroundColor","left","boxShadow","label","justifyContent","alignItems","labelStyle","color","fontSize","fontWeight","marginLeft","marginTop","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","classes","actions","includes","Fragment","container","className","direction","item","xs","sm","md","sx","paddingTop","variant","length","component","onClick","id","size","breadcrumLink","textDecoration","iframeStyle","border","position","height","divContainer","top","loader","margin","pageHeader","borderBottom","containerForHeader","spacing","match","useState","loading","setLoading","tenantName","params","tenantNamespace","consoleFrame","React","to","current","contentDocument","loc","location","toString","add","indexOf","next","replace","reload","history","ref","title","src","onLoad","val","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/5140.9827e93f.chunk.js","mappings":"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","sources":["screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Tenants/TenantDetails/hop/Hop.tsx","../node_modules/@mui/icons-material/ExitToApp.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Link } from \"react-router-dom\";\nimport { Box, IconButton } from \"@mui/material\";\nimport PageHeader from \"../../../Common/PageHeader/PageHeader\";\nimport { containerForHeader } from \"../../../Common/FormComponents/common/styleLibrary\";\nimport ExitToAppIcon from \"@mui/icons-material/ExitToApp\";\nimport history from \"./../../../../../history\";\nimport RefreshIcon from \"../../../../../icons/RefreshIcon\";\nimport Loader from \"../../../Common/Loader/Loader\";\n\ninterface IHopSimple {\n classes: any;\n match: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n iframeStyle: {\n border: 0,\n position: \"absolute\",\n height: \"calc(100vh - 77px)\",\n width: \"100%\",\n },\n divContainer: {\n position: \"absolute\",\n left: 0,\n top: 80,\n height: \"calc(100vh - 81px)\",\n width: \"100%\",\n },\n loader: {\n width: 100,\n margin: \"auto\",\n marginTop: 80,\n },\n\n pageHeader: {\n borderBottom: \"1px solid #dedede\",\n },\n\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst Hop = ({ classes, match }: IHopSimple) => {\n const [loading, setLoading] = useState(true);\n\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n const consoleFrame = React.useRef(null);\n\n return (\n \n \n \n \n Tenants\n \n {` > `}\n \n {match.params[\"tenantName\"]}\n \n {` > Management`}\n \n }\n actions={\n \n {\n if (\n consoleFrame !== null &&\n consoleFrame.current !== null &&\n consoleFrame.current.contentDocument !== null\n ) {\n const loc =\n consoleFrame.current.contentDocument.location.toString();\n\n let add = \"&\";\n\n if (loc.indexOf(\"?\") < 0) {\n add = `?`;\n }\n\n if (loc.indexOf(\"cp=y\") < 0) {\n const next = `${loc}${add}cp=y`;\n consoleFrame.current.contentDocument.location.replace(\n next\n );\n } else {\n consoleFrame.current.contentDocument.location.reload();\n }\n }\n }}\n size=\"large\"\n >\n \n \n {\n history.push(\n `/namespaces/${tenantNamespace}/tenants/${tenantName}`\n );\n }}\n size=\"large\"\n >\n \n \n \n }\n />\n \n
    \n {loading && (\n
    \n \n
    \n )}\n {\n setLoading(false);\n }}\n />\n
    \n
    \n );\n};\n\nexport default withStyles(styles)(Hop);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M10.09 15.59 11.5 17l5-5-5-5-1.41 1.41L12.67 11H3v2h9.67l-2.58 2.59zM19 3H5c-1.11 0-2 .9-2 2v4h2V5h14v14H5v-4H3v4c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'ExitToApp');\n\nexports.default = _default;"],"names":["mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","withStyles","theme","createStyles","headerContainer","width","minHeight","display","backgroundColor","left","boxShadow","label","justifyContent","alignItems","labelStyle","color","fontSize","fontWeight","marginLeft","marginTop","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","classes","actions","includes","Fragment","container","className","direction","item","xs","sm","md","sx","paddingTop","variant","length","component","onClick","id","size","breadcrumLink","textDecoration","iframeStyle","border","position","height","divContainer","top","loader","margin","pageHeader","borderBottom","containerForHeader","spacing","match","useState","loading","setLoading","tenantName","params","tenantNamespace","consoleFrame","React","to","current","contentDocument","loc","location","toString","add","indexOf","next","replace","reload","history","ref","title","src","onLoad","val","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5165.311fbd50.chunk.js b/portal-ui/build/static/js/5165.311fbd50.chunk.js deleted file mode 100644 index b103ad279..000000000 --- a/portal-ui/build/static/js/5165.311fbd50.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5165],{14048:function(e,n,o){var t=o(70885),r=o(1413),i=o(72791),a=o(60364),c=o(36151),l=o(11135),s=o(25787),d=o(61889),u=o(23814),m=o(42649),p=o(81207),f=o(56028),x=o(74833),h=o(92217),Z=o(80184);(0,l.Z)((0,r.Z)((0,r.Z)({},u.ID),u.bK));var v=(0,a.$j)(null,{setModalErrorSnackMessage:m.zb});n.Z=(0,s.Z)((function(e){return(0,l.Z)((0,r.Z)((0,r.Z)((0,r.Z)({codeMirrorContainer:{marginBottom:20,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},u.DF),u.ID),u.bK))}))(v((function(e){var n=e.classes,o=e.open,r=e.selectedAccessKey,a=e.closeModalAndRefresh,l=e.setModalErrorSnackMessage,s=(0,i.useState)(!0),u=(0,t.Z)(s,2),m=u[0],v=u[1],g=(0,i.useState)(""),b=(0,t.Z)(g,2),C=b[0],j=b[1];(0,i.useEffect)((function(){m&&p.Z.invoke("GET","/api/v1/service-accounts/".concat(r,"/policy")).then((function(e){v(!1),j(e)})).catch((function(e){v(!1),l(e)}))}),[m,v,l,r]);return(0,Z.jsx)(f.Z,{title:"Service Account Policy",modalOpen:o,onClose:function(){a()},titleIcon:(0,Z.jsx)(x.QX,{}),children:(0,Z.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){var n;n=C,e.preventDefault(),p.Z.invoke("PUT","/api/v1/service-accounts/".concat(r,"/policy"),{policy:n}).then((function(e){a()})).catch((function(e){l(e)}))},children:(0,Z.jsxs)(d.ZP,{container:!0,children:[(0,Z.jsx)(d.ZP,{item:!0,xs:12,className:n.codeMirrorContainer,children:(0,Z.jsx)(h.Z,{label:"Service Account Policy",value:C,onBeforeChange:function(e,n,o){j(o)},editorHeight:"350px"})}),(0,Z.jsxs)(d.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,Z.jsx)(c.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){a()},disabled:m,children:"Cancel"}),(0,Z.jsx)(c.Z,{type:"submit",variant:"contained",color:"primary",disabled:m,children:"Set"})]})]})})})})))},40603:function(e,n,o){var t=o(1413),r=o(45987),i=(o(72791),o(85531)),a=o(72455),c=o(80184),l=["onClick","text","disabled","tooltip","icon"],s=(0,a.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var o=n.variant,t=n.color,r=e.palette.primary.main;return"primary"===t&&"contained"===o?r=e.palette.primary.contrastText:"primary"===t&&"outlined"===o?r=e.palette.primary.main:"secondary"===t&&(r=e.palette.secondary.main),r}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=s(e),o=e.onClick,a=e.text,d=void 0===a?"":a,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,f=e.icon,x=void 0===f?null:f,h=(0,r.Z)(e,l);return(0,c.jsxs)(i.Z,(0,t.Z)((0,t.Z)({classes:n,tooltip:p||d,variant:"outlined",onClick:o,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},h),{},{children:[(0,c.jsx)("span",{children:d})," ",x]}))}},85531:function(e,n,o){var t=o(1413),r=o(4942),i=o(45987),a=(o(72791),o(11135)),c=o(25787),l=o(13400),s=o(20068),d=o(28182),u=o(80184),m=["classes","children","variant","tooltip"];n.Z=(0,c.Z)((function(e){return(0,a.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,o=e.children,a=e.variant,c=void 0===a?"outlined":a,p=e.tooltip,f=(0,i.Z)(e,m),x=(0,u.jsx)(l.Z,(0,t.Z)((0,t.Z)({},f),{},{className:(0,d.Z)(n.root,(0,r.Z)({},n.contained,"contained"===c)),children:o}));return p&&""!==p?(0,u.jsx)(s.Z,{title:p,children:(0,u.jsx)("span",{children:x})}):x}))},92217:function(e,n,o){var t=o(42982),r=o(70885),i=o(1413),a=o(72791),c=o(61889),l=(o(2574),o(69874)),s=o(9461),d=o(73975),u=o(80745),m=o(30829),p=o(20068),f=o(64554),x=o(11135),h=o(25787),Z=o(84570),v=o(23814),g=o(74833),b=o(40603),C=o(78029),j=o.n(C),k=o(64294),y=o(80184),B={json:d.AV,yaml:function(){return s.i.define(u.r)}},S=k.tk.theme({"&":{backgroundColor:"#FBFAFA"},".cm-content":{caretColor:"#05122B"},"&.cm-focused .cm-cursor":{borderLeftColor:"#05122B"},".cm-gutters":{backgroundColor:"#FBFAFA",color:"#000000",border:"none"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px",color:"#2781B0","& .\u037cc":{color:"#C83B51"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#dde1f1"},".cm-matchingBracket":{backgroundColor:"#05122B",color:"#ffffff"},".cm-selectionMatch":{backgroundColor:"#ebe7f1"},".cm-selectionLayer":{fontWeight:500}," .cm-selectionBackground":{backgroundColor:"#a180c7",color:"#ffffff"}},{dark:!1}),M=k.tk.theme({"&":{backgroundColor:"#282a36",color:"#ffb86c"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px","& .\u037cd, & .\u037cc":{color:"#8e6cef"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#44475a"},".cm-matchingBracket":{backgroundColor:"#842de5",color:"#ff79c6"},".cm-selectionLayer .cm-selectionBackground":{backgroundColor:"green"}},{dark:!0});n.Z=(0,h.Z)((function(e){return(0,x.Z)((0,i.Z)((0,i.Z)({},v.YI),{},{inputLabel:(0,i.Z)((0,i.Z)({},v.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var n=e.value,o=e.label,i=void 0===o?"":o,s=e.tooltip,d=void 0===s?"":s,u=e.mode,x=void 0===u?"json":u,h=e.classes,v=e.onBeforeChange,C=e.readOnly,k=void 0!==C&&C,N=e.editorHeight,E=void 0===N?"250px":N,P=(0,a.useState)(!1),L=(0,r.Z)(P,2),F=L[0],w=L[1],A=[];return B[x]&&(A=[].concat((0,t.Z)(A),[B[x]()])),(0,y.jsxs)(a.Fragment,{children:[(0,y.jsxs)(m.Z,{className:h.inputLabel,children:[(0,y.jsx)("span",{children:i}),""!==d&&(0,y.jsx)("div",{className:h.tooltipContainer,children:(0,y.jsx)(p.Z,{title:d,placement:"top-start",children:(0,y.jsx)("div",{className:h.tooltip,children:(0,y.jsx)(Z.Z,{})})})})]}),(0,y.jsx)(c.ZP,{item:!0,xs:12,children:(0,y.jsx)("br",{})}),(0,y.jsxs)(c.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,y.jsx)(c.ZP,{item:!0,xs:12,children:(0,y.jsx)(l.ZP,{value:n,theme:F?M:S,extensions:A,editable:!k,basicSetup:!0,height:E,onChange:function(e,n){v(null,null,e)}})}),(0,y.jsx)(c.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:F?"#282c34":"#f7f7f7"},children:(0,y.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:[(0,y.jsx)(b.Z,{tooltip:"Change theme",onClick:function(){w(!F)},text:"",icon:(0,y.jsx)(g.EO,{}),color:"primary",variant:"outlined"}),(0,y.jsx)(j(),{text:n,children:(0,y.jsx)(b.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,y.jsx)(g.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},9505:function(e,n,o){var t=o(70885),r=o(72791),i=o(81207);n.Z=function(e,n){var o=(0,r.useState)(!1),a=(0,t.Z)(o,2),c=a[0],l=a[1];return[c,function(o,t,r){l(!0),i.Z.invoke(o,t,r).then((function(n){l(!1),e(n)})).catch((function(e){l(!1),n(e)}))}]}},23508:function(e,n,o){var t=o(1413),r=o(72791),i=o(5574),a=o(65661),c=o(39157),l=o(97123),s=o(36151),d=o(59860),u=o(13400),m=o(29823),p=o(11135),f=o(25787),x=o(23814),h=o(80184);n.Z=(0,f.Z)((function(e){return(0,p.Z)((0,t.Z)({},x.Qw))}))((function(e){var n=e.isOpen,o=void 0!==n&&n,p=e.onClose,f=e.onCancel,x=e.onConfirm,Z=e.classes,v=void 0===Z?{}:Z,g=e.title,b=void 0===g?"":g,C=e.isLoading,j=e.confirmationContent,k=e.cancelText,y=void 0===k?"Cancel":k,B=e.confirmText,S=void 0===B?"Confirm":B,M=e.confirmButtonProps,N=void 0===M?{}:M,E=e.cancelButtonProps,P=void 0===E?{}:E,L=e.titleIcon,F=void 0===L?null:L;return(0,h.jsxs)(i.Z,{open:o,onClose:function(e,n){"backdropClick"!==n&&p()},className:v.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(a.Z,{className:v.title,children:[(0,h.jsxs)("div",{className:v.titleText,children:[F," ",b]}),(0,h.jsx)("div",{className:v.closeContainer,children:(0,h.jsx)(u.Z,{"aria-label":"close",className:v.closeButton,onClick:p,disableRipple:!0,size:"small",children:(0,h.jsx)(m.Z,{})})})]}),(0,h.jsx)(c.Z,{className:v.content,children:j}),(0,h.jsxs)(l.Z,{className:v.actions,children:[(0,h.jsx)(s.Z,(0,t.Z)((0,t.Z)({className:v.cancelButton,onClick:f||p,disabled:C,type:"button"},P),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:y})),(0,h.jsx)(d.Z,(0,t.Z)((0,t.Z)({className:v.confirmButton,type:"button",onClick:x,loading:C,disabled:C,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(r.Fragment,{}),autoFocus:!0,id:"confirm-ok"},N),{},{children:S}))]})]})}))},56028:function(e,n,o){var t=o(70885),r=o(1413),i=o(72791),a=o(60364),c=o(13400),l=o(55646),s=o(5574),d=o(65661),u=o(39157),m=o(11135),p=o(25787),f=o(23814),x=o(42649),h=o(29823),Z=o(28057),v=o(80184),g=(0,a.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});n.Z=(0,p.Z)((function(e){return(0,m.Z)((0,r.Z)((0,r.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(g((function(e){var n=e.onClose,o=e.modalOpen,a=e.title,m=e.children,p=e.classes,f=e.wideLimit,x=void 0===f||f,g=e.modalSnackMessage,b=e.noContentPadding,C=e.setModalSnackMessage,j=e.titleIcon,k=void 0===j?null:j,y=(0,i.useState)(!1),B=(0,t.Z)(y,2),S=B[0],M=B[1];(0,i.useEffect)((function(){C("")}),[C]),(0,i.useEffect)((function(){if(g){if(""===g.message)return void M(!1);"error"!==g.type&&M(!0)}}),[g]);var N=x?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return g&&(E=g.detailedErrorMsg,(""===g.detailedErrorMsg||g.detailedErrorMsg.length<5)&&(E=g.message)),(0,v.jsxs)(s.Z,(0,r.Z)((0,r.Z)({open:o,classes:p},N),{},{scroll:"paper",onClose:function(e,o){"backdropClick"!==o&&n()},className:p.root,children:[(0,v.jsxs)(d.Z,{className:p.title,children:[(0,v.jsxs)("div",{className:p.titleText,children:[k," ",a]}),(0,v.jsx)("div",{className:p.closeContainer,children:(0,v.jsx)(c.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,v.jsx)(h.Z,{})})})]}),(0,v.jsx)(Z.Z,{isModal:!0}),(0,v.jsx)(l.Z,{open:S,className:p.snackBarModal,onClose:function(){M(!1),C("")},message:E,ContentProps:{className:"".concat(p.snackBar," ").concat(g&&"error"===g.type?p.errorSnackBar:"")},autoHideDuration:g&&"error"===g.type?1e4:5e3}),(0,v.jsx)(u.Z,{className:b?"":p.content,children:m})]}))})))},59114:function(e,n,o){var t=o(4942),r=o(1413),i=(o(72791),o(63466)),a=o(74900),c=o(27391),l=o(25787),s=o(11135),d=o(23814),u=o(80184);n.Z=(0,l.Z)((function(e){return(0,s.Z)({searchField:(0,r.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,o=void 0===n?"":n,r=e.classes,l=e.onChange,s=e.adornmentPosition,d=void 0===s?"end":s,m=e.overrideClass,p=e.value,f=(0,t.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(i.Z,{position:d,className:r.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(c.Z,{placeholder:o,className:m||r.searchField,id:"search-resource",label:"",InputProps:f,onChange:function(e){l(e.target.value)},variant:"standard",value:p})}))},18303:function(e,n,o){var t=o(70885),r=(o(72791),o(60364)),i=o(51691),a=o(42649),c=o(9505),l=o(23508),s=o(74833),d=o(80184),u={setErrorSnackMessage:a.Ih},m=(0,r.$j)(null,u);n.Z=m((function(e){var n=e.closeDeleteModalAndRefresh,o=e.deleteOpen,r=e.selectedSAs,a=e.setErrorSnackMessage,u=(0,c.Z)((function(){return n(!0)}),(function(e){return a(e)})),m=(0,t.Z)(u,2),p=m[0],f=m[1];if(!r)return null;return(0,d.jsx)(l.Z,{title:"Delete Service Accounts",confirmText:"Delete",isOpen:o,titleIcon:(0,d.jsx)(s.Nv,{}),isLoading:p,onConfirm:function(){f("DELETE","/api/v1/service-accounts/delete-multi",r)},onClose:function(){return n(!1)},confirmationContent:(0,d.jsxs)(i.Z,{children:["Are you sure you want to delete the selected ",r.length," ","service accounts?"," "]})})}))},21639:function(e,n,o){o.d(n,{LQ:function(){return t},V2:function(){return i},g4:function(){return r}});var t=function(e,n){return e.accessKey>n.accessKey?1:e.accessKeyn.name?1:e.namen?1:e.\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport { ChangeAccessPolicyIcon } from \"../../../icons\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n codeMirrorContainer: {\n marginBottom: 20,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\ncreateStyles({\n ...modalStyleUtils,\n ...spacingUtils,\n});\n\ninterface IServiceAccountPolicyProps {\n classes: any;\n open: boolean;\n selectedAccessKey: string | null;\n closeModalAndRefresh: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst ServiceAccountPolicy = ({\n classes,\n open,\n selectedAccessKey,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n}: IServiceAccountPolicyProps) => {\n const [loading, setLoading] = useState(true);\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/service-accounts/${selectedAccessKey}/policy`)\n .then((res) => {\n setLoading(false);\n setPolicyDefinition(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n }\n }, [loading, setLoading, setModalErrorSnackMessage, selectedAccessKey]);\n\n const setPolicy = (event: React.FormEvent, newPolicy: string) => {\n event.preventDefault();\n api\n .invoke(\"PUT\", `/api/v1/service-accounts/${selectedAccessKey}/policy`, {\n policy: newPolicy,\n })\n .then((res) => {\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n });\n };\n\n return (\n {\n closeModalAndRefresh();\n }}\n titleIcon={}\n >\n ) => {\n setPolicy(e, policyDefinition);\n }}\n >\n \n \n {\n setPolicyDefinition(value);\n }}\n editorHeight={\"350px\"}\n />\n \n \n {\n closeModalAndRefresh();\n }}\n disabled={loading}\n >\n Cancel\n \n \n Set\n \n \n \n \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ServiceAccountPolicy));\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 BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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 Grid from \"@mui/material/Grid\";\nimport \"codemirror/theme/dracula.css\";\n/** Code mirror */\nimport CodeMirror, { Extension } from \"@uiw/react-codemirror\";\nimport { StreamLanguage } from \"@codemirror/stream-parser\";\nimport { json } from \"@codemirror/lang-json\";\nimport { yaml } from \"@codemirror/legacy-modes/mode/yaml\";\n\n/** Code mirror */\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon, EditorThemeSwitchIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { EditorView } from \"@codemirror/view\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst langHighlight: Record = {\n json,\n yaml: () => StreamLanguage.define(yaml),\n};\n\nconst lightTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#FBFAFA\",\n },\n \".cm-content\": {\n caretColor: \"#05122B\",\n },\n \"&.cm-focused .cm-cursor\": {\n borderLeftColor: \"#05122B\",\n },\n \".cm-gutters\": {\n backgroundColor: \"#FBFAFA\",\n color: \"#000000\",\n border: \"none\",\n },\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n color: \"#2781B0\",\n \"& .ͼc\": {\n color: \"#C83B51\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#dde1f1\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#05122B\",\n color: \"#ffffff\",\n },\n \".cm-selectionMatch\": {\n backgroundColor: \"#ebe7f1\",\n },\n \".cm-selectionLayer\": {\n fontWeight: 500,\n },\n \" .cm-selectionBackground\": {\n backgroundColor: \"#a180c7\",\n color: \"#ffffff\",\n },\n },\n {\n dark: false,\n }\n);\n\nconst darkTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#282a36\",\n color: \"#ffb86c\",\n },\n\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n \"& .ͼd, & .ͼc\": {\n color: \"#8e6cef\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#44475a\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#842de5\",\n color: \"#ff79c6\",\n },\n \".cm-selectionLayer .cm-selectionBackground\": {\n backgroundColor: \"green\",\n },\n },\n {\n dark: true,\n }\n);\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n const [isDarkTheme, setIsDarkTheme] = useState(false);\n\n //based on the language mode pick . default to json\n let extensionList: Extension[] = [];\n if (langHighlight[mode]) {\n extensionList = [...extensionList, langHighlight[mode]()];\n }\n\n return (\n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n \n
    \n
    \n\n \n \n {\n onBeforeChange(null, null, v);\n }}\n />\n \n \n \n {\n setIsDarkTheme(!isDarkTheme);\n }}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n {}}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n
    \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport useApi from \"../../../screens/Console/Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../../screens/Console/Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\ninterface IDeleteMultiSAsProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedSAs: string[];\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\nconst DeleteMultipleSAs = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedSAs,\n setErrorSnackMessage,\n}: IDeleteMultiSAsProps) => {\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n if (!selectedSAs) {\n return null;\n }\n const onConfirmDelete = () => {\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/service-accounts/delete-multi`,\n selectedSAs\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 {selectedSAs.length}{\" \"}\n service accounts?{\" \"}\n \n }\n />\n );\n};\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteMultipleSAs);\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\ninterface userInterface {\n accessKey: string;\n}\n\ninterface policyInterface {\n name: string;\n}\n\nexport const usersSort = (a: userInterface, b: userInterface) => {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: policyInterface, b: policyInterface) => {\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","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["createStyles","modalStyleUtils","spacingUtils","connector","connect","setModalErrorSnackMessage","withStyles","theme","codeMirrorContainer","marginBottom","display","formFieldStyles","classes","open","selectedAccessKey","closeModalAndRefresh","useState","loading","setLoading","policyDefinition","setPolicyDefinition","useEffect","api","then","res","catch","err","title","modalOpen","onClose","titleIcon","noValidate","autoComplete","onSubmit","e","newPolicy","preventDefault","policy","container","item","xs","className","label","value","onBeforeChange","editor","data","editorHeight","modalButtonBar","type","variant","color","onClick","disabled","useStyles","makeStyles","root","padding","props","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","width","marginLeft","text","tooltip","icon","restProps","size","sx","border","fontSize","borderWidth","borderStyle","borderRadius","backgroundColor","opacity","contained","background","dark","light","children","rest","button","clsx","langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","caretColor","borderLeftColor","borderRight","fontWeight","darkTheme","fieldBasic","inputLabel","mode","readOnly","isDarkTheme","setIsDarkTheme","extensionList","tooltipContainer","placement","extensions","editable","basicSetup","height","onChange","v","vu","borderTop","alignItems","paddingRight","justifyContent","onSuccess","onError","isLoading","setIsLoading","method","url","deleteDialogStyles","isOpen","onCancel","onConfirm","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","event","reason","titleText","closeContainer","closeButton","disableRipple","content","actions","cancelButton","id","confirmButton","loadingPosition","startIcon","autoFocus","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","paddingBottom","customDialogSize","maxWidth","snackBarCommon","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","searchField","adornment","placeholder","adornmentPosition","overrideClass","inputProps","disableUnderline","position","InputProps","target","mapDispatchToProps","setErrorSnackMessage","closeDeleteModalAndRefresh","deleteOpen","selectedSAs","useApi","deleteLoading","invokeDeleteApi","usersSort","a","b","accessKey","policySort","name","stringSort","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5165.d8aefc2f.chunk.js b/portal-ui/build/static/js/5165.d8aefc2f.chunk.js new file mode 100644 index 000000000..df5de1db4 --- /dev/null +++ b/portal-ui/build/static/js/5165.d8aefc2f.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5165],{14048:function(e,n,o){var t=o(70885),r=o(1413),i=o(72791),a=o(60364),c=o(36151),l=o(11135),s=o(25787),d=o(61889),u=o(23814),m=o(42649),p=o(81207),f=o(56028),x=o(13048),h=o(92217),Z=o(80184);(0,l.Z)((0,r.Z)((0,r.Z)({},u.ID),u.bK));var v=(0,a.$j)(null,{setModalErrorSnackMessage:m.zb});n.Z=(0,s.Z)((function(e){return(0,l.Z)((0,r.Z)((0,r.Z)((0,r.Z)({codeMirrorContainer:{marginBottom:20,"& label":{marginBottom:".5rem"},"& label + div":{display:"none"}}},u.DF),u.ID),u.bK))}))(v((function(e){var n=e.classes,o=e.open,r=e.selectedAccessKey,a=e.closeModalAndRefresh,l=e.setModalErrorSnackMessage,s=(0,i.useState)(!0),u=(0,t.Z)(s,2),m=u[0],v=u[1],g=(0,i.useState)(""),b=(0,t.Z)(g,2),C=b[0],j=b[1];(0,i.useEffect)((function(){m&&p.Z.invoke("GET","/api/v1/service-accounts/".concat(r,"/policy")).then((function(e){v(!1),j(e)})).catch((function(e){v(!1),l(e)}))}),[m,v,l,r]);return(0,Z.jsx)(f.Z,{title:"Service Account Policy",modalOpen:o,onClose:function(){a()},titleIcon:(0,Z.jsx)(x.QX,{}),children:(0,Z.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){var n;n=C,e.preventDefault(),p.Z.invoke("PUT","/api/v1/service-accounts/".concat(r,"/policy"),{policy:n}).then((function(e){a()})).catch((function(e){l(e)}))},children:(0,Z.jsxs)(d.ZP,{container:!0,children:[(0,Z.jsx)(d.ZP,{item:!0,xs:12,className:n.codeMirrorContainer,children:(0,Z.jsx)(h.Z,{label:"Service Account Policy",value:C,onBeforeChange:function(e,n,o){j(o)},editorHeight:"350px"})}),(0,Z.jsxs)(d.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,Z.jsx)(c.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){a()},disabled:m,children:"Cancel"}),(0,Z.jsx)(c.Z,{type:"submit",variant:"contained",color:"primary",disabled:m,children:"Set"})]})]})})})})))},40603:function(e,n,o){var t=o(1413),r=o(45987),i=(o(72791),o(85531)),a=o(72455),c=o(80184),l=["onClick","text","disabled","tooltip","icon","className"],s=(0,a.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var o=n.variant,t=n.color,r=e.palette.primary.main;return"primary"===t&&"contained"===o?r=e.palette.primary.contrastText:"primary"===t&&"outlined"===o?r=e.palette.primary.main:"secondary"===t&&(r=e.palette.secondary.main),r}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=s(e),o=e.onClick,a=e.text,d=void 0===a?"":a,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,f=e.icon,x=void 0===f?null:f,h=e.className,Z=void 0===h?"":h,v=(0,r.Z)(e,l);return(0,c.jsxs)(i.Z,(0,t.Z)((0,t.Z)({className:Z,classes:n,tooltip:p||d,variant:"outlined",onClick:o,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},v),{},{children:[(0,c.jsx)("span",{children:d})," ",x]}))}},85531:function(e,n,o){var t=o(1413),r=o(4942),i=o(45987),a=(o(72791),o(11135)),c=o(25787),l=o(13400),s=o(20068),d=o(28182),u=o(80184),m=["classes","children","variant","tooltip"];n.Z=(0,c.Z)((function(e){return(0,a.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,o=e.children,a=e.variant,c=void 0===a?"outlined":a,p=e.tooltip,f=(0,i.Z)(e,m),x=(0,u.jsx)(l.Z,(0,t.Z)((0,t.Z)({},f),{},{className:(0,d.Z)(n.root,(0,r.Z)({},n.contained,"contained"===c)),children:o}));return p&&""!==p?(0,u.jsx)(s.Z,{title:p,children:(0,u.jsx)("span",{children:x})}):x}))},92217:function(e,n,o){var t=o(42982),r=o(70885),i=o(1413),a=o(72791),c=o(61889),l=(o(2574),o(69874)),s=o(9461),d=o(73975),u=o(80745),m=o(30829),p=o(20068),f=o(64554),x=o(11135),h=o(25787),Z=o(84570),v=o(23814),g=o(13048),b=o(40603),C=o(78029),j=o.n(C),k=o(64294),y=o(80184),B={json:d.AV,yaml:function(){return s.i.define(u.r)}},N=k.tk.theme({"&":{backgroundColor:"#FBFAFA"},".cm-content":{caretColor:"#05122B"},"&.cm-focused .cm-cursor":{borderLeftColor:"#05122B"},".cm-gutters":{backgroundColor:"#FBFAFA",color:"#000000",border:"none"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px",color:"#2781B0","& .\u037cc":{color:"#C83B51"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#dde1f1"},".cm-matchingBracket":{backgroundColor:"#05122B",color:"#ffffff"},".cm-selectionMatch":{backgroundColor:"#ebe7f1"},".cm-selectionLayer":{fontWeight:500}," .cm-selectionBackground":{backgroundColor:"#a180c7",color:"#ffffff"}},{dark:!1}),S=k.tk.theme({"&":{backgroundColor:"#282a36",color:"#ffb86c"},".cm-gutter.cm-foldGutter":{borderRight:"1px solid #eaeaea"},".cm-gutterElement":{fontSize:"13px"},".cm-line":{fontSize:"13px","& .\u037cd, & .\u037cc":{color:"#8e6cef"}},"& .\u037cb":{color:"#2781B0"},".cm-activeLine":{backgroundColor:"#44475a"},".cm-matchingBracket":{backgroundColor:"#842de5",color:"#ff79c6"},".cm-selectionLayer .cm-selectionBackground":{backgroundColor:"green"}},{dark:!0});n.Z=(0,h.Z)((function(e){return(0,x.Z)((0,i.Z)((0,i.Z)({},v.YI),{},{inputLabel:(0,i.Z)((0,i.Z)({},v.YI.inputLabel),{},{fontWeight:"normal"})}))}))((function(e){var n=e.value,o=e.label,i=void 0===o?"":o,s=e.tooltip,d=void 0===s?"":s,u=e.mode,x=void 0===u?"json":u,h=e.classes,v=e.onBeforeChange,C=e.readOnly,k=void 0!==C&&C,M=e.editorHeight,E=void 0===M?"250px":M,P=(0,a.useState)(!1),L=(0,r.Z)(P,2),F=L[0],w=L[1],A=[];return B[x]&&(A=[].concat((0,t.Z)(A),[B[x]()])),(0,y.jsxs)(a.Fragment,{children:[(0,y.jsxs)(m.Z,{className:h.inputLabel,children:[(0,y.jsx)("span",{children:i}),""!==d&&(0,y.jsx)("div",{className:h.tooltipContainer,children:(0,y.jsx)(p.Z,{title:d,placement:"top-start",children:(0,y.jsx)("div",{className:h.tooltip,children:(0,y.jsx)(Z.Z,{})})})})]}),(0,y.jsx)(c.ZP,{item:!0,xs:12,children:(0,y.jsx)("br",{})}),(0,y.jsxs)(c.ZP,{item:!0,xs:12,sx:{border:"1px solid #eaeaea"},children:[(0,y.jsx)(c.ZP,{item:!0,xs:12,children:(0,y.jsx)(l.ZP,{value:n,theme:F?S:N,extensions:A,editable:!k,basicSetup:!0,height:E,onChange:function(e,n){v(null,null,e)}})}),(0,y.jsx)(c.ZP,{item:!0,xs:12,sx:{borderTop:"1px solid #eaeaea",background:F?"#282c34":"#f7f7f7"},children:(0,y.jsxs)(f.Z,{sx:{display:"flex",alignItems:"center",padding:"2px",paddingRight:"5px",justifyContent:"flex-end","& button":{height:"26px",width:"26px",padding:"2px"," .min-icon":{marginLeft:"0"}}},children:[(0,y.jsx)(b.Z,{tooltip:"Change theme",onClick:function(){w(!F)},text:"",icon:(0,y.jsx)(g.EO,{}),color:"primary",variant:"outlined"}),(0,y.jsx)(j(),{text:n,children:(0,y.jsx)(b.Z,{tooltip:"Copy to Clipboard",onClick:function(){},text:"",icon:(0,y.jsx)(g.TI,{}),color:"primary",variant:"outlined"})})]})})]})]})}))},9505:function(e,n,o){var t=o(70885),r=o(72791),i=o(81207);n.Z=function(e,n){var o=(0,r.useState)(!1),a=(0,t.Z)(o,2),c=a[0],l=a[1];return[c,function(o,t,r){l(!0),i.Z.invoke(o,t,r).then((function(n){l(!1),e(n)})).catch((function(e){l(!1),n(e)}))}]}},23508:function(e,n,o){var t=o(1413),r=o(72791),i=o(5574),a=o(65661),c=o(39157),l=o(97123),s=o(36151),d=o(59860),u=o(13400),m=o(29823),p=o(11135),f=o(25787),x=o(23814),h=o(80184);n.Z=(0,f.Z)((function(e){return(0,p.Z)((0,t.Z)({},x.Qw))}))((function(e){var n=e.isOpen,o=void 0!==n&&n,p=e.onClose,f=e.onCancel,x=e.onConfirm,Z=e.classes,v=void 0===Z?{}:Z,g=e.title,b=void 0===g?"":g,C=e.isLoading,j=e.confirmationContent,k=e.cancelText,y=void 0===k?"Cancel":k,B=e.confirmText,N=void 0===B?"Confirm":B,S=e.confirmButtonProps,M=void 0===S?{}:S,E=e.cancelButtonProps,P=void 0===E?{}:E,L=e.titleIcon,F=void 0===L?null:L;return(0,h.jsxs)(i.Z,{open:o,onClose:function(e,n){"backdropClick"!==n&&p()},className:v.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(a.Z,{className:v.title,children:[(0,h.jsxs)("div",{className:v.titleText,children:[F," ",b]}),(0,h.jsx)("div",{className:v.closeContainer,children:(0,h.jsx)(u.Z,{"aria-label":"close",className:v.closeButton,onClick:p,disableRipple:!0,size:"small",children:(0,h.jsx)(m.Z,{})})})]}),(0,h.jsx)(c.Z,{className:v.content,children:j}),(0,h.jsxs)(l.Z,{className:v.actions,children:[(0,h.jsx)(s.Z,(0,t.Z)((0,t.Z)({className:v.cancelButton,onClick:f||p,disabled:C,type:"button"},P),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:y})),(0,h.jsx)(d.Z,(0,t.Z)((0,t.Z)({className:v.confirmButton,type:"button",onClick:x,loading:C,disabled:C,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(r.Fragment,{}),autoFocus:!0,id:"confirm-ok"},M),{},{children:N}))]})]})}))},56028:function(e,n,o){var t=o(70885),r=o(1413),i=o(72791),a=o(60364),c=o(13400),l=o(55646),s=o(5574),d=o(65661),u=o(39157),m=o(11135),p=o(25787),f=o(23814),x=o(42649),h=o(29823),Z=o(28057),v=o(80184),g=(0,a.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});n.Z=(0,p.Z)((function(e){return(0,m.Z)((0,r.Z)((0,r.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(g((function(e){var n=e.onClose,o=e.modalOpen,a=e.title,m=e.children,p=e.classes,f=e.wideLimit,x=void 0===f||f,g=e.modalSnackMessage,b=e.noContentPadding,C=e.setModalSnackMessage,j=e.titleIcon,k=void 0===j?null:j,y=(0,i.useState)(!1),B=(0,t.Z)(y,2),N=B[0],S=B[1];(0,i.useEffect)((function(){C("")}),[C]),(0,i.useEffect)((function(){if(g){if(""===g.message)return void S(!1);"error"!==g.type&&S(!0)}}),[g]);var M=x?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},E="";return g&&(E=g.detailedErrorMsg,(""===g.detailedErrorMsg||g.detailedErrorMsg.length<5)&&(E=g.message)),(0,v.jsxs)(s.Z,(0,r.Z)((0,r.Z)({open:o,classes:p},M),{},{scroll:"paper",onClose:function(e,o){"backdropClick"!==o&&n()},className:p.root,children:[(0,v.jsxs)(d.Z,{className:p.title,children:[(0,v.jsxs)("div",{className:p.titleText,children:[k," ",a]}),(0,v.jsx)("div",{className:p.closeContainer,children:(0,v.jsx)(c.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,v.jsx)(h.Z,{})})})]}),(0,v.jsx)(Z.Z,{isModal:!0}),(0,v.jsx)(l.Z,{open:N,className:p.snackBarModal,onClose:function(){S(!1),C("")},message:E,ContentProps:{className:"".concat(p.snackBar," ").concat(g&&"error"===g.type?p.errorSnackBar:"")},autoHideDuration:g&&"error"===g.type?1e4:5e3}),(0,v.jsx)(u.Z,{className:b?"":p.content,children:m})]}))})))},59114:function(e,n,o){var t=o(4942),r=o(1413),i=(o(72791),o(63466)),a=o(74900),c=o(27391),l=o(25787),s=o(11135),d=o(23814),u=o(80184);n.Z=(0,l.Z)((function(e){return(0,s.Z)({searchField:(0,r.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,o=void 0===n?"":n,r=e.classes,l=e.onChange,s=e.adornmentPosition,d=void 0===s?"end":s,m=e.overrideClass,p=e.value,f=(0,t.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(i.Z,{position:d,className:r.adornment,children:(0,u.jsx)(a.Z,{})}));return(0,u.jsx)(c.Z,{placeholder:o,className:m||r.searchField,id:"search-resource",label:"",InputProps:f,onChange:function(e){l(e.target.value)},variant:"standard",value:p})}))},18303:function(e,n,o){var t=o(70885),r=(o(72791),o(60364)),i=o(51691),a=o(42649),c=o(9505),l=o(23508),s=o(13048),d=o(80184),u={setErrorSnackMessage:a.Ih},m=(0,r.$j)(null,u);n.Z=m((function(e){var n=e.closeDeleteModalAndRefresh,o=e.deleteOpen,r=e.selectedSAs,a=e.setErrorSnackMessage,u=(0,c.Z)((function(){return n(!0)}),(function(e){return a(e)})),m=(0,t.Z)(u,2),p=m[0],f=m[1];if(!r)return null;return(0,d.jsx)(l.Z,{title:"Delete Service Accounts",confirmText:"Delete",isOpen:o,titleIcon:(0,d.jsx)(s.Nv,{}),isLoading:p,onConfirm:function(){f("DELETE","/api/v1/service-accounts/delete-multi",r)},onClose:function(){return n(!1)},confirmationContent:(0,d.jsxs)(i.Z,{children:["Are you sure you want to delete the selected ",r.length," ","service accounts?"," "]})})}))},21639:function(e,n,o){o.d(n,{LQ:function(){return t},V2:function(){return i},g4:function(){return r}});var t=function(e,n){return e.accessKey>n.accessKey?1:e.accessKeyn.name?1:e.namen?1:e.\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Button } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport { ChangeAccessPolicyIcon } from \"../../../icons\";\nimport CodeMirrorWrapper from \"../Common/FormComponents/CodeMirrorWrapper/CodeMirrorWrapper\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n codeMirrorContainer: {\n marginBottom: 20,\n \"& label\": {\n marginBottom: \".5rem\",\n },\n \"& label + div\": {\n display: \"none\",\n },\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\ncreateStyles({\n ...modalStyleUtils,\n ...spacingUtils,\n});\n\ninterface IServiceAccountPolicyProps {\n classes: any;\n open: boolean;\n selectedAccessKey: string | null;\n closeModalAndRefresh: () => void;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst ServiceAccountPolicy = ({\n classes,\n open,\n selectedAccessKey,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n}: IServiceAccountPolicyProps) => {\n const [loading, setLoading] = useState(true);\n const [policyDefinition, setPolicyDefinition] = useState(\"\");\n useEffect(() => {\n if (loading) {\n api\n .invoke(\"GET\", `/api/v1/service-accounts/${selectedAccessKey}/policy`)\n .then((res) => {\n setLoading(false);\n setPolicyDefinition(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setModalErrorSnackMessage(err);\n });\n }\n }, [loading, setLoading, setModalErrorSnackMessage, selectedAccessKey]);\n\n const setPolicy = (event: React.FormEvent, newPolicy: string) => {\n event.preventDefault();\n api\n .invoke(\"PUT\", `/api/v1/service-accounts/${selectedAccessKey}/policy`, {\n policy: newPolicy,\n })\n .then((res) => {\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n });\n };\n\n return (\n {\n closeModalAndRefresh();\n }}\n titleIcon={}\n >\n ) => {\n setPolicy(e, policyDefinition);\n }}\n >\n \n \n {\n setPolicyDefinition(value);\n }}\n editorHeight={\"350px\"}\n />\n \n \n {\n closeModalAndRefresh();\n }}\n disabled={loading}\n >\n Cancel\n \n \n Set\n \n \n \n \n \n );\n};\n\nconst connector = connect(null, {\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ServiceAccountPolicy));\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 BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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 Grid from \"@mui/material/Grid\";\nimport \"codemirror/theme/dracula.css\";\n/** Code mirror */\nimport CodeMirror, { Extension } from \"@uiw/react-codemirror\";\nimport { StreamLanguage } from \"@codemirror/stream-parser\";\nimport { json } from \"@codemirror/lang-json\";\nimport { yaml } from \"@codemirror/legacy-modes/mode/yaml\";\n\n/** Code mirror */\nimport { Box, InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport { fieldBasic } from \"../common/styleLibrary\";\nimport { CopyIcon, EditorThemeSwitchIcon } from \"../../../../../icons\";\nimport RBIconButton from \"../../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { EditorView } from \"@codemirror/view\";\n\ninterface ICodeWrapper {\n value: string;\n label?: string;\n mode?: string;\n tooltip?: string;\n classes: any;\n onChange?: (editor: any, data: any, value: string) => any;\n onBeforeChange: (editor: any, data: any, value: string) => any;\n readOnly?: boolean;\n editorHeight?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n });\n\nconst langHighlight: Record = {\n json,\n yaml: () => StreamLanguage.define(yaml),\n};\n\nconst lightTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#FBFAFA\",\n },\n \".cm-content\": {\n caretColor: \"#05122B\",\n },\n \"&.cm-focused .cm-cursor\": {\n borderLeftColor: \"#05122B\",\n },\n \".cm-gutters\": {\n backgroundColor: \"#FBFAFA\",\n color: \"#000000\",\n border: \"none\",\n },\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n color: \"#2781B0\",\n \"& .ͼc\": {\n color: \"#C83B51\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#dde1f1\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#05122B\",\n color: \"#ffffff\",\n },\n \".cm-selectionMatch\": {\n backgroundColor: \"#ebe7f1\",\n },\n \".cm-selectionLayer\": {\n fontWeight: 500,\n },\n \" .cm-selectionBackground\": {\n backgroundColor: \"#a180c7\",\n color: \"#ffffff\",\n },\n },\n {\n dark: false,\n }\n);\n\nconst darkTheme = EditorView.theme(\n {\n \"&\": {\n backgroundColor: \"#282a36\",\n color: \"#ffb86c\",\n },\n\n \".cm-gutter.cm-foldGutter\": {\n borderRight: \"1px solid #eaeaea\",\n },\n \".cm-gutterElement\": {\n fontSize: \"13px\",\n },\n \".cm-line\": {\n fontSize: \"13px\",\n \"& .ͼd, & .ͼc\": {\n color: \"#8e6cef\",\n },\n },\n \"& .ͼb\": {\n color: \"#2781B0\",\n },\n \".cm-activeLine\": {\n backgroundColor: \"#44475a\",\n },\n \".cm-matchingBracket\": {\n backgroundColor: \"#842de5\",\n color: \"#ff79c6\",\n },\n \".cm-selectionLayer .cm-selectionBackground\": {\n backgroundColor: \"green\",\n },\n },\n {\n dark: true,\n }\n);\n\nconst CodeMirrorWrapper = ({\n value,\n label = \"\",\n tooltip = \"\",\n mode = \"json\",\n classes,\n onBeforeChange,\n readOnly = false,\n editorHeight = \"250px\",\n}: ICodeWrapper) => {\n const [isDarkTheme, setIsDarkTheme] = useState(false);\n\n //based on the language mode pick . default to json\n let extensionList: Extension[] = [];\n if (langHighlight[mode]) {\n extensionList = [...extensionList, langHighlight[mode]()];\n }\n\n return (\n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n \n
    \n
    \n\n \n \n {\n onBeforeChange(null, null, v);\n }}\n />\n \n \n \n {\n setIsDarkTheme(!isDarkTheme);\n }}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n {}}\n text={\"\"}\n icon={}\n color={\"primary\"}\n variant={\"outlined\"}\n />\n \n \n \n \n
    \n );\n};\n\nexport default withStyles(styles)(CodeMirrorWrapper);\n","import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport useApi from \"../../../screens/Console/Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../../screens/Console/Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../icons\";\ninterface IDeleteMultiSAsProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedSAs: string[];\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\nconst DeleteMultipleSAs = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedSAs,\n setErrorSnackMessage,\n}: IDeleteMultiSAsProps) => {\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n if (!selectedSAs) {\n return null;\n }\n const onConfirmDelete = () => {\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/service-accounts/delete-multi`,\n selectedSAs\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 {selectedSAs.length}{\" \"}\n service accounts?{\" \"}\n \n }\n />\n );\n};\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteMultipleSAs);\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\ninterface userInterface {\n accessKey: string;\n}\n\ninterface policyInterface {\n name: string;\n}\n\nexport const usersSort = (a: userInterface, b: userInterface) => {\n if (a.accessKey > b.accessKey) {\n return 1;\n }\n if (a.accessKey < b.accessKey) {\n return -1;\n }\n // a must be equal to b\n return 0;\n};\n\nexport const policySort = (a: policyInterface, b: policyInterface) => {\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","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["createStyles","modalStyleUtils","spacingUtils","connector","connect","setModalErrorSnackMessage","withStyles","theme","codeMirrorContainer","marginBottom","display","formFieldStyles","classes","open","selectedAccessKey","closeModalAndRefresh","useState","loading","setLoading","policyDefinition","setPolicyDefinition","useEffect","api","then","res","catch","err","title","modalOpen","onClose","titleIcon","noValidate","autoComplete","onSubmit","e","newPolicy","preventDefault","policy","container","item","xs","className","label","value","onBeforeChange","editor","data","editorHeight","modalButtonBar","type","variant","color","onClick","disabled","useStyles","makeStyles","root","padding","props","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","width","marginLeft","text","tooltip","icon","restProps","size","sx","border","fontSize","borderWidth","borderStyle","borderRadius","backgroundColor","opacity","contained","background","dark","light","children","rest","button","clsx","langHighlight","json","yaml","StreamLanguage","lightTheme","EditorView","caretColor","borderLeftColor","borderRight","fontWeight","darkTheme","fieldBasic","inputLabel","mode","readOnly","isDarkTheme","setIsDarkTheme","extensionList","tooltipContainer","placement","extensions","editable","basicSetup","height","onChange","v","vu","borderTop","alignItems","paddingRight","justifyContent","onSuccess","onError","isLoading","setIsLoading","method","url","deleteDialogStyles","isOpen","onCancel","onConfirm","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","event","reason","titleText","closeContainer","closeButton","disableRipple","content","actions","cancelButton","id","confirmButton","loadingPosition","startIcon","autoFocus","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","paddingBottom","customDialogSize","maxWidth","snackBarCommon","wideLimit","noContentPadding","openSnackbar","setOpenSnackbar","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","searchField","adornment","placeholder","adornmentPosition","overrideClass","inputProps","disableUnderline","position","InputProps","target","mapDispatchToProps","setErrorSnackMessage","closeDeleteModalAndRefresh","deleteOpen","selectedSAs","useApi","deleteLoading","invokeDeleteApi","usersSort","a","b","accessKey","policySort","name","stringSort","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5588.0717939d.chunk.js b/portal-ui/build/static/js/5588.e74088bb.chunk.js similarity index 98% rename from portal-ui/build/static/js/5588.0717939d.chunk.js rename to portal-ui/build/static/js/5588.e74088bb.chunk.js index 6cb373543..c8616fbb2 100644 --- a/portal-ui/build/static/js/5588.0717939d.chunk.js +++ b/portal-ui/build/static/js/5588.e74088bb.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5588],{84669:function(e,t,n){n(72791);var i=n(91523),a=n(11135),r=n(25787),o=n(74833),c=n(64554),l=n(80184);t.Z=(0,r.Z)((function(e){return(0,a.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var t=e.to,n=e.label,a=e.classes,r=e.className,s=e.executeOnClick;return(0,l.jsx)(c.Z,{sx:{display:"flex",alignItems:"center"},children:(0,l.jsx)(i.rU,{to:t,className:"".concat(a.link," ").concat(r||""),onClick:function(){s&&s()},children:(0,l.jsxs)("div",{className:a.iconBox,children:[(0,l.jsx)("div",{className:a.icon,children:(0,l.jsx)(o.xN,{})}),(0,l.jsx)("div",{className:a.label,children:n})]})})})}))},45588:function(e,t,n){n.r(t),n.d(t,{default:function(){return M}});var i=n(70885),a=n(1413),r=n(72791),o=n(61889),c=n(36151),l=n(40986),s=n(11135),u=n(25787),d=n(23814),m=n(81207),b=n(21435),f=n(83679),h=n(45248),x=n(62666),p=n(60364),g=n(42209);function k(e,t){return e===t}function j(e){return"function"===typeof e?function(){return e}:e}function v(e,t,n){var i=n&&n.equalityFn||k,a=function(e){var t=(0,r.useState)(j(e)),n=t[0],i=t[1];return[n,(0,r.useCallback)((function(e){return i(j(e))}),[])]}(e),o=a[0],c=a[1],l=function(e,t,n){var i=this,a=(0,r.useRef)(null),o=(0,r.useRef)(0),c=(0,r.useRef)(null),l=(0,r.useRef)([]),s=(0,r.useRef)(),u=(0,r.useRef)(),d=(0,r.useRef)(e),m=(0,r.useRef)(!0);d.current=e;var b=!t&&0!==t&&"undefined"!==typeof window;if("function"!==typeof e)throw new TypeError("Expected a function");t=+t||0;var f=!!(n=n||{}).leading,h=!("trailing"in n)||!!n.trailing,x="maxWait"in n,p=x?Math.max(+n.maxWait||0,t):null;(0,r.useEffect)((function(){return m.current=!0,function(){m.current=!1}}),[]);var g=(0,r.useMemo)((function(){var e=function(e){var t=l.current,n=s.current;return l.current=s.current=null,o.current=e,u.current=d.current.apply(n,t)},n=function(e,t){b&&cancelAnimationFrame(c.current),c.current=b?requestAnimationFrame(e):setTimeout(e,t)},r=function(e){if(!m.current)return!1;var n=e-a.current,i=e-o.current;return!a.current||n>=t||n<0||x&&i>=p},g=function(t){return c.current=null,h&&l.current?e(t):(l.current=s.current=null,u.current)},k=function e(){var i=Date.now();if(r(i))return g(i);if(m.current){var c=i-a.current,l=i-o.current,s=t-c,u=x?Math.min(s,p-l):s;n(e,u)}},j=function(){for(var d=[],b=0;b0&&(0,f.jsx)(s.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,f.jsx)(b.gx,{})})]})]})})))}}]); -//# sourceMappingURL=5588.0717939d.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5588],{84669:function(e,t,n){n(72791);var i=n(91523),a=n(11135),r=n(25787),o=n(13048),c=n(64554),l=n(80184);t.Z=(0,r.Z)((function(e){return(0,a.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var t=e.to,n=e.label,a=e.classes,r=e.className,s=e.executeOnClick;return(0,l.jsx)(c.Z,{sx:{display:"flex",alignItems:"center"},children:(0,l.jsx)(i.rU,{to:t,className:"".concat(a.link," ").concat(r||""),onClick:function(){s&&s()},children:(0,l.jsxs)("div",{className:a.iconBox,children:[(0,l.jsx)("div",{className:a.icon,children:(0,l.jsx)(o.xN,{})}),(0,l.jsx)("div",{className:a.label,children:n})]})})})}))},45588:function(e,t,n){n.r(t),n.d(t,{default:function(){return M}});var i=n(70885),a=n(1413),r=n(72791),o=n(61889),c=n(36151),l=n(40986),s=n(11135),u=n(25787),d=n(23814),m=n(81207),b=n(21435),f=n(83679),h=n(45248),x=n(62666),p=n(60364),g=n(42209);function k(e,t){return e===t}function j(e){return"function"===typeof e?function(){return e}:e}function v(e,t,n){var i=n&&n.equalityFn||k,a=function(e){var t=(0,r.useState)(j(e)),n=t[0],i=t[1];return[n,(0,r.useCallback)((function(e){return i(j(e))}),[])]}(e),o=a[0],c=a[1],l=function(e,t,n){var i=this,a=(0,r.useRef)(null),o=(0,r.useRef)(0),c=(0,r.useRef)(null),l=(0,r.useRef)([]),s=(0,r.useRef)(),u=(0,r.useRef)(),d=(0,r.useRef)(e),m=(0,r.useRef)(!0);d.current=e;var b=!t&&0!==t&&"undefined"!==typeof window;if("function"!==typeof e)throw new TypeError("Expected a function");t=+t||0;var f=!!(n=n||{}).leading,h=!("trailing"in n)||!!n.trailing,x="maxWait"in n,p=x?Math.max(+n.maxWait||0,t):null;(0,r.useEffect)((function(){return m.current=!0,function(){m.current=!1}}),[]);var g=(0,r.useMemo)((function(){var e=function(e){var t=l.current,n=s.current;return l.current=s.current=null,o.current=e,u.current=d.current.apply(n,t)},n=function(e,t){b&&cancelAnimationFrame(c.current),c.current=b?requestAnimationFrame(e):setTimeout(e,t)},r=function(e){if(!m.current)return!1;var n=e-a.current,i=e-o.current;return!a.current||n>=t||n<0||x&&i>=p},g=function(t){return c.current=null,h&&l.current?e(t):(l.current=s.current=null,u.current)},k=function e(){var i=Date.now();if(r(i))return g(i);if(m.current){var c=i-a.current,l=i-o.current,s=t-c,u=x?Math.min(s,p-l):s;n(e,u)}},j=function(){for(var d=[],b=0;b0&&(0,f.jsx)(s.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,f.jsx)(b.gx,{})})]})]})})))}}]); +//# sourceMappingURL=5588.e74088bb.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5588.0717939d.chunk.js.map b/portal-ui/build/static/js/5588.e74088bb.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/5588.0717939d.chunk.js.map rename to portal-ui/build/static/js/5588.e74088bb.chunk.js.map index 104732753..a95ba03c5 100644 --- a/portal-ui/build/static/js/5588.0717939d.chunk.js.map +++ b/portal-ui/build/static/js/5588.e74088bb.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/5588.0717939d.chunk.js","mappings":"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","sources":["common/BackLink.tsx","../node_modules/use-debounce/esm/useDebounce.js","../node_modules/use-debounce/esm/useDebouncedCallback.js","screens/Console/Buckets/ListBuckets/AddBucket.tsx","screens/Console/Common/FormComponents/RadioGroupSelector/RadioGroupSelector.tsx","screens/Console/Common/PageHeader/PageHeader.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\n","import { useCallback, useRef, useState } from 'react';\nimport useDebouncedCallback from './useDebouncedCallback';\nfunction valueEquality(left, right) {\n return left === right;\n}\nfunction adjustFunctionValueOfSetState(value) {\n return typeof value === 'function' ? function () { return value; } : value;\n}\nfunction useStateIgnoreCallback(initialState) {\n var _a = useState(adjustFunctionValueOfSetState(initialState)), state = _a[0], setState = _a[1];\n var setStateIgnoreCallback = useCallback(function (value) { return setState(adjustFunctionValueOfSetState(value)); }, []);\n return [state, setStateIgnoreCallback];\n}\nexport default function useDebounce(value, delay, options) {\n var eq = (options && options.equalityFn) || valueEquality;\n var _a = useStateIgnoreCallback(value), state = _a[0], dispatch = _a[1];\n var debounced = useDebouncedCallback(useCallback(function (value) { return dispatch(value); }, [dispatch]), delay, options);\n var previousValue = useRef(value);\n if (!eq(previousValue.current, value)) {\n debounced(value);\n previousValue.current = value;\n }\n return [state, debounced];\n}\n","import { useRef, useEffect, useMemo } from 'react';\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked, or until the next browser frame is drawn. The debounced function\n * comes with a `cancel` method to cancel delayed `func` invocations and a\n * `flush` method to immediately invoke them. Provide `options` to indicate\n * whether `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. The `func` is invoked with the last arguments provided to the\n * debounced function. Subsequent calls to the debounced function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n * invocation will be deferred until the next frame is drawn (typically about\n * 16ms).\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `debounce` and `throttle`.\n *\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0]\n * The number of milliseconds to delay; if omitted, `requestAnimationFrame` is\n * used (if available, otherwise it will be setTimeout(...,0)).\n * @param {Object} [options={}] The options object.\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.leading=false]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {number} [options.maxWait]\n * Specify invoking on the trailing edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * const resizeHandler = useDebouncedCallback(calculateLayout, 150);\n * window.addEventListener('resize', resizeHandler)\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * const clickHandler = useDebouncedCallback(sendMail, 300, {\n * leading: true,\n * trailing: false,\n * })\n * \n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * const debounced = useDebouncedCallback(batchLog, 250, { 'maxWait': 1000 })\n * const source = new EventSource('/stream')\n * source.addEventListener('message', debounced)\n *\n * // Cancel the trailing debounced invocation.\n * window.addEventListener('popstate', debounced.cancel)\n *\n * // Check for pending invocations.\n * const status = debounced.pending() ? \"Pending...\" : \"Ready\"\n */\nexport default function useDebouncedCallback(func, wait, options) {\n var _this = this;\n var lastCallTime = useRef(null);\n var lastInvokeTime = useRef(0);\n var timerId = useRef(null);\n var lastArgs = useRef([]);\n var lastThis = useRef();\n var result = useRef();\n var funcRef = useRef(func);\n var mounted = useRef(true);\n funcRef.current = func;\n // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n var useRAF = !wait && wait !== 0 && typeof window !== 'undefined';\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n wait = +wait || 0;\n options = options || {};\n var leading = !!options.leading;\n var trailing = 'trailing' in options ? !!options.trailing : true; // `true` by default\n var maxing = 'maxWait' in options;\n var maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : null;\n useEffect(function () {\n mounted.current = true;\n return function () {\n mounted.current = false;\n };\n }, []);\n // You may have a question, why we have so many code under the useMemo definition.\n //\n // This was made as we want to escape from useCallback hell and\n // not to initialize a number of functions each time useDebouncedCallback is called.\n //\n // It means that we have less garbage for our GC calls which improves performance.\n // Also, it makes this library smaller.\n //\n // And the last reason, that the code without lots of useCallback with deps is easier to read.\n // You have only one place for that.\n var debounced = useMemo(function () {\n var invokeFunc = function (time) {\n var args = lastArgs.current;\n var thisArg = lastThis.current;\n lastArgs.current = lastThis.current = null;\n lastInvokeTime.current = time;\n return (result.current = funcRef.current.apply(thisArg, args));\n };\n var startTimer = function (pendingFunc, wait) {\n if (useRAF)\n cancelAnimationFrame(timerId.current);\n timerId.current = useRAF ? requestAnimationFrame(pendingFunc) : setTimeout(pendingFunc, wait);\n };\n var shouldInvoke = function (time) {\n if (!mounted.current)\n return false;\n var timeSinceLastCall = time - lastCallTime.current;\n var timeSinceLastInvoke = time - lastInvokeTime.current;\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (!lastCallTime.current ||\n timeSinceLastCall >= wait ||\n timeSinceLastCall < 0 ||\n (maxing && timeSinceLastInvoke >= maxWait));\n };\n var trailingEdge = function (time) {\n timerId.current = null;\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs.current) {\n return invokeFunc(time);\n }\n lastArgs.current = lastThis.current = null;\n return result.current;\n };\n var timerExpired = function () {\n var time = Date.now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // https://github.com/xnimorz/use-debounce/issues/97\n if (!mounted.current) {\n return;\n }\n // Remaining wait calculation\n var timeSinceLastCall = time - lastCallTime.current;\n var timeSinceLastInvoke = time - lastInvokeTime.current;\n var timeWaiting = wait - timeSinceLastCall;\n var remainingWait = maxing ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n // Restart the timer\n startTimer(timerExpired, remainingWait);\n };\n var func = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var time = Date.now();\n var isInvoking = shouldInvoke(time);\n lastArgs.current = args;\n lastThis.current = _this;\n lastCallTime.current = time;\n if (isInvoking) {\n if (!timerId.current && mounted.current) {\n // Reset any `maxWait` timer.\n lastInvokeTime.current = lastCallTime.current;\n // Start the timer for the trailing edge.\n startTimer(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(lastCallTime.current) : result.current;\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime.current);\n }\n }\n if (!timerId.current) {\n startTimer(timerExpired, wait);\n }\n return result.current;\n };\n func.cancel = function () {\n if (timerId.current) {\n useRAF ? cancelAnimationFrame(timerId.current) : clearTimeout(timerId.current);\n }\n lastInvokeTime.current = 0;\n lastArgs.current = lastCallTime.current = lastThis.current = timerId.current = null;\n };\n func.isPending = function () {\n return !!timerId.current;\n };\n func.flush = function () {\n return !timerId.current ? result.current : trailingEdge(Date.now());\n };\n return func;\n }, [leading, maxing, wait, maxWait, trailing, useRAF]);\n return debounced;\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 Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { containerForHeader } from \"../../Common/FormComponents/common/styleLibrary\";\nimport api from \"../../../../common/api\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { getBytes, k8sScalarUnitsExcluding } from \"../../../../common/utils\";\nimport { AppState } from \"../../../../store\";\nimport history from \"../../../../history\";\nimport { connect } from \"react-redux\";\nimport {\n addBucketEnableObjectLocking,\n addBucketName,\n addBucketQuota,\n addBucketQuotaSize,\n addBucketQuotaType,\n addBucketQuotaUnit,\n addBucketRetention,\n addBucketRetentionMode,\n addBucketRetentionUnit,\n addBucketRetentionValidity,\n addBucketVersioning,\n} from \"../actions\";\nimport { useDebounce } from \"use-debounce\";\nimport { MakeBucketRequest } from \"../types\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport BackLink from \"../../../../common/BackLink\";\nimport { BucketsIcon } from \"../../../../icons\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n marginTop: 24,\n textAlign: \"right\",\n \"& .MuiButton-root\": {\n marginLeft: 8,\n },\n },\n error: {\n color: \"#b53b4b\",\n border: \"1px solid #b53b4b\",\n padding: 8,\n borderRadius: 3,\n },\n title: {\n marginBottom: 8,\n },\n headTitle: {\n fontWeight: \"bold\",\n fontSize: 16,\n paddingLeft: 8,\n },\n h6title: {\n fontWeight: \"bold\",\n color: \"#000000\",\n fontSize: 20,\n paddingBottom: 8,\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IAddBucketProps {\n classes: any;\n addBucketName: typeof addBucketName;\n addBucketVersioned: typeof addBucketVersioning;\n enableObjectLocking: typeof addBucketEnableObjectLocking;\n addBucketQuota: typeof addBucketQuota;\n addBucketQuotaType: typeof addBucketQuotaType;\n addBucketQuotaSize: typeof addBucketQuotaSize;\n addBucketQuotaUnit: typeof addBucketQuotaUnit;\n addBucketRetention: typeof addBucketRetention;\n addBucketRetentionMode: typeof addBucketRetentionMode;\n addBucketRetentionUnit: typeof addBucketRetentionUnit;\n addBucketRetentionValidity: typeof addBucketRetentionValidity;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n bucketName: string;\n versioningEnabled: boolean;\n lockingEnabled: boolean;\n quotaEnabled: boolean;\n quotaType: string;\n quotaSize: string;\n quotaUnit: string;\n retentionEnabled: boolean;\n retentionMode: string;\n retentionUnit: string;\n retentionValidity: number;\n distributedSetup: boolean;\n}\n\nconst AddBucket = ({\n classes,\n addBucketName,\n addBucketVersioned,\n enableObjectLocking,\n addBucketQuota,\n addBucketQuotaType,\n addBucketQuotaSize,\n addBucketQuotaUnit,\n addBucketRetention,\n addBucketRetentionMode,\n addBucketRetentionUnit,\n addBucketRetentionValidity,\n setErrorSnackMessage,\n bucketName,\n versioningEnabled,\n lockingEnabled,\n quotaEnabled,\n quotaType,\n quotaSize,\n quotaUnit,\n retentionEnabled,\n retentionMode,\n retentionUnit,\n retentionValidity,\n distributedSetup,\n}: IAddBucketProps) => {\n const [addLoading, setAddLoading] = useState(false);\n const [sendEnabled, setSendEnabled] = useState(false);\n const [lockingFieldDisabled, setLockingFieldDisabled] =\n useState(false);\n\n const addRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n\n let request: MakeBucketRequest = {\n name: bucketName,\n versioning: distributedSetup ? versioningEnabled : false,\n locking: distributedSetup ? lockingEnabled : false,\n };\n\n if (distributedSetup) {\n if (quotaEnabled) {\n const amount = getBytes(quotaSize, quotaUnit, true);\n request.quota = {\n enabled: true,\n quota_type: quotaType,\n amount: parseInt(amount),\n };\n }\n\n if (retentionEnabled) {\n request.retention = {\n mode: retentionMode,\n unit: retentionUnit,\n validity: retentionValidity,\n };\n }\n }\n\n api\n .invoke(\"POST\", \"/api/v1/buckets\", request)\n .then((res) => {\n setAddLoading(false);\n const newBucketName = `${bucketName}`;\n resetForm();\n history.push(`/buckets/${newBucketName}/browse`);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setErrorSnackMessage(err);\n });\n };\n\n const [value] = useDebounce(bucketName, 1000);\n\n useEffect(() => {\n addBucketName(value);\n }, [value, addBucketName]);\n\n const resetForm = () => {\n addBucketName(\"\");\n addBucketVersioned(false);\n enableObjectLocking(false);\n addBucketQuota(false);\n addBucketQuotaType(\"hard\");\n addBucketQuotaSize(\"1\");\n addBucketQuotaUnit(\"TiB\");\n addBucketRetention(false);\n addBucketRetentionMode(\"compliance\");\n addBucketRetentionUnit(\"days\");\n addBucketRetentionValidity(1);\n };\n\n useEffect(() => {\n let valid = false;\n\n if (bucketName.trim() !== \"\") {\n valid = true;\n }\n\n if (quotaEnabled && valid) {\n if (quotaSize.trim() === \"\" || parseInt(quotaSize) === 0) {\n valid = false;\n }\n }\n\n if (!versioningEnabled || !retentionEnabled) {\n addBucketRetention(false);\n addBucketRetentionMode(\"compliance\");\n addBucketRetentionUnit(\"days\");\n addBucketRetentionValidity(1);\n }\n\n if (retentionEnabled) {\n // if retention is enabled, then objec locking should be enabled as well\n enableObjectLocking(true);\n setLockingFieldDisabled(true);\n } else {\n setLockingFieldDisabled(false);\n }\n\n if (\n retentionEnabled &&\n (Number.isNaN(retentionValidity) || retentionValidity < 1)\n ) {\n valid = false;\n }\n\n setSendEnabled(valid);\n }, [\n bucketName,\n retentionEnabled,\n lockingEnabled,\n quotaType,\n quotaSize,\n quotaUnit,\n quotaEnabled,\n addBucketRetention,\n addBucketRetentionMode,\n addBucketRetentionUnit,\n addBucketRetentionValidity,\n retentionValidity,\n versioningEnabled,\n enableObjectLocking,\n ]);\n\n return (\n \n } />\n \n \n ) => {\n addRecord(e);\n }}\n >\n \n \n \n \n \n \n Create Bucket\n \n \n \n \n ) => {\n addBucketName(event.target.value);\n }}\n label=\"Bucket Name\"\n value={bucketName}\n />\n \n \n
    Features
    \n
    \n {!distributedSetup && (\n \n
    \n These features are unavailable in a single-disk setup.\n
    \n Please deploy a server in{\" \"}\n \n Distributed Mode\n {\" \"}\n to use these features.\n
    \n
    \n
    \n
    \n )}\n
    \n\n \n ) => {\n addBucketVersioned(event.target.checked);\n }}\n description={\n \"Allows to keep multiple versions of the same object under the same key.\"\n }\n label={\"Versioning\"}\n disabled={!distributedSetup || lockingEnabled}\n />\n \n \n ) => {\n enableObjectLocking(event.target.checked);\n if (event.target.checked) {\n addBucketVersioned(true);\n }\n }}\n label={\"Object Locking\"}\n description={\n \"Required to support retention and legal hold. Can only be enabled at bucket creation.\"\n }\n />\n \n\n \n ) => {\n addBucketQuota(event.target.checked);\n }}\n label={\"Quota\"}\n description={\"Limit the amount of data in the bucket.\"}\n disabled={!distributedSetup}\n />\n \n {quotaEnabled && distributedSetup && (\n \n \n ) => {\n if (e.target.validity.valid) {\n addBucketQuotaSize(e.target.value);\n }\n }}\n label=\"Quota\"\n value={quotaSize}\n required\n min=\"1\"\n pattern={\"[0-9]*\"}\n overlayObject={\n {\n addBucketQuotaUnit(newValue);\n }}\n unitSelected={quotaUnit}\n unitsList={k8sScalarUnitsExcluding([\"Ki\"])}\n disabled={false}\n />\n }\n />\n \n \n )}\n {versioningEnabled && distributedSetup && (\n \n \n ) => {\n addBucketRetention(event.target.checked);\n }}\n label={\"Retention\"}\n description={\n \"Impose rules to prevent object deletion for a period of time.\"\n }\n />\n \n )}\n {retentionEnabled && distributedSetup && (\n \n \n \n ) => {\n addBucketRetentionMode(e.target.value as string);\n }}\n selectorOptions={[\n { value: \"compliance\", label: \"Compliance\" },\n { value: \"governance\", label: \"Governance\" },\n ]}\n />\n \n \n \n ) => {\n addBucketRetentionUnit(e.target.value as string);\n }}\n selectorOptions={[\n { value: \"days\", label: \"Days\" },\n { value: \"years\", label: \"Years\" },\n ]}\n />\n \n \n ) => {\n addBucketRetentionValidity(e.target.valueAsNumber);\n }}\n label=\"Retention Validity\"\n value={String(retentionValidity)}\n required\n min=\"1\"\n />\n \n \n )}\n
    \n \n \n Clear\n \n \n Create Bucket\n \n \n {addLoading && (\n \n \n \n )}\n
    \n \n
    \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n addBucketModalOpen: state.buckets.open,\n bucketName: state.buckets.addBucketName,\n versioningEnabled: state.buckets.addBucketVersioningEnabled,\n lockingEnabled: state.buckets.addBucketLockingEnabled,\n quotaEnabled: state.buckets.addBucketQuotaEnabled,\n quotaType: state.buckets.addBucketQuotaType,\n quotaSize: state.buckets.addBucketQuotaSize,\n quotaUnit: state.buckets.addBucketQuotaUnit,\n retentionEnabled: state.buckets.addBucketRetentionEnabled,\n retentionMode: state.buckets.addBucketRetentionMode,\n retentionUnit: state.buckets.addBucketRetentionUnit,\n retentionValidity: state.buckets.addBucketRetentionValidity,\n distributedSetup: state.system.distributedSetup,\n});\n\nconst connector = connect(mapState, {\n addBucketName: addBucketName,\n addBucketVersioned: addBucketVersioning,\n enableObjectLocking: addBucketEnableObjectLocking,\n addBucketQuota: addBucketQuota,\n addBucketQuotaType: addBucketQuotaType,\n addBucketQuotaSize: addBucketQuotaSize,\n addBucketQuotaUnit: addBucketQuotaUnit,\n addBucketRetention: addBucketRetention,\n addBucketRetentionMode: addBucketRetentionMode,\n addBucketRetentionUnit: addBucketRetentionUnit,\n addBucketRetentionValidity: addBucketRetentionValidity,\n setErrorSnackMessage: setErrorSnackMessage,\n});\n\nexport default connector(withStyles(styles)(AddBucket));\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 clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Radio, { RadioProps } from \"@mui/material/Radio\";\nimport { InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { fieldBasic, radioIcons, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\n\nexport interface SelectorTypes {\n label: string;\n value: string;\n}\n\ninterface RadioGroupProps {\n selectorOptions: SelectorTypes[];\n currentSelection: string;\n label: string;\n id: string;\n name: string;\n tooltip?: string;\n disableOptions?: boolean;\n onChange: (e: React.ChangeEvent) => void;\n classes: any;\n displayInColumn?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n optionLabel: {\n \"&.Mui-disabled\": {\n \"& .MuiFormControlLabel-label\": {\n color: \"#9c9c9c\",\n },\n },\n \"&:last-child\": {\n marginRight: 0,\n },\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n },\n },\n checkedOption: {\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n fontWeight: 700,\n },\n },\n });\n\nconst radioStyles = makeStyles({\n root: {\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n ...radioIcons,\n});\n\nconst RadioButton = (props: RadioProps) => {\n const classes = radioStyles();\n\n return (\n }\n icon={}\n {...props}\n />\n );\n};\n\nexport const RadioGroupSelector = ({\n selectorOptions = [],\n currentSelection,\n label,\n id,\n name,\n onChange,\n tooltip = \"\",\n disableOptions = false,\n classes,\n displayInColumn = false,\n}: RadioGroupProps) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n
    \n \n \n {selectorOptions.map((selectorOption) => {\n return (\n }\n label={selectorOption.label}\n disabled={disableOptions}\n className={clsx(classes.optionLabel, {\n [classes.checkedOption]:\n selectorOption.value === currentSelection,\n })}\n />\n );\n })}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(RadioGroupSelector);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","valueEquality","left","right","adjustFunctionValueOfSetState","value","useDebounce","delay","options","eq","equalityFn","_a","initialState","useState","state","setState","useCallback","useStateIgnoreCallback","dispatch","debounced","func","wait","_this","this","lastCallTime","useRef","lastInvokeTime","timerId","lastArgs","lastThis","result","funcRef","mounted","current","useRAF","window","TypeError","leading","trailing","maxing","maxWait","Math","max","useEffect","useMemo","invokeFunc","time","args","thisArg","apply","startTimer","pendingFunc","cancelAnimationFrame","requestAnimationFrame","setTimeout","shouldInvoke","timeSinceLastCall","timeSinceLastInvoke","trailingEdge","timerExpired","Date","now","timeWaiting","remainingWait","min","_i","arguments","length","isInvoking","cancel","clearTimeout","isPending","flush","useDebouncedCallback","previousValue","connect","addBucketModalOpen","buckets","open","bucketName","addBucketName","versioningEnabled","addBucketVersioningEnabled","lockingEnabled","addBucketLockingEnabled","quotaEnabled","addBucketQuotaEnabled","quotaType","addBucketQuotaType","quotaSize","addBucketQuotaSize","quotaUnit","addBucketQuotaUnit","retentionEnabled","addBucketRetentionEnabled","retentionMode","addBucketRetentionMode","retentionUnit","addBucketRetentionUnit","retentionValidity","addBucketRetentionValidity","distributedSetup","system","addBucketVersioned","addBucketVersioning","enableObjectLocking","addBucketEnableObjectLocking","addBucketQuota","addBucketRetention","setErrorSnackMessage","buttonContainer","marginTop","textAlign","marginLeft","error","border","padding","title","marginBottom","headTitle","h6title","containerForHeader","spacing","addLoading","setAddLoading","sendEnabled","setSendEnabled","lockingFieldDisabled","setLockingFieldDisabled","resetForm","valid","trim","parseInt","Number","isNaN","Fragment","PageHeader","BackLink","PageLayout","Grid","item","xs","boxy","noValidate","autoComplete","onSubmit","e","event","preventDefault","request","name","versioning","locking","amount","getBytes","quota","enabled","quota_type","retention","mode","unit","validity","api","then","res","newBucketName","history","catch","err","addRecord","container","InputBoxWrapper","id","autoFocus","onChange","target","href","rel","FormSwitchWrapper","checked","description","disabled","type","required","pattern","overlayObject","InputUnitMenu","onUnitChange","newValue","unitSelected","unitsList","k8sScalarUnitsExcluding","RadioGroupSelector","currentSelection","selectorOptions","valueAsNumber","String","Button","variant","clearButton","LinearProgress","radioStyles","makeStyles","root","backgroundColor","radioIcons","RadioButton","props","disableRipple","checkedIcon","radioSelectedIcon","radioUnselectedIcon","fieldBasic","tooltipHelper","optionLabel","checkedOption","tooltip","disableOptions","displayInColumn","htmlFor","inputLabel","tooltipContainer","placement","radioOptionsLayout","row","style","map","selectorOption","control","clsx","mapDispatchToProps","toggleList","connector","sidebarOpen","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","boxShadow","justifyContent","labelStyle","rightMenu","logo","fill","main","middleComponent","actions","includes","direction","sm","md","component","size"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/5588.e74088bb.chunk.js","mappings":"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","sources":["common/BackLink.tsx","../node_modules/use-debounce/esm/useDebounce.js","../node_modules/use-debounce/esm/useDebouncedCallback.js","screens/Console/Buckets/ListBuckets/AddBucket.tsx","screens/Console/Common/FormComponents/RadioGroupSelector/RadioGroupSelector.tsx","screens/Console/Common/PageHeader/PageHeader.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\n","import { useCallback, useRef, useState } from 'react';\nimport useDebouncedCallback from './useDebouncedCallback';\nfunction valueEquality(left, right) {\n return left === right;\n}\nfunction adjustFunctionValueOfSetState(value) {\n return typeof value === 'function' ? function () { return value; } : value;\n}\nfunction useStateIgnoreCallback(initialState) {\n var _a = useState(adjustFunctionValueOfSetState(initialState)), state = _a[0], setState = _a[1];\n var setStateIgnoreCallback = useCallback(function (value) { return setState(adjustFunctionValueOfSetState(value)); }, []);\n return [state, setStateIgnoreCallback];\n}\nexport default function useDebounce(value, delay, options) {\n var eq = (options && options.equalityFn) || valueEquality;\n var _a = useStateIgnoreCallback(value), state = _a[0], dispatch = _a[1];\n var debounced = useDebouncedCallback(useCallback(function (value) { return dispatch(value); }, [dispatch]), delay, options);\n var previousValue = useRef(value);\n if (!eq(previousValue.current, value)) {\n debounced(value);\n previousValue.current = value;\n }\n return [state, debounced];\n}\n","import { useRef, useEffect, useMemo } from 'react';\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked, or until the next browser frame is drawn. The debounced function\n * comes with a `cancel` method to cancel delayed `func` invocations and a\n * `flush` method to immediately invoke them. Provide `options` to indicate\n * whether `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. The `func` is invoked with the last arguments provided to the\n * debounced function. Subsequent calls to the debounced function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * If `wait` is omitted in an environment with `requestAnimationFrame`, `func`\n * invocation will be deferred until the next frame is drawn (typically about\n * 16ms).\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `debounce` and `throttle`.\n *\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0]\n * The number of milliseconds to delay; if omitted, `requestAnimationFrame` is\n * used (if available, otherwise it will be setTimeout(...,0)).\n * @param {Object} [options={}] The options object.\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.leading=false]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {number} [options.maxWait]\n * Specify invoking on the trailing edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * const resizeHandler = useDebouncedCallback(calculateLayout, 150);\n * window.addEventListener('resize', resizeHandler)\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * const clickHandler = useDebouncedCallback(sendMail, 300, {\n * leading: true,\n * trailing: false,\n * })\n * \n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * const debounced = useDebouncedCallback(batchLog, 250, { 'maxWait': 1000 })\n * const source = new EventSource('/stream')\n * source.addEventListener('message', debounced)\n *\n * // Cancel the trailing debounced invocation.\n * window.addEventListener('popstate', debounced.cancel)\n *\n * // Check for pending invocations.\n * const status = debounced.pending() ? \"Pending...\" : \"Ready\"\n */\nexport default function useDebouncedCallback(func, wait, options) {\n var _this = this;\n var lastCallTime = useRef(null);\n var lastInvokeTime = useRef(0);\n var timerId = useRef(null);\n var lastArgs = useRef([]);\n var lastThis = useRef();\n var result = useRef();\n var funcRef = useRef(func);\n var mounted = useRef(true);\n funcRef.current = func;\n // Bypass `requestAnimationFrame` by explicitly setting `wait=0`.\n var useRAF = !wait && wait !== 0 && typeof window !== 'undefined';\n if (typeof func !== 'function') {\n throw new TypeError('Expected a function');\n }\n wait = +wait || 0;\n options = options || {};\n var leading = !!options.leading;\n var trailing = 'trailing' in options ? !!options.trailing : true; // `true` by default\n var maxing = 'maxWait' in options;\n var maxWait = maxing ? Math.max(+options.maxWait || 0, wait) : null;\n useEffect(function () {\n mounted.current = true;\n return function () {\n mounted.current = false;\n };\n }, []);\n // You may have a question, why we have so many code under the useMemo definition.\n //\n // This was made as we want to escape from useCallback hell and\n // not to initialize a number of functions each time useDebouncedCallback is called.\n //\n // It means that we have less garbage for our GC calls which improves performance.\n // Also, it makes this library smaller.\n //\n // And the last reason, that the code without lots of useCallback with deps is easier to read.\n // You have only one place for that.\n var debounced = useMemo(function () {\n var invokeFunc = function (time) {\n var args = lastArgs.current;\n var thisArg = lastThis.current;\n lastArgs.current = lastThis.current = null;\n lastInvokeTime.current = time;\n return (result.current = funcRef.current.apply(thisArg, args));\n };\n var startTimer = function (pendingFunc, wait) {\n if (useRAF)\n cancelAnimationFrame(timerId.current);\n timerId.current = useRAF ? requestAnimationFrame(pendingFunc) : setTimeout(pendingFunc, wait);\n };\n var shouldInvoke = function (time) {\n if (!mounted.current)\n return false;\n var timeSinceLastCall = time - lastCallTime.current;\n var timeSinceLastInvoke = time - lastInvokeTime.current;\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (!lastCallTime.current ||\n timeSinceLastCall >= wait ||\n timeSinceLastCall < 0 ||\n (maxing && timeSinceLastInvoke >= maxWait));\n };\n var trailingEdge = function (time) {\n timerId.current = null;\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs.current) {\n return invokeFunc(time);\n }\n lastArgs.current = lastThis.current = null;\n return result.current;\n };\n var timerExpired = function () {\n var time = Date.now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // https://github.com/xnimorz/use-debounce/issues/97\n if (!mounted.current) {\n return;\n }\n // Remaining wait calculation\n var timeSinceLastCall = time - lastCallTime.current;\n var timeSinceLastInvoke = time - lastInvokeTime.current;\n var timeWaiting = wait - timeSinceLastCall;\n var remainingWait = maxing ? Math.min(timeWaiting, maxWait - timeSinceLastInvoke) : timeWaiting;\n // Restart the timer\n startTimer(timerExpired, remainingWait);\n };\n var func = function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var time = Date.now();\n var isInvoking = shouldInvoke(time);\n lastArgs.current = args;\n lastThis.current = _this;\n lastCallTime.current = time;\n if (isInvoking) {\n if (!timerId.current && mounted.current) {\n // Reset any `maxWait` timer.\n lastInvokeTime.current = lastCallTime.current;\n // Start the timer for the trailing edge.\n startTimer(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(lastCallTime.current) : result.current;\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n startTimer(timerExpired, wait);\n return invokeFunc(lastCallTime.current);\n }\n }\n if (!timerId.current) {\n startTimer(timerExpired, wait);\n }\n return result.current;\n };\n func.cancel = function () {\n if (timerId.current) {\n useRAF ? cancelAnimationFrame(timerId.current) : clearTimeout(timerId.current);\n }\n lastInvokeTime.current = 0;\n lastArgs.current = lastCallTime.current = lastThis.current = timerId.current = null;\n };\n func.isPending = function () {\n return !!timerId.current;\n };\n func.flush = function () {\n return !timerId.current ? result.current : trailingEdge(Date.now());\n };\n return func;\n }, [leading, maxing, wait, maxWait, trailing, useRAF]);\n return debounced;\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 Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { containerForHeader } from \"../../Common/FormComponents/common/styleLibrary\";\nimport api from \"../../../../common/api\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { getBytes, k8sScalarUnitsExcluding } from \"../../../../common/utils\";\nimport { AppState } from \"../../../../store\";\nimport history from \"../../../../history\";\nimport { connect } from \"react-redux\";\nimport {\n addBucketEnableObjectLocking,\n addBucketName,\n addBucketQuota,\n addBucketQuotaSize,\n addBucketQuotaType,\n addBucketQuotaUnit,\n addBucketRetention,\n addBucketRetentionMode,\n addBucketRetentionUnit,\n addBucketRetentionValidity,\n addBucketVersioning,\n} from \"../actions\";\nimport { useDebounce } from \"use-debounce\";\nimport { MakeBucketRequest } from \"../types\";\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport BackLink from \"../../../../common/BackLink\";\nimport { BucketsIcon } from \"../../../../icons\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport InputUnitMenu from \"../../Common/FormComponents/InputUnitMenu/InputUnitMenu\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n marginTop: 24,\n textAlign: \"right\",\n \"& .MuiButton-root\": {\n marginLeft: 8,\n },\n },\n error: {\n color: \"#b53b4b\",\n border: \"1px solid #b53b4b\",\n padding: 8,\n borderRadius: 3,\n },\n title: {\n marginBottom: 8,\n },\n headTitle: {\n fontWeight: \"bold\",\n fontSize: 16,\n paddingLeft: 8,\n },\n h6title: {\n fontWeight: \"bold\",\n color: \"#000000\",\n fontSize: 20,\n paddingBottom: 8,\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IAddBucketProps {\n classes: any;\n addBucketName: typeof addBucketName;\n addBucketVersioned: typeof addBucketVersioning;\n enableObjectLocking: typeof addBucketEnableObjectLocking;\n addBucketQuota: typeof addBucketQuota;\n addBucketQuotaType: typeof addBucketQuotaType;\n addBucketQuotaSize: typeof addBucketQuotaSize;\n addBucketQuotaUnit: typeof addBucketQuotaUnit;\n addBucketRetention: typeof addBucketRetention;\n addBucketRetentionMode: typeof addBucketRetentionMode;\n addBucketRetentionUnit: typeof addBucketRetentionUnit;\n addBucketRetentionValidity: typeof addBucketRetentionValidity;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n bucketName: string;\n versioningEnabled: boolean;\n lockingEnabled: boolean;\n quotaEnabled: boolean;\n quotaType: string;\n quotaSize: string;\n quotaUnit: string;\n retentionEnabled: boolean;\n retentionMode: string;\n retentionUnit: string;\n retentionValidity: number;\n distributedSetup: boolean;\n}\n\nconst AddBucket = ({\n classes,\n addBucketName,\n addBucketVersioned,\n enableObjectLocking,\n addBucketQuota,\n addBucketQuotaType,\n addBucketQuotaSize,\n addBucketQuotaUnit,\n addBucketRetention,\n addBucketRetentionMode,\n addBucketRetentionUnit,\n addBucketRetentionValidity,\n setErrorSnackMessage,\n bucketName,\n versioningEnabled,\n lockingEnabled,\n quotaEnabled,\n quotaType,\n quotaSize,\n quotaUnit,\n retentionEnabled,\n retentionMode,\n retentionUnit,\n retentionValidity,\n distributedSetup,\n}: IAddBucketProps) => {\n const [addLoading, setAddLoading] = useState(false);\n const [sendEnabled, setSendEnabled] = useState(false);\n const [lockingFieldDisabled, setLockingFieldDisabled] =\n useState(false);\n\n const addRecord = (event: React.FormEvent) => {\n event.preventDefault();\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n\n let request: MakeBucketRequest = {\n name: bucketName,\n versioning: distributedSetup ? versioningEnabled : false,\n locking: distributedSetup ? lockingEnabled : false,\n };\n\n if (distributedSetup) {\n if (quotaEnabled) {\n const amount = getBytes(quotaSize, quotaUnit, true);\n request.quota = {\n enabled: true,\n quota_type: quotaType,\n amount: parseInt(amount),\n };\n }\n\n if (retentionEnabled) {\n request.retention = {\n mode: retentionMode,\n unit: retentionUnit,\n validity: retentionValidity,\n };\n }\n }\n\n api\n .invoke(\"POST\", \"/api/v1/buckets\", request)\n .then((res) => {\n setAddLoading(false);\n const newBucketName = `${bucketName}`;\n resetForm();\n history.push(`/buckets/${newBucketName}/browse`);\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setErrorSnackMessage(err);\n });\n };\n\n const [value] = useDebounce(bucketName, 1000);\n\n useEffect(() => {\n addBucketName(value);\n }, [value, addBucketName]);\n\n const resetForm = () => {\n addBucketName(\"\");\n addBucketVersioned(false);\n enableObjectLocking(false);\n addBucketQuota(false);\n addBucketQuotaType(\"hard\");\n addBucketQuotaSize(\"1\");\n addBucketQuotaUnit(\"TiB\");\n addBucketRetention(false);\n addBucketRetentionMode(\"compliance\");\n addBucketRetentionUnit(\"days\");\n addBucketRetentionValidity(1);\n };\n\n useEffect(() => {\n let valid = false;\n\n if (bucketName.trim() !== \"\") {\n valid = true;\n }\n\n if (quotaEnabled && valid) {\n if (quotaSize.trim() === \"\" || parseInt(quotaSize) === 0) {\n valid = false;\n }\n }\n\n if (!versioningEnabled || !retentionEnabled) {\n addBucketRetention(false);\n addBucketRetentionMode(\"compliance\");\n addBucketRetentionUnit(\"days\");\n addBucketRetentionValidity(1);\n }\n\n if (retentionEnabled) {\n // if retention is enabled, then objec locking should be enabled as well\n enableObjectLocking(true);\n setLockingFieldDisabled(true);\n } else {\n setLockingFieldDisabled(false);\n }\n\n if (\n retentionEnabled &&\n (Number.isNaN(retentionValidity) || retentionValidity < 1)\n ) {\n valid = false;\n }\n\n setSendEnabled(valid);\n }, [\n bucketName,\n retentionEnabled,\n lockingEnabled,\n quotaType,\n quotaSize,\n quotaUnit,\n quotaEnabled,\n addBucketRetention,\n addBucketRetentionMode,\n addBucketRetentionUnit,\n addBucketRetentionValidity,\n retentionValidity,\n versioningEnabled,\n enableObjectLocking,\n ]);\n\n return (\n \n } />\n \n \n ) => {\n addRecord(e);\n }}\n >\n \n \n \n \n \n \n Create Bucket\n \n \n \n \n ) => {\n addBucketName(event.target.value);\n }}\n label=\"Bucket Name\"\n value={bucketName}\n />\n \n \n
    Features
    \n
    \n {!distributedSetup && (\n \n
    \n These features are unavailable in a single-disk setup.\n
    \n Please deploy a server in{\" \"}\n \n Distributed Mode\n {\" \"}\n to use these features.\n
    \n
    \n
    \n
    \n )}\n
    \n\n \n ) => {\n addBucketVersioned(event.target.checked);\n }}\n description={\n \"Allows to keep multiple versions of the same object under the same key.\"\n }\n label={\"Versioning\"}\n disabled={!distributedSetup || lockingEnabled}\n />\n \n \n ) => {\n enableObjectLocking(event.target.checked);\n if (event.target.checked) {\n addBucketVersioned(true);\n }\n }}\n label={\"Object Locking\"}\n description={\n \"Required to support retention and legal hold. Can only be enabled at bucket creation.\"\n }\n />\n \n\n \n ) => {\n addBucketQuota(event.target.checked);\n }}\n label={\"Quota\"}\n description={\"Limit the amount of data in the bucket.\"}\n disabled={!distributedSetup}\n />\n \n {quotaEnabled && distributedSetup && (\n \n \n ) => {\n if (e.target.validity.valid) {\n addBucketQuotaSize(e.target.value);\n }\n }}\n label=\"Quota\"\n value={quotaSize}\n required\n min=\"1\"\n pattern={\"[0-9]*\"}\n overlayObject={\n {\n addBucketQuotaUnit(newValue);\n }}\n unitSelected={quotaUnit}\n unitsList={k8sScalarUnitsExcluding([\"Ki\"])}\n disabled={false}\n />\n }\n />\n \n \n )}\n {versioningEnabled && distributedSetup && (\n \n \n ) => {\n addBucketRetention(event.target.checked);\n }}\n label={\"Retention\"}\n description={\n \"Impose rules to prevent object deletion for a period of time.\"\n }\n />\n \n )}\n {retentionEnabled && distributedSetup && (\n \n \n \n ) => {\n addBucketRetentionMode(e.target.value as string);\n }}\n selectorOptions={[\n { value: \"compliance\", label: \"Compliance\" },\n { value: \"governance\", label: \"Governance\" },\n ]}\n />\n \n \n \n ) => {\n addBucketRetentionUnit(e.target.value as string);\n }}\n selectorOptions={[\n { value: \"days\", label: \"Days\" },\n { value: \"years\", label: \"Years\" },\n ]}\n />\n \n \n ) => {\n addBucketRetentionValidity(e.target.valueAsNumber);\n }}\n label=\"Retention Validity\"\n value={String(retentionValidity)}\n required\n min=\"1\"\n />\n \n \n )}\n
    \n \n \n Clear\n \n \n Create Bucket\n \n \n {addLoading && (\n \n \n \n )}\n
    \n \n
    \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n addBucketModalOpen: state.buckets.open,\n bucketName: state.buckets.addBucketName,\n versioningEnabled: state.buckets.addBucketVersioningEnabled,\n lockingEnabled: state.buckets.addBucketLockingEnabled,\n quotaEnabled: state.buckets.addBucketQuotaEnabled,\n quotaType: state.buckets.addBucketQuotaType,\n quotaSize: state.buckets.addBucketQuotaSize,\n quotaUnit: state.buckets.addBucketQuotaUnit,\n retentionEnabled: state.buckets.addBucketRetentionEnabled,\n retentionMode: state.buckets.addBucketRetentionMode,\n retentionUnit: state.buckets.addBucketRetentionUnit,\n retentionValidity: state.buckets.addBucketRetentionValidity,\n distributedSetup: state.system.distributedSetup,\n});\n\nconst connector = connect(mapState, {\n addBucketName: addBucketName,\n addBucketVersioned: addBucketVersioning,\n enableObjectLocking: addBucketEnableObjectLocking,\n addBucketQuota: addBucketQuota,\n addBucketQuotaType: addBucketQuotaType,\n addBucketQuotaSize: addBucketQuotaSize,\n addBucketQuotaUnit: addBucketQuotaUnit,\n addBucketRetention: addBucketRetention,\n addBucketRetentionMode: addBucketRetentionMode,\n addBucketRetentionUnit: addBucketRetentionUnit,\n addBucketRetentionValidity: addBucketRetentionValidity,\n setErrorSnackMessage: setErrorSnackMessage,\n});\n\nexport default connector(withStyles(styles)(AddBucket));\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 clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Radio, { RadioProps } from \"@mui/material/Radio\";\nimport { InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { fieldBasic, radioIcons, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\n\nexport interface SelectorTypes {\n label: string;\n value: string;\n}\n\ninterface RadioGroupProps {\n selectorOptions: SelectorTypes[];\n currentSelection: string;\n label: string;\n id: string;\n name: string;\n tooltip?: string;\n disableOptions?: boolean;\n onChange: (e: React.ChangeEvent) => void;\n classes: any;\n displayInColumn?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n optionLabel: {\n \"&.Mui-disabled\": {\n \"& .MuiFormControlLabel-label\": {\n color: \"#9c9c9c\",\n },\n },\n \"&:last-child\": {\n marginRight: 0,\n },\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n },\n },\n checkedOption: {\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n fontWeight: 700,\n },\n },\n });\n\nconst radioStyles = makeStyles({\n root: {\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n ...radioIcons,\n});\n\nconst RadioButton = (props: RadioProps) => {\n const classes = radioStyles();\n\n return (\n }\n icon={}\n {...props}\n />\n );\n};\n\nexport const RadioGroupSelector = ({\n selectorOptions = [],\n currentSelection,\n label,\n id,\n name,\n onChange,\n tooltip = \"\",\n disableOptions = false,\n classes,\n displayInColumn = false,\n}: RadioGroupProps) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n
    \n \n \n {selectorOptions.map((selectorOption) => {\n return (\n }\n label={selectorOption.label}\n disabled={disableOptions}\n className={clsx(classes.optionLabel, {\n [classes.checkedOption]:\n selectorOption.value === currentSelection,\n })}\n />\n );\n })}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(RadioGroupSelector);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","valueEquality","left","right","adjustFunctionValueOfSetState","value","useDebounce","delay","options","eq","equalityFn","_a","initialState","useState","state","setState","useCallback","useStateIgnoreCallback","dispatch","debounced","func","wait","_this","this","lastCallTime","useRef","lastInvokeTime","timerId","lastArgs","lastThis","result","funcRef","mounted","current","useRAF","window","TypeError","leading","trailing","maxing","maxWait","Math","max","useEffect","useMemo","invokeFunc","time","args","thisArg","apply","startTimer","pendingFunc","cancelAnimationFrame","requestAnimationFrame","setTimeout","shouldInvoke","timeSinceLastCall","timeSinceLastInvoke","trailingEdge","timerExpired","Date","now","timeWaiting","remainingWait","min","_i","arguments","length","isInvoking","cancel","clearTimeout","isPending","flush","useDebouncedCallback","previousValue","connect","addBucketModalOpen","buckets","open","bucketName","addBucketName","versioningEnabled","addBucketVersioningEnabled","lockingEnabled","addBucketLockingEnabled","quotaEnabled","addBucketQuotaEnabled","quotaType","addBucketQuotaType","quotaSize","addBucketQuotaSize","quotaUnit","addBucketQuotaUnit","retentionEnabled","addBucketRetentionEnabled","retentionMode","addBucketRetentionMode","retentionUnit","addBucketRetentionUnit","retentionValidity","addBucketRetentionValidity","distributedSetup","system","addBucketVersioned","addBucketVersioning","enableObjectLocking","addBucketEnableObjectLocking","addBucketQuota","addBucketRetention","setErrorSnackMessage","buttonContainer","marginTop","textAlign","marginLeft","error","border","padding","title","marginBottom","headTitle","h6title","containerForHeader","spacing","addLoading","setAddLoading","sendEnabled","setSendEnabled","lockingFieldDisabled","setLockingFieldDisabled","resetForm","valid","trim","parseInt","Number","isNaN","Fragment","PageHeader","BackLink","PageLayout","Grid","item","xs","boxy","noValidate","autoComplete","onSubmit","e","event","preventDefault","request","name","versioning","locking","amount","getBytes","quota","enabled","quota_type","retention","mode","unit","validity","api","then","res","newBucketName","history","catch","err","addRecord","container","InputBoxWrapper","id","autoFocus","onChange","target","href","rel","FormSwitchWrapper","checked","description","disabled","type","required","pattern","overlayObject","InputUnitMenu","onUnitChange","newValue","unitSelected","unitsList","k8sScalarUnitsExcluding","RadioGroupSelector","currentSelection","selectorOptions","valueAsNumber","String","Button","variant","clearButton","LinearProgress","radioStyles","makeStyles","root","backgroundColor","radioIcons","RadioButton","props","disableRipple","checkedIcon","radioSelectedIcon","radioUnselectedIcon","fieldBasic","tooltipHelper","optionLabel","checkedOption","tooltip","disableOptions","displayInColumn","htmlFor","inputLabel","tooltipContainer","placement","radioOptionsLayout","row","style","map","selectorOption","control","clsx","mapDispatchToProps","toggleList","connector","sidebarOpen","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","boxShadow","justifyContent","labelStyle","rightMenu","logo","fill","main","middleComponent","actions","includes","direction","sm","md","component","size"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5662.19eb0698.chunk.js b/portal-ui/build/static/js/5662.19eb0698.chunk.js new file mode 100644 index 000000000..b7187ea5d --- /dev/null +++ b/portal-ui/build/static/js/5662.19eb0698.chunk.js @@ -0,0 +1,2 @@ +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5662],{40603:function(e,t,n){"use strict";var a=n(1413),o=n(45987),i=(n(72791),n(85531)),r=n(72455),l=n(80184),c=["onClick","text","disabled","tooltip","icon","className"],s=(0,r.Z)((function(e){return{root:{padding:"7px",color:function(t){return function(t){var n=t.variant,a=t.color,o=e.palette.primary.main;return"primary"===a&&"contained"===n?o=e.palette.primary.contrastText:"primary"===a&&"outlined"===n?o=e.palette.primary.main:"secondary"===a&&(o=e.palette.secondary.main),o}(t)},borderColor:function(t){return"secondary"===t.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));t.Z=function(e){var t=s(e),n=e.onClick,r=e.text,d=void 0===r?"":r,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,v=e.icon,f=void 0===v?null:v,h=e.className,x=void 0===h?"":h,Z=(0,o.Z)(e,c);return(0,l.jsxs)(i.Z,(0,a.Z)((0,a.Z)({className:x,classes:t,tooltip:p||d,variant:"outlined",onClick:n,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},Z),{},{children:[(0,l.jsx)("span",{children:d})," ",f]}))}},23508:function(e,t,n){"use strict";var a=n(1413),o=n(72791),i=n(5574),r=n(65661),l=n(39157),c=n(97123),s=n(36151),d=n(59860),u=n(13400),m=n(29823),p=n(11135),v=n(25787),f=n(23814),h=n(80184);t.Z=(0,v.Z)((function(e){return(0,p.Z)((0,a.Z)({},f.Qw))}))((function(e){var t=e.isOpen,n=void 0!==t&&t,p=e.onClose,v=e.onCancel,f=e.onConfirm,x=e.classes,Z=void 0===x?{}:x,g=e.title,y=void 0===g?"":g,k=e.isLoading,j=e.confirmationContent,b=e.cancelText,C=void 0===b?"Cancel":b,S=e.confirmText,z=void 0===S?"Confirm":S,M=e.confirmButtonProps,N=void 0===M?{}:M,w=e.cancelButtonProps,E=void 0===w?{}:w,I=e.titleIcon,D=void 0===I?null:I;return(0,h.jsxs)(i.Z,{open:n,onClose:function(e,t){"backdropClick"!==t&&p()},className:Z.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(r.Z,{className:Z.title,children:[(0,h.jsxs)("div",{className:Z.titleText,children:[D," ",y]}),(0,h.jsx)("div",{className:Z.closeContainer,children:(0,h.jsx)(u.Z,{"aria-label":"close",className:Z.closeButton,onClick:p,disableRipple:!0,size:"small",children:(0,h.jsx)(m.Z,{})})})]}),(0,h.jsx)(l.Z,{className:Z.content,children:j}),(0,h.jsxs)(c.Z,{className:Z.actions,children:[(0,h.jsx)(s.Z,(0,a.Z)((0,a.Z)({className:Z.cancelButton,onClick:v||p,disabled:k,type:"button"},E),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:C})),(0,h.jsx)(d.Z,(0,a.Z)((0,a.Z)({className:Z.confirmButton,type:"button",onClick:f,loading:k,disabled:k,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(o.Fragment,{}),autoFocus:!0,id:"confirm-ok"},N),{},{children:z}))]})]})}))},56028:function(e,t,n){"use strict";var a=n(70885),o=n(1413),i=n(72791),r=n(60364),l=n(13400),c=n(55646),s=n(5574),d=n(65661),u=n(39157),m=n(11135),p=n(25787),v=n(23814),f=n(42649),h=n(29823),x=n(28057),Z=n(80184),g=(0,r.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:f.MK});t.Z=(0,p.Z)((function(e){return(0,m.Z)((0,o.Z)((0,o.Z)({},v.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},v.sN))}))(g((function(e){var t=e.onClose,n=e.modalOpen,r=e.title,m=e.children,p=e.classes,v=e.wideLimit,f=void 0===v||v,g=e.modalSnackMessage,y=e.noContentPadding,k=e.setModalSnackMessage,j=e.titleIcon,b=void 0===j?null:j,C=(0,i.useState)(!1),S=(0,a.Z)(C,2),z=S[0],M=S[1];(0,i.useEffect)((function(){k("")}),[k]),(0,i.useEffect)((function(){if(g){if(""===g.message)return void M(!1);"error"!==g.type&&M(!0)}}),[g]);var N=f?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},w="";return g&&(w=g.detailedErrorMsg,(""===g.detailedErrorMsg||g.detailedErrorMsg.length<5)&&(w=g.message)),(0,Z.jsxs)(s.Z,(0,o.Z)((0,o.Z)({open:n,classes:p},N),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:p.root,children:[(0,Z.jsxs)(d.Z,{className:p.title,children:[(0,Z.jsxs)("div",{className:p.titleText,children:[b," ",r]}),(0,Z.jsx)("div",{className:p.closeContainer,children:(0,Z.jsx)(l.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,Z.jsx)(h.Z,{})})})]}),(0,Z.jsx)(x.Z,{isModal:!0}),(0,Z.jsx)(c.Z,{open:z,className:p.snackBarModal,onClose:function(){M(!1),k("")},message:w,ContentProps:{className:"".concat(p.snackBar," ").concat(g&&"error"===g.type?p.errorSnackBar:"")},autoHideDuration:g&&"error"===g.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:y?"":p.content,children:m})]}))})))},32509:function(e,t,n){"use strict";var a=n(42982),o=n(1413),i=n(72791),r=n(11135),l=n(25787),c=n(23814),s=n(21435),d=n(20068),u=n(13400),m=n(42419),p=n(27247),v=n(40968),f=n(84741),h=n(80184);t.Z=(0,l.Z)((function(e){return(0,r.Z)((0,o.Z)({buttonContainer:{textAlign:"right"},multiContainer:{display:"flex",alignItems:"center",justifyContent:"flex-start"},sizeFactorContainer:{marginLeft:8},bottomContainer:{display:"flex",flexGrow:1,alignItems:"center","& div":{flexGrow:1,width:"100%"}},factorElements:{display:"flex",justifyContent:"flex-start"},sizeNumber:{fontSize:35,fontWeight:700,textAlign:"center"},sizeDescription:{fontSize:14,color:"#777",textAlign:"center"},shortened:{gridTemplateColumns:"auto auto 20px 20px",display:"grid",gridGap:20,paddingRight:20}},c.oO))}))((function(e){var t=e.classes,n=e.paramName,o=e.newValues,r=e.setNewValues,l=e.error,c=e.setError,x=function(e){c((0,f.h)(l,e))};(0,i.useEffect)((function(){for(var e=[],t=0;t1){var e=(0,a.Z)(o);e.splice(c,1),r(e)}},children:(0,h.jsx)(p.Z,{})})})]})},"keyvalue-".concat(c.toString()))}));return(0,h.jsx)(i.Fragment,{children:Z})}))},47879:function(e,t,n){"use strict";var a=n(1413),o=n(72791),i=n(60364),r=n(26181),l=n.n(r),c=n(11135),s=n(25787),d=n(23814),u=n(92983),m=n(80184),p=(0,i.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo,logEnabled:l()(e.tenants.tenantDetails.tenantInfo,"logEnabled",!1),monitoringEnabled:l()(e.tenants.tenantDetails.tenantInfo,"monitoringEnabled",!1),encryptionEnabled:l()(e.tenants.tenantDetails.tenantInfo,"encryptionEnabled",!1),minioTLS:l()(e.tenants.tenantDetails.tenantInfo,"minioTLS",!1),consoleTLS:l()(e.tenants.tenantDetails.tenantInfo,"consoleTLS",!1),consoleEnabled:l()(e.tenants.tenantDetails.tenantInfo,"consoleEnabled",!1),adEnabled:l()(e.tenants.tenantDetails.tenantInfo,"idpAdEnabled",!1),oidcEnabled:l()(e.tenants.tenantDetails.tenantInfo,"idpOidcEnabled",!1)}}),null);t.Z=(0,s.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({},d.oZ),{},{centerAlign:{textAlign:"center"},listHeight:{height:"50"}},(0,d.Bz)(e.spacing(4))))}))(p((function(e){var t=e.classes,n=e.records,a=e.recordName;return(0,m.jsx)(o.Fragment,{children:(0,m.jsx)(u.Z,{columns:[{label:"Key",elementKey:"key"},{label:"Value",elementKey:"value"}],isLoading:!1,records:n,itemActions:[],entityName:a,idField:"name",customPaperHeight:t.listHeight})})})))},42419:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),i=n(80184),r=(0,o.default)((0,i.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");t.Z=r},26759:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),i=n(80184),r=(0,o.default)((0,i.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=r},70366:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),i=n(80184),r=(0,o.default)((0,i.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=r},29823:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),i=n(80184),r=(0,o.default)((0,i.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");t.Z=r},27247:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),i=n(80184),r=(0,o.default)((0,i.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");t.Z=r},97911:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),i=n(80184),r=(0,o.default)((0,i.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=r},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return z}});var a=n(4942),o=n(63366),i=n(87462),r=n(72791),l=n(90767),c=n(12065),s=n(97278),d=n(76189),u=n(80184),m=(0,d.Z)((0,u.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),p=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),v=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox"),f=n(14036),h=n(93736),x=n(47630),Z=n(95159);function g(e){return(0,Z.Z)("MuiCheckbox",e)}var y=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),k=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],j=(0,x.ZP)(s.Z,{shouldForwardProp:function(e){return(0,x.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.indeterminate&&t.indeterminate,"default"!==n.color&&t["color".concat((0,f.Z)(n.color))]]}})((function(e){var t,n=e.theme,o=e.ownerState;return(0,i.Z)({color:n.palette.text.secondary},!o.disableRipple&&{"&:hover":{backgroundColor:(0,c.Fq)("default"===o.color?n.palette.action.active:n.palette[o.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==o.color&&(t={},(0,a.Z)(t,"&.".concat(y.checked,", &.").concat(y.indeterminate),{color:n.palette[o.color].main}),(0,a.Z)(t,"&.".concat(y.disabled),{color:n.palette.action.disabled}),t))})),b=(0,u.jsx)(p,{}),C=(0,u.jsx)(m,{}),S=(0,u.jsx)(v,{}),z=r.forwardRef((function(e,t){var n,a,c=(0,h.Z)({props:e,name:"MuiCheckbox"}),s=c.checkedIcon,d=void 0===s?b:s,m=c.color,p=void 0===m?"primary":m,v=c.icon,x=void 0===v?C:v,Z=c.indeterminate,y=void 0!==Z&&Z,z=c.indeterminateIcon,M=void 0===z?S:z,N=c.inputProps,w=c.size,E=void 0===w?"medium":w,I=(0,o.Z)(c,k),D=y?M:x,B=y?M:d,H=(0,i.Z)({},c,{color:p,indeterminate:y,size:E}),P=function(e){var t=e.classes,n=e.indeterminate,a=e.color,o={root:["root",n&&"indeterminate","color".concat((0,f.Z)(a))]},r=(0,l.Z)(o,g,t);return(0,i.Z)({},t,r)}(H);return(0,u.jsx)(j,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":y},N),icon:r.cloneElement(D,{fontSize:null!=(n=D.props.fontSize)?n:E}),checkedIcon:r.cloneElement(B,{fontSize:null!=(a=B.props.fontSize)?a:E}),ownerState:H,ref:t},I,{classes:P}))}))},26769:function(e,t,n){var a=n(39066),o=n(93629),i=n(43141);e.exports=function(e){return"string"==typeof e||!o(e)&&i(e)&&"[object String]"==a(e)}}}]); +//# sourceMappingURL=5662.19eb0698.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5662.19eb0698.chunk.js.map b/portal-ui/build/static/js/5662.19eb0698.chunk.js.map new file mode 100644 index 000000000..c3c265ece --- /dev/null +++ b/portal-ui/build/static/js/5662.19eb0698.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/5662.19eb0698.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Tenants/TenantDetails/KeyPairEdit.tsx","screens/Console/Tenants/TenantDetails/KeyPairView.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/Delete.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/lodash/isString.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","import React, { Fragment, useEffect } from \"react\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport { modalBasic } from \"../../Common/FormComponents/common/styleLibrary\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { IconButton, Tooltip } from \"@mui/material\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport { IKeyValue } from \"../ListTenants/types\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../utils\";\n\ninterface IKeyPairEditProps {\n classes: any;\n paramName: string;\n error: any;\n setError: (e: any) => void;\n newValues: IKeyValue[];\n setNewValues: (vals: IKeyValue[]) => void;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n multiContainer: {\n display: \"flex\",\n alignItems: \"center\" as const,\n justifyContent: \"flex-start\" as const,\n },\n sizeFactorContainer: {\n marginLeft: 8,\n },\n bottomContainer: {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n \"& div\": {\n flexGrow: 1,\n width: \"100%\",\n },\n },\n factorElements: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n },\n sizeNumber: {\n fontSize: 35,\n fontWeight: 700,\n textAlign: \"center\",\n },\n sizeDescription: {\n fontSize: 14,\n color: \"#777\",\n textAlign: \"center\",\n },\n shortened: {\n gridTemplateColumns: \"auto auto 20px 20px\",\n display: \"grid\",\n gridGap: 20,\n paddingRight: 20,\n },\n ...modalBasic,\n });\n\nconst KeyPairEdit = ({\n classes,\n paramName,\n newValues,\n setNewValues,\n error,\n setError,\n}: IKeyPairEditProps) => {\n const cleanValidation = (fieldName: string) => {\n setError(clearValidationError(error, fieldName));\n };\n\n useEffect(() => {\n let keyPairValidation: IValidation[] = [];\n\n for (var i = 0; i < newValues.length; i++) {\n keyPairValidation.push({\n fieldKey: `key-${i.toString()}`,\n required: false,\n value: newValues[i].key,\n pattern: /^[a-zA-Z0-9-_.]{1,63}$/,\n customPatternMessage: \"Invalid key\",\n });\n keyPairValidation.push({\n fieldKey: `val-${i.toString()}`,\n required: false,\n value: newValues[i].value,\n pattern: /^[a-zA-Z0-9-_.]{1,63}$/,\n customPatternMessage: \"Invalid value\",\n });\n }\n\n const commonVal = commonFormValidation(keyPairValidation);\n setError(commonVal);\n }, [newValues, setError]);\n\n let keyValueInputs = newValues.map((_, index) => {\n return (\n \n
    \n {\n let tempLabels = [...newValues];\n tempLabels[index].key = e.target.value;\n setNewValues(tempLabels);\n cleanValidation(`key-${index.toString()}`);\n }}\n index={index}\n key={`csv-key-${index.toString()}`}\n error={error[`key-${index.toString()}`] || \"\"}\n />\n {\n let tempLabels = [...newValues];\n tempLabels[index].value = e.target.value;\n setNewValues(tempLabels);\n cleanValidation(`val-${index.toString()}`);\n }}\n index={index}\n key={`csv-val-${index.toString()}`}\n error={error[`val-${index.toString()}`] || \"\"}\n />\n \n {\n let tempLabels = [...newValues];\n tempLabels.push({ key: \"\", value: \"\" });\n setNewValues(tempLabels);\n }}\n >\n \n \n \n \n {\n if (newValues.length === 1) {\n setNewValues([{ key: \"\", value: \"\" }]);\n }\n if (newValues.length > 1) {\n let tempLabels = [...newValues];\n tempLabels.splice(index, 1);\n setNewValues(tempLabels);\n }\n }}\n >\n \n \n \n
    \n
    \n );\n });\n\n return {keyValueInputs};\n};\n\nexport default withStyles(styles)(KeyPairEdit);\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 { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport { IKeyValue } from \"../ListTenants/types\";\n\ninterface IKeyPairView {\n classes: any;\n records: IKeyValue[];\n recordName: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n centerAlign: {\n textAlign: \"center\",\n },\n listHeight: {\n height: \"50\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst KeyPairView = ({ classes, records, recordName }: IKeyPairView) => {\n return (\n \n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n selectedTenant: state.tenants.tenantDetails.currentTenant,\n tenant: state.tenants.tenantDetails.tenantInfo,\n logEnabled: get(state.tenants.tenantDetails.tenantInfo, \"logEnabled\", false),\n monitoringEnabled: get(\n state.tenants.tenantDetails.tenantInfo,\n \"monitoringEnabled\",\n false\n ),\n encryptionEnabled: get(\n state.tenants.tenantDetails.tenantInfo,\n \"encryptionEnabled\",\n false\n ),\n minioTLS: get(state.tenants.tenantDetails.tenantInfo, \"minioTLS\", false),\n consoleTLS: get(state.tenants.tenantDetails.tenantInfo, \"consoleTLS\", false),\n consoleEnabled: get(\n state.tenants.tenantDetails.tenantInfo,\n \"consoleEnabled\",\n false\n ),\n adEnabled: get(state.tenants.tenantDetails.tenantInfo, \"idpAdEnabled\", false),\n oidcEnabled: get(\n state.tenants.tenantDetails.tenantInfo,\n \"idpOidcEnabled\",\n false\n ),\n});\n\nconst connector = connect(mapState, null);\n\nexport default withStyles(styles)(connector(KeyPairView));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n"],"names":["useStyles","makeStyles","theme","root","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","width","marginLeft","text","classes","onClick","disabled","tooltip","icon","className","restProps","size","sx","border","fontSize","display","withStyles","createStyles","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","title","isLoading","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","titleText","closeContainer","closeButton","disableRipple","content","actions","cancelButton","type","id","confirmButton","loading","loadingPosition","startIcon","autoFocus","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","paddingBottom","customDialogSize","maxWidth","snackBarCommon","modalOpen","children","wideLimit","noContentPadding","useState","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","buttonContainer","textAlign","multiContainer","alignItems","justifyContent","sizeFactorContainer","bottomContainer","flexGrow","factorElements","sizeNumber","fontWeight","sizeDescription","shortened","gridTemplateColumns","gridGap","paddingRight","modalBasic","paramName","newValues","setNewValues","error","setError","cleanValidation","fieldName","clearValidationError","keyPairValidation","i","push","fieldKey","toString","required","value","key","pattern","customPatternMessage","commonVal","commonFormValidation","keyValueInputs","map","_","index","Fragment","label","placeholder","name","onChange","e","tempLabels","target","style","splice","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenant","tenantInfo","logEnabled","get","monitoringEnabled","encryptionEnabled","minioTLS","consoleTLS","consoleEnabled","adEnabled","oidcEnabled","tenantDetailsStyles","centerAlign","listHeight","height","containerForHeader","spacing","records","recordName","columns","elementKey","itemActions","entityName","idField","customPaperHeight","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","createSvgIcon","_jsx","getCheckboxUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CheckboxRoot","styled","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","overridesResolver","styles","ownerState","indeterminate","capitalize","_extends","backgroundColor","alpha","action","active","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","React","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5662.d8af2856.chunk.js b/portal-ui/build/static/js/5662.d8af2856.chunk.js deleted file mode 100644 index 9cf39fa54..000000000 --- a/portal-ui/build/static/js/5662.d8af2856.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5662],{40603:function(e,t,n){"use strict";var a=n(1413),o=n(45987),i=(n(72791),n(85531)),r=n(72455),l=n(80184),c=["onClick","text","disabled","tooltip","icon"],s=(0,r.Z)((function(e){return{root:{padding:"7px",color:function(t){return function(t){var n=t.variant,a=t.color,o=e.palette.primary.main;return"primary"===a&&"contained"===n?o=e.palette.primary.contrastText:"primary"===a&&"outlined"===n?o=e.palette.primary.main:"secondary"===a&&(o=e.palette.secondary.main),o}(t)},borderColor:function(t){return"secondary"===t.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));t.Z=function(e){var t=s(e),n=e.onClick,r=e.text,d=void 0===r?"":r,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,v=e.icon,f=void 0===v?null:v,h=(0,o.Z)(e,c);return(0,l.jsxs)(i.Z,(0,a.Z)((0,a.Z)({classes:t,tooltip:p||d,variant:"outlined",onClick:n,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},h),{},{children:[(0,l.jsx)("span",{children:d})," ",f]}))}},23508:function(e,t,n){"use strict";var a=n(1413),o=n(72791),i=n(5574),r=n(65661),l=n(39157),c=n(97123),s=n(36151),d=n(59860),u=n(13400),m=n(29823),p=n(11135),v=n(25787),f=n(23814),h=n(80184);t.Z=(0,v.Z)((function(e){return(0,p.Z)((0,a.Z)({},f.Qw))}))((function(e){var t=e.isOpen,n=void 0!==t&&t,p=e.onClose,v=e.onCancel,f=e.onConfirm,x=e.classes,Z=void 0===x?{}:x,g=e.title,y=void 0===g?"":g,k=e.isLoading,j=e.confirmationContent,b=e.cancelText,C=void 0===b?"Cancel":b,S=e.confirmText,z=void 0===S?"Confirm":S,M=e.confirmButtonProps,w=void 0===M?{}:M,N=e.cancelButtonProps,E=void 0===N?{}:N,I=e.titleIcon,D=void 0===I?null:I;return(0,h.jsxs)(i.Z,{open:n,onClose:function(e,t){"backdropClick"!==t&&p()},className:Z.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(r.Z,{className:Z.title,children:[(0,h.jsxs)("div",{className:Z.titleText,children:[D," ",y]}),(0,h.jsx)("div",{className:Z.closeContainer,children:(0,h.jsx)(u.Z,{"aria-label":"close",className:Z.closeButton,onClick:p,disableRipple:!0,size:"small",children:(0,h.jsx)(m.Z,{})})})]}),(0,h.jsx)(l.Z,{className:Z.content,children:j}),(0,h.jsxs)(c.Z,{className:Z.actions,children:[(0,h.jsx)(s.Z,(0,a.Z)((0,a.Z)({className:Z.cancelButton,onClick:v||p,disabled:k,type:"button"},E),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:C})),(0,h.jsx)(d.Z,(0,a.Z)((0,a.Z)({className:Z.confirmButton,type:"button",onClick:f,loading:k,disabled:k,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(o.Fragment,{}),autoFocus:!0,id:"confirm-ok"},w),{},{children:z}))]})]})}))},56028:function(e,t,n){"use strict";var a=n(70885),o=n(1413),i=n(72791),r=n(60364),l=n(13400),c=n(55646),s=n(5574),d=n(65661),u=n(39157),m=n(11135),p=n(25787),v=n(23814),f=n(42649),h=n(29823),x=n(28057),Z=n(80184),g=(0,r.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:f.MK});t.Z=(0,p.Z)((function(e){return(0,m.Z)((0,o.Z)((0,o.Z)({},v.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},v.sN))}))(g((function(e){var t=e.onClose,n=e.modalOpen,r=e.title,m=e.children,p=e.classes,v=e.wideLimit,f=void 0===v||v,g=e.modalSnackMessage,y=e.noContentPadding,k=e.setModalSnackMessage,j=e.titleIcon,b=void 0===j?null:j,C=(0,i.useState)(!1),S=(0,a.Z)(C,2),z=S[0],M=S[1];(0,i.useEffect)((function(){k("")}),[k]),(0,i.useEffect)((function(){if(g){if(""===g.message)return void M(!1);"error"!==g.type&&M(!0)}}),[g]);var w=f?{classes:{paper:p.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},N="";return g&&(N=g.detailedErrorMsg,(""===g.detailedErrorMsg||g.detailedErrorMsg.length<5)&&(N=g.message)),(0,Z.jsxs)(s.Z,(0,o.Z)((0,o.Z)({open:n,classes:p},w),{},{scroll:"paper",onClose:function(e,n){"backdropClick"!==n&&t()},className:p.root,children:[(0,Z.jsxs)(d.Z,{className:p.title,children:[(0,Z.jsxs)("div",{className:p.titleText,children:[b," ",r]}),(0,Z.jsx)("div",{className:p.closeContainer,children:(0,Z.jsx)(l.Z,{"aria-label":"close",id:"close",className:p.closeButton,onClick:t,disableRipple:!0,size:"small",children:(0,Z.jsx)(h.Z,{})})})]}),(0,Z.jsx)(x.Z,{isModal:!0}),(0,Z.jsx)(c.Z,{open:z,className:p.snackBarModal,onClose:function(){M(!1),k("")},message:N,ContentProps:{className:"".concat(p.snackBar," ").concat(g&&"error"===g.type?p.errorSnackBar:"")},autoHideDuration:g&&"error"===g.type?1e4:5e3}),(0,Z.jsx)(u.Z,{className:y?"":p.content,children:m})]}))})))},32509:function(e,t,n){"use strict";var a=n(42982),o=n(1413),i=n(72791),r=n(11135),l=n(25787),c=n(23814),s=n(21435),d=n(20068),u=n(13400),m=n(42419),p=n(27247),v=n(40968),f=n(84741),h=n(80184);t.Z=(0,l.Z)((function(e){return(0,r.Z)((0,o.Z)({buttonContainer:{textAlign:"right"},multiContainer:{display:"flex",alignItems:"center",justifyContent:"flex-start"},sizeFactorContainer:{marginLeft:8},bottomContainer:{display:"flex",flexGrow:1,alignItems:"center","& div":{flexGrow:1,width:"100%"}},factorElements:{display:"flex",justifyContent:"flex-start"},sizeNumber:{fontSize:35,fontWeight:700,textAlign:"center"},sizeDescription:{fontSize:14,color:"#777",textAlign:"center"},shortened:{gridTemplateColumns:"auto auto 20px 20px",display:"grid",gridGap:20,paddingRight:20}},c.oO))}))((function(e){var t=e.classes,n=e.paramName,o=e.newValues,r=e.setNewValues,l=e.error,c=e.setError,x=function(e){c((0,f.h)(l,e))};(0,i.useEffect)((function(){for(var e=[],t=0;t1){var e=(0,a.Z)(o);e.splice(c,1),r(e)}},children:(0,h.jsx)(p.Z,{})})})]})},"keyvalue-".concat(c.toString()))}));return(0,h.jsx)(i.Fragment,{children:Z})}))},47879:function(e,t,n){"use strict";var a=n(1413),o=n(72791),i=n(60364),r=n(26181),l=n.n(r),c=n(11135),s=n(25787),d=n(23814),u=n(92983),m=n(80184),p=(0,i.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo,logEnabled:l()(e.tenants.tenantDetails.tenantInfo,"logEnabled",!1),monitoringEnabled:l()(e.tenants.tenantDetails.tenantInfo,"monitoringEnabled",!1),encryptionEnabled:l()(e.tenants.tenantDetails.tenantInfo,"encryptionEnabled",!1),minioTLS:l()(e.tenants.tenantDetails.tenantInfo,"minioTLS",!1),consoleTLS:l()(e.tenants.tenantDetails.tenantInfo,"consoleTLS",!1),consoleEnabled:l()(e.tenants.tenantDetails.tenantInfo,"consoleEnabled",!1),adEnabled:l()(e.tenants.tenantDetails.tenantInfo,"idpAdEnabled",!1),oidcEnabled:l()(e.tenants.tenantDetails.tenantInfo,"idpOidcEnabled",!1)}}),null);t.Z=(0,s.Z)((function(e){return(0,c.Z)((0,a.Z)((0,a.Z)({},d.oZ),{},{centerAlign:{textAlign:"center"},listHeight:{height:"50"}},(0,d.Bz)(e.spacing(4))))}))(p((function(e){var t=e.classes,n=e.records,a=e.recordName;return(0,m.jsx)(o.Fragment,{children:(0,m.jsx)(u.Z,{columns:[{label:"Key",elementKey:"key"},{label:"Value",elementKey:"value"}],isLoading:!1,records:n,itemActions:[],entityName:a,idField:"name",customPaperHeight:t.listHeight})})})))},42419:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),i=n(80184),r=(0,o.default)((0,i.jsx)("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");t.Z=r},26759:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),i=n(80184),r=(0,o.default)((0,i.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=r},70366:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),i=n(80184),r=(0,o.default)((0,i.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=r},29823:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),i=n(80184),r=(0,o.default)((0,i.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");t.Z=r},27247:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),i=n(80184),r=(0,o.default)((0,i.jsx)("path",{d:"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z"}),"Delete");t.Z=r},97911:function(e,t,n){"use strict";var a=n(95318);t.Z=void 0;var o=a(n(45649)),i=n(80184),r=(0,o.default)((0,i.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=r},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return z}});var a=n(4942),o=n(63366),i=n(87462),r=n(72791),l=n(90767),c=n(12065),s=n(97278),d=n(76189),u=n(80184),m=(0,d.Z)((0,u.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),p=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),v=(0,d.Z)((0,u.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox"),f=n(14036),h=n(93736),x=n(47630),Z=n(95159);function g(e){return(0,Z.Z)("MuiCheckbox",e)}var y=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),k=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],j=(0,x.ZP)(s.Z,{shouldForwardProp:function(e){return(0,x.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.indeterminate&&t.indeterminate,"default"!==n.color&&t["color".concat((0,f.Z)(n.color))]]}})((function(e){var t,n=e.theme,o=e.ownerState;return(0,i.Z)({color:n.palette.text.secondary},!o.disableRipple&&{"&:hover":{backgroundColor:(0,c.Fq)("default"===o.color?n.palette.action.active:n.palette[o.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==o.color&&(t={},(0,a.Z)(t,"&.".concat(y.checked,", &.").concat(y.indeterminate),{color:n.palette[o.color].main}),(0,a.Z)(t,"&.".concat(y.disabled),{color:n.palette.action.disabled}),t))})),b=(0,u.jsx)(p,{}),C=(0,u.jsx)(m,{}),S=(0,u.jsx)(v,{}),z=r.forwardRef((function(e,t){var n,a,c=(0,h.Z)({props:e,name:"MuiCheckbox"}),s=c.checkedIcon,d=void 0===s?b:s,m=c.color,p=void 0===m?"primary":m,v=c.icon,x=void 0===v?C:v,Z=c.indeterminate,y=void 0!==Z&&Z,z=c.indeterminateIcon,M=void 0===z?S:z,w=c.inputProps,N=c.size,E=void 0===N?"medium":N,I=(0,o.Z)(c,k),D=y?M:x,B=y?M:d,H=(0,i.Z)({},c,{color:p,indeterminate:y,size:E}),P=function(e){var t=e.classes,n=e.indeterminate,a=e.color,o={root:["root",n&&"indeterminate","color".concat((0,f.Z)(a))]},r=(0,l.Z)(o,g,t);return(0,i.Z)({},t,r)}(H);return(0,u.jsx)(j,(0,i.Z)({type:"checkbox",inputProps:(0,i.Z)({"data-indeterminate":y},w),icon:r.cloneElement(D,{fontSize:null!=(n=D.props.fontSize)?n:E}),checkedIcon:r.cloneElement(B,{fontSize:null!=(a=B.props.fontSize)?a:E}),ownerState:H,ref:t},I,{classes:P}))}))},26769:function(e,t,n){var a=n(39066),o=n(93629),i=n(43141);e.exports=function(e){return"string"==typeof e||!o(e)&&i(e)&&"[object String]"==a(e)}}}]); -//# sourceMappingURL=5662.d8af2856.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5662.d8af2856.chunk.js.map b/portal-ui/build/static/js/5662.d8af2856.chunk.js.map deleted file mode 100644 index cdc69ba43..000000000 --- a/portal-ui/build/static/js/5662.d8af2856.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/5662.d8af2856.chunk.js","mappings":"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","sources":["screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Tenants/TenantDetails/KeyPairEdit.tsx","screens/Console/Tenants/TenantDetails/KeyPairView.tsx","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/Delete.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/lodash/isString.js"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","import React, { Fragment, useEffect } from \"react\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport { modalBasic } from \"../../Common/FormComponents/common/styleLibrary\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { IconButton, Tooltip } from \"@mui/material\";\nimport AddIcon from \"@mui/icons-material/Add\";\nimport DeleteIcon from \"@mui/icons-material/Delete\";\nimport { IKeyValue } from \"../ListTenants/types\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport { clearValidationError } from \"../utils\";\n\ninterface IKeyPairEditProps {\n classes: any;\n paramName: string;\n error: any;\n setError: (e: any) => void;\n newValues: IKeyValue[];\n setNewValues: (vals: IKeyValue[]) => void;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n multiContainer: {\n display: \"flex\",\n alignItems: \"center\" as const,\n justifyContent: \"flex-start\" as const,\n },\n sizeFactorContainer: {\n marginLeft: 8,\n },\n bottomContainer: {\n display: \"flex\",\n flexGrow: 1,\n alignItems: \"center\",\n \"& div\": {\n flexGrow: 1,\n width: \"100%\",\n },\n },\n factorElements: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n },\n sizeNumber: {\n fontSize: 35,\n fontWeight: 700,\n textAlign: \"center\",\n },\n sizeDescription: {\n fontSize: 14,\n color: \"#777\",\n textAlign: \"center\",\n },\n shortened: {\n gridTemplateColumns: \"auto auto 20px 20px\",\n display: \"grid\",\n gridGap: 20,\n paddingRight: 20,\n },\n ...modalBasic,\n });\n\nconst KeyPairEdit = ({\n classes,\n paramName,\n newValues,\n setNewValues,\n error,\n setError,\n}: IKeyPairEditProps) => {\n const cleanValidation = (fieldName: string) => {\n setError(clearValidationError(error, fieldName));\n };\n\n useEffect(() => {\n let keyPairValidation: IValidation[] = [];\n\n for (var i = 0; i < newValues.length; i++) {\n keyPairValidation.push({\n fieldKey: `key-${i.toString()}`,\n required: false,\n value: newValues[i].key,\n pattern: /^[a-zA-Z0-9-_.]{1,63}$/,\n customPatternMessage: \"Invalid key\",\n });\n keyPairValidation.push({\n fieldKey: `val-${i.toString()}`,\n required: false,\n value: newValues[i].value,\n pattern: /^[a-zA-Z0-9-_.]{1,63}$/,\n customPatternMessage: \"Invalid value\",\n });\n }\n\n const commonVal = commonFormValidation(keyPairValidation);\n setError(commonVal);\n }, [newValues, setError]);\n\n let keyValueInputs = newValues.map((_, index) => {\n return (\n \n
    \n {\n let tempLabels = [...newValues];\n tempLabels[index].key = e.target.value;\n setNewValues(tempLabels);\n cleanValidation(`key-${index.toString()}`);\n }}\n index={index}\n key={`csv-key-${index.toString()}`}\n error={error[`key-${index.toString()}`] || \"\"}\n />\n {\n let tempLabels = [...newValues];\n tempLabels[index].value = e.target.value;\n setNewValues(tempLabels);\n cleanValidation(`val-${index.toString()}`);\n }}\n index={index}\n key={`csv-val-${index.toString()}`}\n error={error[`val-${index.toString()}`] || \"\"}\n />\n \n {\n let tempLabels = [...newValues];\n tempLabels.push({ key: \"\", value: \"\" });\n setNewValues(tempLabels);\n }}\n >\n \n \n \n \n {\n if (newValues.length === 1) {\n setNewValues([{ key: \"\", value: \"\" }]);\n }\n if (newValues.length > 1) {\n let tempLabels = [...newValues];\n tempLabels.splice(index, 1);\n setNewValues(tempLabels);\n }\n }}\n >\n \n \n \n
    \n
    \n );\n });\n\n return {keyValueInputs};\n};\n\nexport default withStyles(styles)(KeyPairEdit);\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 { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport {\n containerForHeader,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport { IKeyValue } from \"../ListTenants/types\";\n\ninterface IKeyPairView {\n classes: any;\n records: IKeyValue[];\n recordName: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n centerAlign: {\n textAlign: \"center\",\n },\n listHeight: {\n height: \"50\",\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst KeyPairView = ({ classes, records, recordName }: IKeyPairView) => {\n return (\n \n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n selectedTenant: state.tenants.tenantDetails.currentTenant,\n tenant: state.tenants.tenantDetails.tenantInfo,\n logEnabled: get(state.tenants.tenantDetails.tenantInfo, \"logEnabled\", false),\n monitoringEnabled: get(\n state.tenants.tenantDetails.tenantInfo,\n \"monitoringEnabled\",\n false\n ),\n encryptionEnabled: get(\n state.tenants.tenantDetails.tenantInfo,\n \"encryptionEnabled\",\n false\n ),\n minioTLS: get(state.tenants.tenantDetails.tenantInfo, \"minioTLS\", false),\n consoleTLS: get(state.tenants.tenantDetails.tenantInfo, \"consoleTLS\", false),\n consoleEnabled: get(\n state.tenants.tenantDetails.tenantInfo,\n \"consoleEnabled\",\n false\n ),\n adEnabled: get(state.tenants.tenantDetails.tenantInfo, \"idpAdEnabled\", false),\n oidcEnabled: get(\n state.tenants.tenantDetails.tenantInfo,\n \"idpOidcEnabled\",\n false\n ),\n});\n\nconst connector = connect(mapState, null);\n\nexport default withStyles(styles)(connector(KeyPairView));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M6 19c0 1.1.9 2 2 2h8c1.1 0 2-.9 2-2V7H6v12zM19 4h-3.5l-1-1h-5l-1 1H5v2h14V4z\"\n}), 'Delete');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n"],"names":["useStyles","makeStyles","theme","root","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","width","marginLeft","text","classes","onClick","disabled","tooltip","icon","restProps","size","sx","border","fontSize","display","withStyles","createStyles","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","title","isLoading","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","className","titleText","closeContainer","closeButton","disableRipple","content","actions","cancelButton","type","id","confirmButton","loading","loadingPosition","startIcon","autoFocus","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","paddingBottom","customDialogSize","maxWidth","snackBarCommon","modalOpen","children","wideLimit","noContentPadding","useState","openSnackbar","setOpenSnackbar","useEffect","message","customSize","paper","fullWidth","detailedErrorMsg","length","scroll","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","buttonContainer","textAlign","multiContainer","alignItems","justifyContent","sizeFactorContainer","bottomContainer","flexGrow","factorElements","sizeNumber","fontWeight","sizeDescription","shortened","gridTemplateColumns","gridGap","paddingRight","modalBasic","paramName","newValues","setNewValues","error","setError","cleanValidation","fieldName","clearValidationError","keyPairValidation","i","push","fieldKey","toString","required","value","key","pattern","customPatternMessage","commonVal","commonFormValidation","keyValueInputs","map","_","index","Fragment","label","placeholder","name","onChange","e","tempLabels","target","style","splice","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenant","tenantInfo","logEnabled","get","monitoringEnabled","encryptionEnabled","minioTLS","consoleTLS","consoleEnabled","adEnabled","oidcEnabled","tenantDetailsStyles","centerAlign","listHeight","height","containerForHeader","spacing","records","recordName","columns","elementKey","itemActions","entityName","idField","customPaperHeight","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","createSvgIcon","_jsx","getCheckboxUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CheckboxRoot","styled","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","overridesResolver","styles","ownerState","indeterminate","capitalize","_extends","backgroundColor","alpha","action","active","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","React","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","baseGetTag","isArray","isObjectLike","module"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/5926.6eebc955.chunk.js b/portal-ui/build/static/js/5926.780bfa30.chunk.js similarity index 97% rename from portal-ui/build/static/js/5926.6eebc955.chunk.js rename to portal-ui/build/static/js/5926.780bfa30.chunk.js index cdb9524fa..66464e896 100644 --- a/portal-ui/build/static/js/5926.6eebc955.chunk.js +++ b/portal-ui/build/static/js/5926.780bfa30.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5926],{65926:function(e,t,n){n.r(t),n.d(t,{default:function(){return b}});var o=n(72791),i=n(60364),a=n(11135),r=n(25787),s=n(20068),c=n(13400),l=n(3925),d=n(74833),h=n(4942),p=n(87998),u=n(28182),m=n(80184),x=(0,r.Z)((function(e){return(0,a.Z)({container:{borderBottom:"#E2E2E2 1px solid",padding:"15px 5px",margin:"0 15px",position:"relative","& .showOnHover":{opacity:0,transitionDuration:"0.2s"},"&.inProgress":{"& .hideOnProgress":{visibility:"hidden"}},"&:hover":{"& .showOnHover":{opacity:1}}},headItem:{color:"#868686",fontSize:12,width:"100%",whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"},progressContainer:{marginTop:5},objectDetails:{display:"flex",alignItems:"center"},iconContainer:{paddingTop:5,marginRight:5,"& svg":{width:20,height:20}},download:{color:"rgb(113,200,150)"},upload:{color:"rgb(66,127,172)"},closeIcon:{"&::before":{width:1,height:12,content:"' '",position:"absolute",transform:"rotate(45deg)",borderLeft:"#9c9c9c 2px solid"},"&::after":{width:1,height:12,content:"' '",position:"absolute",transform:"rotate(-45deg)",borderLeft:"#9c9c9c 2px solid"}},closeButton:{backgroundColor:"transparent",border:0,right:0,position:"absolute"},fileName:{width:230}})}))((function(e){var t,n=e.classes,i=e.objectToDisplay,a=e.deleteFromList,r="".concat(i.prefix);return(0,m.jsx)(o.Fragment,{children:(0,m.jsxs)("div",{className:"".concat(n.container," ").concat(100!==i.percentage?"inProgress":""),children:[(0,m.jsx)("div",{className:n.clearListIcon,children:(0,m.jsx)("button",{onClick:function(){a(i.instanceID)},className:"".concat(n.closeButton," hideOnProgress showOnHover"),disabled:100!==i.percentage,children:(0,m.jsx)("span",{className:n.closeIcon})})}),(0,m.jsxs)("div",{className:n.objectDetails,children:[(0,m.jsx)("div",{className:(0,u.Z)(n.iconContainer,(t={},(0,h.Z)(t,n.download,"download"===i.type),(0,h.Z)(t,n.upload,"download"!==i.type),t)),children:"download"===i.type?(0,m.jsx)(d.Q_,{}):(0,m.jsx)(d.jh,{})}),(0,m.jsxs)("div",{className:n.fileName,children:[(0,m.jsxs)("div",{className:n.headItem,children:[(0,m.jsx)("strong",{children:"Bucket: "}),i.bucketName]}),(0,m.jsx)(s.Z,{title:r,placement:"top-start",children:(0,m.jsx)("div",{className:n.headItem,children:r})})]})]}),(0,m.jsx)("div",{className:n.progressContainer,children:i.waitingForFile?(0,m.jsx)(p.Z,{indeterminate:!0,value:0,ready:!1}):(0,m.jsx)(p.Z,{value:i.percentage,ready:i.done,withLabel:!0})})]})})})),g=(0,i.$j)((function(e){return{objects:e.objectBrowser.objectManager.objectsToManage,managerOpen:e.objectBrowser.objectManager.managerOpen}}),{deleteFromList:l.lF,cleanList:l.XH}),b=(0,r.Z)((function(e){return(0,a.Z)({downloadContainer:{border:"#EAEDEE 1px solid",boxShadow:"rgba(0, 0, 0, 0.08) 0 3px 10px",backgroundColor:"#fff",position:"absolute",right:0,top:80,width:300,overflowY:"hidden",overflowX:"hidden",borderRadius:3,zIndex:1e3,padding:0,height:0,transitionDuration:"0.3s",visibility:"hidden","&.open":{visibility:"visible",minHeight:400}},title:{fontSize:14,fontWeight:"bold",textAlign:"center",marginBottom:5,paddingBottom:12,borderBottom:"#E2E2E2 1px solid",margin:"15px 15px 5px 15px"},actionsContainer:{overflowY:"auto",overflowX:"hidden",minHeight:250,maxHeight:335,width:"100%",display:"flex",flexDirection:"column"},cleanIcon:{position:"absolute",right:14,top:12},cleanButton:{"& svg":{width:20}}})}))(g((function(e){var t=e.objects,n=e.classes,i=e.managerOpen,a=e.deleteFromList,r=e.cleanList;return(0,m.jsx)(o.Fragment,{children:i&&(0,m.jsxs)("div",{className:"".concat(n.downloadContainer," ").concat(i?"open":""),children:[(0,m.jsx)("div",{className:n.cleanIcon,children:(0,m.jsx)(s.Z,{title:"Clean Completed Objects",placement:"bottom-start",children:(0,m.jsx)(c.Z,{"aria-label":"Clear Completed List",size:"small",onClick:r,className:n.cleanButton,children:(0,m.jsx)(d.XH,{})})})}),(0,m.jsx)("div",{className:n.title,children:"Downloads / Uploads"}),(0,m.jsx)("div",{className:n.actionsContainer,children:t.map((function(e,t){return(0,m.jsx)(x,{objectToDisplay:e,deleteFromList:a},"object-handled-".concat(e.instanceID))}))})]})})})))},87998:function(e,t,n){var o=n(1413),i=n(4942),a=(n(72791),n(47630)),r=n(40986),s=n(78917),c=n(64554),l=n(80184),d=(0,a.ZP)(r.Z)((function(){var e;return e={height:10,borderRadius:5},(0,i.Z)(e,"&.".concat(s.Z.colorPrimary),{backgroundColor:"#f1f1f1"}),(0,i.Z)(e,"& .".concat(s.Z.bar),{borderRadius:5}),e})),h=(0,a.ZP)(d)((function(){return(0,i.Z)({height:6,borderRadius:3},"& .".concat(s.Z.bar),{borderRadius:3})}));function p(e){return(0,l.jsxs)(c.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,l.jsx)(c.Z,{sx:{width:"100%",mr:1},children:(0,l.jsx)(d,(0,o.Z)({variant:"determinate"},e))}),(0,l.jsx)(c.Z,{sx:{minWidth:35,fontSize:14},className:"value",children:"".concat(Math.round(e.value||0),"%")})]})}t.Z=function(e){var t=e.value,n=e.ready,i=e.indeterminate,a=e.withLabel,r=e.size,s=void 0===r?"regular":r,c={variant:i&&!n?"indeterminate":"determinate",value:n?100:t,color:100===t&&n?"success":100!==t||n?"primary":"error"};return a?(0,l.jsx)(p,(0,o.Z)({},c)):"small"===s?(0,l.jsx)(h,(0,o.Z)({},c)):(0,l.jsx)(d,(0,o.Z)({},c))}}}]); -//# sourceMappingURL=5926.6eebc955.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[5926],{65926:function(e,t,n){n.r(t),n.d(t,{default:function(){return b}});var o=n(72791),i=n(60364),a=n(11135),r=n(25787),s=n(20068),c=n(13400),l=n(3925),d=n(13048),h=n(4942),p=n(87998),u=n(28182),m=n(80184),x=(0,r.Z)((function(e){return(0,a.Z)({container:{borderBottom:"#E2E2E2 1px solid",padding:"15px 5px",margin:"0 15px",position:"relative","& .showOnHover":{opacity:0,transitionDuration:"0.2s"},"&.inProgress":{"& .hideOnProgress":{visibility:"hidden"}},"&:hover":{"& .showOnHover":{opacity:1}}},headItem:{color:"#868686",fontSize:12,width:"100%",whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"},progressContainer:{marginTop:5},objectDetails:{display:"flex",alignItems:"center"},iconContainer:{paddingTop:5,marginRight:5,"& svg":{width:20,height:20}},download:{color:"rgb(113,200,150)"},upload:{color:"rgb(66,127,172)"},closeIcon:{"&::before":{width:1,height:12,content:"' '",position:"absolute",transform:"rotate(45deg)",borderLeft:"#9c9c9c 2px solid"},"&::after":{width:1,height:12,content:"' '",position:"absolute",transform:"rotate(-45deg)",borderLeft:"#9c9c9c 2px solid"}},closeButton:{backgroundColor:"transparent",border:0,right:0,position:"absolute"},fileName:{width:230}})}))((function(e){var t,n=e.classes,i=e.objectToDisplay,a=e.deleteFromList,r="".concat(i.prefix);return(0,m.jsx)(o.Fragment,{children:(0,m.jsxs)("div",{className:"".concat(n.container," ").concat(100!==i.percentage?"inProgress":""),children:[(0,m.jsx)("div",{className:n.clearListIcon,children:(0,m.jsx)("button",{onClick:function(){a(i.instanceID)},className:"".concat(n.closeButton," hideOnProgress showOnHover"),disabled:100!==i.percentage,children:(0,m.jsx)("span",{className:n.closeIcon})})}),(0,m.jsxs)("div",{className:n.objectDetails,children:[(0,m.jsx)("div",{className:(0,u.Z)(n.iconContainer,(t={},(0,h.Z)(t,n.download,"download"===i.type),(0,h.Z)(t,n.upload,"download"!==i.type),t)),children:"download"===i.type?(0,m.jsx)(d.Q_,{}):(0,m.jsx)(d.jh,{})}),(0,m.jsxs)("div",{className:n.fileName,children:[(0,m.jsxs)("div",{className:n.headItem,children:[(0,m.jsx)("strong",{children:"Bucket: "}),i.bucketName]}),(0,m.jsx)(s.Z,{title:r,placement:"top-start",children:(0,m.jsx)("div",{className:n.headItem,children:r})})]})]}),(0,m.jsx)("div",{className:n.progressContainer,children:i.waitingForFile?(0,m.jsx)(p.Z,{indeterminate:!0,value:0,ready:!1}):(0,m.jsx)(p.Z,{value:i.percentage,ready:i.done,withLabel:!0})})]})})})),g=(0,i.$j)((function(e){return{objects:e.objectBrowser.objectManager.objectsToManage,managerOpen:e.objectBrowser.objectManager.managerOpen}}),{deleteFromList:l.lF,cleanList:l.XH}),b=(0,r.Z)((function(e){return(0,a.Z)({downloadContainer:{border:"#EAEDEE 1px solid",boxShadow:"rgba(0, 0, 0, 0.08) 0 3px 10px",backgroundColor:"#fff",position:"absolute",right:0,top:80,width:300,overflowY:"hidden",overflowX:"hidden",borderRadius:3,zIndex:1e3,padding:0,height:0,transitionDuration:"0.3s",visibility:"hidden","&.open":{visibility:"visible",minHeight:400}},title:{fontSize:14,fontWeight:"bold",textAlign:"center",marginBottom:5,paddingBottom:12,borderBottom:"#E2E2E2 1px solid",margin:"15px 15px 5px 15px"},actionsContainer:{overflowY:"auto",overflowX:"hidden",minHeight:250,maxHeight:335,width:"100%",display:"flex",flexDirection:"column"},cleanIcon:{position:"absolute",right:14,top:12},cleanButton:{"& svg":{width:20}}})}))(g((function(e){var t=e.objects,n=e.classes,i=e.managerOpen,a=e.deleteFromList,r=e.cleanList;return(0,m.jsx)(o.Fragment,{children:i&&(0,m.jsxs)("div",{className:"".concat(n.downloadContainer," ").concat(i?"open":""),children:[(0,m.jsx)("div",{className:n.cleanIcon,children:(0,m.jsx)(s.Z,{title:"Clean Completed Objects",placement:"bottom-start",children:(0,m.jsx)(c.Z,{"aria-label":"Clear Completed List",size:"small",onClick:r,className:n.cleanButton,children:(0,m.jsx)(d.XH,{})})})}),(0,m.jsx)("div",{className:n.title,children:"Downloads / Uploads"}),(0,m.jsx)("div",{className:n.actionsContainer,children:t.map((function(e,t){return(0,m.jsx)(x,{objectToDisplay:e,deleteFromList:a},"object-handled-".concat(e.instanceID))}))})]})})})))},87998:function(e,t,n){var o=n(1413),i=n(4942),a=(n(72791),n(47630)),r=n(40986),s=n(78917),c=n(64554),l=n(80184),d=(0,a.ZP)(r.Z)((function(){var e;return e={height:10,borderRadius:5},(0,i.Z)(e,"&.".concat(s.Z.colorPrimary),{backgroundColor:"#f1f1f1"}),(0,i.Z)(e,"& .".concat(s.Z.bar),{borderRadius:5}),e})),h=(0,a.ZP)(d)((function(){return(0,i.Z)({height:6,borderRadius:3},"& .".concat(s.Z.bar),{borderRadius:3})}));function p(e){return(0,l.jsxs)(c.Z,{sx:{display:"flex",alignItems:"center"},children:[(0,l.jsx)(c.Z,{sx:{width:"100%",mr:1},children:(0,l.jsx)(d,(0,o.Z)({variant:"determinate"},e))}),(0,l.jsx)(c.Z,{sx:{minWidth:35,fontSize:14},className:"value",children:"".concat(Math.round(e.value||0),"%")})]})}t.Z=function(e){var t=e.value,n=e.ready,i=e.indeterminate,a=e.withLabel,r=e.size,s=void 0===r?"regular":r,c={variant:i&&!n?"indeterminate":"determinate",value:n?100:t,color:100===t&&n?"success":100!==t||n?"primary":"error"};return a?(0,l.jsx)(p,(0,o.Z)({},c)):"small"===s?(0,l.jsx)(h,(0,o.Z)({},c)):(0,l.jsx)(d,(0,o.Z)({},c))}}}]); +//# sourceMappingURL=5926.780bfa30.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/5926.6eebc955.chunk.js.map b/portal-ui/build/static/js/5926.780bfa30.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/5926.6eebc955.chunk.js.map rename to portal-ui/build/static/js/5926.780bfa30.chunk.js.map index d5609bf70..c33bbfaba 100644 --- a/portal-ui/build/static/js/5926.6eebc955.chunk.js.map +++ b/portal-ui/build/static/js/5926.780bfa30.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/5926.6eebc955.chunk.js","mappings":"gSA+KA,GAAeA,EAAAA,EAAAA,IA/IA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,UAAW,CACTC,aAAc,oBACdC,QAAS,WACTC,OAAQ,SACRC,SAAU,WACV,iBAAkB,CAChBC,QAAS,EACTC,mBAAoB,QAEtB,eAAgB,CACd,oBAAqB,CACnBC,WAAY,WAGhB,UAAW,CACT,iBAAkB,CAChBF,QAAS,KAIfG,SAAU,CACRC,MAAO,UACPC,SAAU,GACVC,MAAO,OACPC,WAAY,SACZC,aAAc,WACdC,SAAU,UAEZC,kBAAmB,CACjBC,UAAW,GAEbC,cAAe,CACbC,QAAS,OACTC,WAAY,UAEdC,cAAe,CACbC,WAAY,EACZC,YAAa,EACb,QAAS,CACPX,MAAO,GACPY,OAAQ,KAGZC,SAAU,CACRf,MAAO,oBAETgB,OAAQ,CACNhB,MAAO,mBAETiB,UAAW,CACT,YAAa,CACXf,MAAO,EACPY,OAAQ,GACRI,QAAS,MACTvB,SAAU,WACVwB,UAAW,gBACXC,WAAY,qBAEd,WAAY,CACVlB,MAAO,EACPY,OAAQ,GACRI,QAAS,MACTvB,SAAU,WACVwB,UAAW,iBACXC,WAAY,sBAGhBC,YAAa,CACXC,gBAAiB,cACjBC,OAAQ,EACRC,MAAO,EACP7B,SAAU,YAEZ8B,SAAU,CACRvB,MAAO,SAmEb,EA/DsB,SAAC,GAIA,IAAD,EAHpBwB,EAGoB,EAHpBA,QACAC,EAEoB,EAFpBA,gBACAC,EACoB,EADpBA,eAEMC,EAAM,UAAMF,EAAgBE,QAClC,OACE,SAAC,EAAAC,SAAD,WACE,iBACEC,UAAS,UAAKL,EAAQnC,UAAb,YACwB,MAA/BoC,EAAgBK,WAAqB,aAAe,IAFxD,WAKE,gBAAKD,UAAWL,EAAQO,cAAxB,UACE,mBACEC,QAAS,WACPN,EAAeD,EAAgBQ,aAEjCJ,UAAS,UAAKL,EAAQL,YAAb,+BACTe,SAAyC,MAA/BT,EAAgBK,WAL5B,UAOE,iBAAMD,UAAWL,EAAQT,iBAG7B,iBAAKc,UAAWL,EAAQlB,cAAxB,WACE,gBACEuB,WAAWM,EAAAA,EAAAA,GAAKX,EAAQf,eAAT,eACZe,EAAQX,SAAoC,aAAzBY,EAAgBW,OADvB,SAEZZ,EAAQV,OAAkC,aAAzBW,EAAgBW,MAFrB,IADjB,SAM4B,aAAzBX,EAAgBW,MACf,SAAC,KAAD,KAEA,SAAC,KAAD,OAGJ,iBAAKP,UAAWL,EAAQD,SAAxB,WACE,iBAAKM,UAAWL,EAAQ3B,SAAxB,WACE,yCACC4B,EAAgBY,eAEnB,SAACC,EAAA,EAAD,CAASC,MAAOZ,EAAQa,UAAU,YAAlC,UACE,gBAAKX,UAAWL,EAAQ3B,SAAxB,SAAmC8B,aAIzC,gBAAKE,UAAWL,EAAQpB,kBAAxB,SACGqB,EAAgBgB,gBACf,SAACC,EAAA,EAAD,CAAoBC,eAAa,EAACC,MAAO,EAAGC,OAAO,KAEnD,SAACH,EAAA,EAAD,CACEE,MAAOnB,EAAgBK,WACvBe,MAAOpB,EAAgBqB,KACvBC,WAAS,cC7BjBC,GAAYC,EAAAA,EAAAA,KALD,SAACC,GAAD,MAAsB,CACrCC,QAASD,EAAME,cAAcC,cAAcC,gBAC3CC,YAAaL,EAAME,cAAcC,cAAcE,eAGb,CAAE7B,eAAAA,EAAAA,GAAgB8B,UAAAA,EAAAA,KAEtD,GAAetE,EAAAA,EAAAA,IAvGA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXqE,kBAAmB,CACjBpC,OAAQ,oBACRqC,UAAW,iCACXtC,gBAAiB,OACjB3B,SAAU,WACV6B,MAAO,EACPqC,IAAK,GACL3D,MAAO,IACP4D,UAAW,SACXC,UAAW,SACXC,aAAc,EACdC,OAAQ,IACRxE,QAAS,EACTqB,OAAQ,EACRjB,mBAAoB,OACpBC,WAAY,SACZ,SAAU,CACRA,WAAY,UACZoE,UAAW,MAGfzB,MAAO,CACLxC,SAAU,GACVkE,WAAY,OACZC,UAAW,SACXC,aAAc,EACdC,cAAe,GACf9E,aAAc,oBACdE,OAAQ,sBAEV6E,iBAAkB,CAChBT,UAAW,OACXC,UAAW,SACXG,UAAW,IACXM,UAAW,IACXtE,MAAO,OACPO,QAAS,OACTgE,cAAe,UAEjBC,UAAW,CACT/E,SAAU,WACV6B,MAAO,GACPqC,IAAK,IAEPc,YAAa,CACX,QAAS,CACPzE,MAAO,SAuDf,CAAkCgD,GAlDZ,SAAC,GAMA,IALrBG,EAKoB,EALpBA,QACA3B,EAIoB,EAJpBA,QACA+B,EAGoB,EAHpBA,YACA7B,EAEoB,EAFpBA,eACA8B,EACoB,EADpBA,UAEA,OACE,SAAC,EAAA5B,SAAD,UACG2B,IACC,iBACE1B,UAAS,UAAKL,EAAQiC,kBAAb,YACPF,EAAc,OAAS,IAF3B,WAKE,gBAAK1B,UAAWL,EAAQgD,UAAxB,UACE,SAAClC,EAAA,EAAD,CAASC,MAAO,0BAA2BC,UAAU,eAArD,UACE,SAACkC,EAAA,EAAD,CACE,aAAY,uBACZC,KAAM,QACN3C,QAASwB,EACT3B,UAAWL,EAAQiD,YAJrB,UAME,SAAC,KAAD,WAIN,gBAAK5C,UAAWL,EAAQe,MAAxB,kCACA,gBAAKV,UAAWL,EAAQ6C,iBAAxB,SACGlB,EAAQyB,KAAI,SAACC,EAAQC,GAAT,OACX,SAAC,EAAD,CACErD,gBAAiBoD,EAEjBnD,eAAgBA,GAHlB,yBAEyBmD,EAAO5C,4B,gHCzFxC8C,GAAuBC,EAAAA,EAAAA,IAAOC,EAAAA,EAAPD,EAAuB,2BAClDpE,OAAQ,GACRkD,aAAc,IAFoC,qBAG5CoB,EAAAA,EAAAA,cAAuC,CAC3C9D,gBAAiB,aAJ+B,sBAM3C8D,EAAAA,EAAAA,KAA8B,CACnCpB,aAAc,IAPkC,KAU9CqB,GAA4BH,EAAAA,EAAAA,IAAOD,EAAPC,EAA6B,0BAC7DpE,OAAQ,EACRkD,aAAc,GAF+C,aAGtDoB,EAAAA,EAAAA,KAA8B,CACnCpB,aAAc,OAIlB,SAASsB,EAAwBC,GAC/B,OACE,UAAC,IAAD,CAAKC,GAAI,CAAE/E,QAAS,OAAQC,WAAY,UAAxC,WACE,SAAC,IAAD,CAAK8E,GAAI,CAAEtF,MAAO,OAAQuF,GAAI,GAA9B,UACE,SAACR,GAAD,QAAsBS,QAAQ,eAAkBH,OAElD,SAAC,IAAD,CAAKC,GAAI,CAAEG,SAAU,GAAI1F,SAAU,IAAM8B,UAAW,QAApD,mBACM6D,KAAKC,MAAMN,EAAMzC,OAAS,GADhC,UAqCN,IA9B2B,SAAC,GAMA,IAL1BA,EAKyB,EALzBA,MACAC,EAIyB,EAJzBA,MACAF,EAGyB,EAHzBA,cACAI,EAEyB,EAFzBA,UAEyB,IADzB4B,KAAAA,OACyB,MADlB,UACkB,EASnBiB,EAAsC,CAC1CJ,QAAS7C,IAAkBE,EAAQ,gBAAkB,cACrDD,MAAOC,EAAQ,IAAMD,EACrB9C,MAVY,MAAV8C,GAAiBC,EACX,UACW,MAAVD,GAAkBC,EAGnB,UAFA,SASV,OAAIE,GACK,SAACqC,GAAD,UAA6BQ,IAEzB,UAATjB,GACK,SAACQ,GAAD,UAA+BS,KAGjC,SAACb,GAAD,UAA0Ba","sources":["screens/Console/Common/ObjectManager/ObjectHandled.tsx","screens/Console/Common/ObjectManager/ObjectManager.tsx","screens/Console/Common/ProgressBarWrapper/ProgressBarWrapper.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, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Tooltip } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport ProgressBarWrapper from \"../ProgressBarWrapper/ProgressBarWrapper\";\nimport { DownloadStatIcon, UploadStatIcon } from \"../../../../icons\";\nimport clsx from \"clsx\";\n\ninterface IObjectHandled {\n classes: any;\n objectToDisplay: IFileItem;\n deleteFromList: (instanceID: string) => void;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n borderBottom: \"#E2E2E2 1px solid\",\n padding: \"15px 5px\",\n margin: \"0 15px\",\n position: \"relative\",\n \"& .showOnHover\": {\n opacity: 0,\n transitionDuration: \"0.2s\",\n },\n \"&.inProgress\": {\n \"& .hideOnProgress\": {\n visibility: \"hidden\",\n },\n },\n \"&:hover\": {\n \"& .showOnHover\": {\n opacity: 1,\n },\n },\n },\n headItem: {\n color: \"#868686\",\n fontSize: 12,\n width: \"100%\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n },\n progressContainer: {\n marginTop: 5,\n },\n objectDetails: {\n display: \"flex\",\n alignItems: \"center\",\n },\n iconContainer: {\n paddingTop: 5,\n marginRight: 5,\n \"& svg\": {\n width: 20,\n height: 20,\n },\n },\n download: {\n color: \"rgb(113,200,150)\",\n },\n upload: {\n color: \"rgb(66,127,172)\",\n },\n closeIcon: {\n \"&::before\": {\n width: 1,\n height: 12,\n content: \"' '\",\n position: \"absolute\",\n transform: \"rotate(45deg)\",\n borderLeft: \"#9c9c9c 2px solid\",\n },\n \"&::after\": {\n width: 1,\n height: 12,\n content: \"' '\",\n position: \"absolute\",\n transform: \"rotate(-45deg)\",\n borderLeft: \"#9c9c9c 2px solid\",\n },\n },\n closeButton: {\n backgroundColor: \"transparent\",\n border: 0,\n right: 0,\n position: \"absolute\",\n },\n fileName: {\n width: 230,\n },\n });\n\nconst ObjectHandled = ({\n classes,\n objectToDisplay,\n deleteFromList,\n}: IObjectHandled) => {\n const prefix = `${objectToDisplay.prefix}`;\n return (\n \n \n
    \n {\n deleteFromList(objectToDisplay.instanceID);\n }}\n className={`${classes.closeButton} hideOnProgress showOnHover`}\n disabled={objectToDisplay.percentage !== 100}\n >\n \n \n
    \n
    \n \n {objectToDisplay.type === \"download\" ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n Bucket: \n {objectToDisplay.bucketName}\n
    \n \n
    {prefix}
    \n
    \n
    \n \n
    \n {objectToDisplay.waitingForFile ? (\n \n ) : (\n \n )}\n
    \n \n
    \n );\n};\n\nexport default withStyles(styles)(ObjectHandled);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Tooltip, IconButton } from \"@mui/material\";\nimport { AppState } from \"../../../../store\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { deleteFromList, cleanList } from \"../../ObjectBrowser/actions\";\nimport { TrashIcon } from \"../../../../icons\";\nimport ObjectHandled from \"./ObjectHandled\";\n\ninterface IObjectManager {\n objects: IFileItem[];\n classes: any;\n managerOpen: boolean;\n deleteFromList: typeof deleteFromList;\n cleanList: typeof cleanList;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n downloadContainer: {\n border: \"#EAEDEE 1px solid\",\n boxShadow: \"rgba(0, 0, 0, 0.08) 0 3px 10px\",\n backgroundColor: \"#fff\",\n position: \"absolute\",\n right: 0,\n top: 80,\n width: 300,\n overflowY: \"hidden\",\n overflowX: \"hidden\",\n borderRadius: 3,\n zIndex: 1000,\n padding: 0,\n height: 0,\n transitionDuration: \"0.3s\",\n visibility: \"hidden\",\n \"&.open\": {\n visibility: \"visible\",\n minHeight: 400,\n },\n },\n title: {\n fontSize: 14,\n fontWeight: \"bold\",\n textAlign: \"center\",\n marginBottom: 5,\n paddingBottom: 12,\n borderBottom: \"#E2E2E2 1px solid\",\n margin: \"15px 15px 5px 15px\",\n },\n actionsContainer: {\n overflowY: \"auto\",\n overflowX: \"hidden\",\n minHeight: 250,\n maxHeight: 335,\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n },\n cleanIcon: {\n position: \"absolute\",\n right: 14,\n top: 12,\n },\n cleanButton: {\n \"& svg\": {\n width: 20,\n },\n },\n });\n\nconst ObjectManager = ({\n objects,\n classes,\n managerOpen,\n deleteFromList,\n cleanList,\n}: IObjectManager) => {\n return (\n \n {managerOpen && (\n \n
    \n \n \n \n \n \n
    \n
    Downloads / Uploads
    \n
    \n {objects.map((object, key) => (\n \n ))}\n
    \n \n )}\n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n objects: state.objectBrowser.objectManager.objectsToManage,\n managerOpen: state.objectBrowser.objectManager.managerOpen,\n});\n\nconst connector = connect(mapState, { deleteFromList, cleanList });\n\nexport default withStyles(styles)(connector(ObjectManager));\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 { styled } from \"@mui/material/styles\";\nimport LinearProgress, {\n linearProgressClasses,\n LinearProgressProps,\n} from \"@mui/material/LinearProgress\";\nimport Box from \"@mui/material/Box\";\n\ninterface IProgressBarWrapper {\n value: number;\n ready: boolean;\n indeterminate?: boolean;\n withLabel?: boolean;\n size?: string;\n}\n\nconst BorderLinearProgress = styled(LinearProgress)(() => ({\n height: 10,\n borderRadius: 5,\n [`&.${linearProgressClasses.colorPrimary}`]: {\n backgroundColor: \"#f1f1f1\",\n },\n [`& .${linearProgressClasses.bar}`]: {\n borderRadius: 5,\n },\n}));\nconst SmallBorderLinearProgress = styled(BorderLinearProgress)(() => ({\n height: 6,\n borderRadius: 3,\n [`& .${linearProgressClasses.bar}`]: {\n borderRadius: 3,\n },\n}));\n\nfunction LinearProgressWithLabel(props: LinearProgressProps) {\n return (\n \n \n \n \n \n {`${Math.round(props.value || 0)}%`}\n \n \n );\n}\n\nconst ProgressBarWrapper = ({\n value,\n ready,\n indeterminate,\n withLabel,\n size = \"regular\",\n}: IProgressBarWrapper) => {\n let color: any;\n if (value === 100 && ready) {\n color = \"success\";\n } else if (value === 100 && !ready) {\n color = \"error\";\n } else {\n color = \"primary\";\n }\n const propsComponent: LinearProgressProps = {\n variant: indeterminate && !ready ? \"indeterminate\" : \"determinate\",\n value: ready ? 100 : value,\n color: color,\n };\n if (withLabel) {\n return ;\n }\n if (size === \"small\") {\n return ;\n }\n\n return ;\n};\n\nexport default ProgressBarWrapper;\n"],"names":["withStyles","theme","createStyles","container","borderBottom","padding","margin","position","opacity","transitionDuration","visibility","headItem","color","fontSize","width","whiteSpace","textOverflow","overflow","progressContainer","marginTop","objectDetails","display","alignItems","iconContainer","paddingTop","marginRight","height","download","upload","closeIcon","content","transform","borderLeft","closeButton","backgroundColor","border","right","fileName","classes","objectToDisplay","deleteFromList","prefix","Fragment","className","percentage","clearListIcon","onClick","instanceID","disabled","clsx","type","bucketName","Tooltip","title","placement","waitingForFile","ProgressBarWrapper","indeterminate","value","ready","done","withLabel","connector","connect","state","objects","objectBrowser","objectManager","objectsToManage","managerOpen","cleanList","downloadContainer","boxShadow","top","overflowY","overflowX","borderRadius","zIndex","minHeight","fontWeight","textAlign","marginBottom","paddingBottom","actionsContainer","maxHeight","flexDirection","cleanIcon","cleanButton","IconButton","size","map","object","key","BorderLinearProgress","styled","LinearProgress","linearProgressClasses","SmallBorderLinearProgress","LinearProgressWithLabel","props","sx","mr","variant","minWidth","Math","round","propsComponent"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/5926.780bfa30.chunk.js","mappings":"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","sources":["screens/Console/Common/ObjectManager/ObjectHandled.tsx","screens/Console/Common/ObjectManager/ObjectManager.tsx","screens/Console/Common/ProgressBarWrapper/ProgressBarWrapper.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, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { Tooltip } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport ProgressBarWrapper from \"../ProgressBarWrapper/ProgressBarWrapper\";\nimport { DownloadStatIcon, UploadStatIcon } from \"../../../../icons\";\nimport clsx from \"clsx\";\n\ninterface IObjectHandled {\n classes: any;\n objectToDisplay: IFileItem;\n deleteFromList: (instanceID: string) => void;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n borderBottom: \"#E2E2E2 1px solid\",\n padding: \"15px 5px\",\n margin: \"0 15px\",\n position: \"relative\",\n \"& .showOnHover\": {\n opacity: 0,\n transitionDuration: \"0.2s\",\n },\n \"&.inProgress\": {\n \"& .hideOnProgress\": {\n visibility: \"hidden\",\n },\n },\n \"&:hover\": {\n \"& .showOnHover\": {\n opacity: 1,\n },\n },\n },\n headItem: {\n color: \"#868686\",\n fontSize: 12,\n width: \"100%\",\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n },\n progressContainer: {\n marginTop: 5,\n },\n objectDetails: {\n display: \"flex\",\n alignItems: \"center\",\n },\n iconContainer: {\n paddingTop: 5,\n marginRight: 5,\n \"& svg\": {\n width: 20,\n height: 20,\n },\n },\n download: {\n color: \"rgb(113,200,150)\",\n },\n upload: {\n color: \"rgb(66,127,172)\",\n },\n closeIcon: {\n \"&::before\": {\n width: 1,\n height: 12,\n content: \"' '\",\n position: \"absolute\",\n transform: \"rotate(45deg)\",\n borderLeft: \"#9c9c9c 2px solid\",\n },\n \"&::after\": {\n width: 1,\n height: 12,\n content: \"' '\",\n position: \"absolute\",\n transform: \"rotate(-45deg)\",\n borderLeft: \"#9c9c9c 2px solid\",\n },\n },\n closeButton: {\n backgroundColor: \"transparent\",\n border: 0,\n right: 0,\n position: \"absolute\",\n },\n fileName: {\n width: 230,\n },\n });\n\nconst ObjectHandled = ({\n classes,\n objectToDisplay,\n deleteFromList,\n}: IObjectHandled) => {\n const prefix = `${objectToDisplay.prefix}`;\n return (\n \n \n
    \n {\n deleteFromList(objectToDisplay.instanceID);\n }}\n className={`${classes.closeButton} hideOnProgress showOnHover`}\n disabled={objectToDisplay.percentage !== 100}\n >\n \n \n
    \n
    \n \n {objectToDisplay.type === \"download\" ? (\n \n ) : (\n \n )}\n
    \n
    \n
    \n Bucket: \n {objectToDisplay.bucketName}\n
    \n \n
    {prefix}
    \n
    \n
    \n \n
    \n {objectToDisplay.waitingForFile ? (\n \n ) : (\n \n )}\n
    \n \n
    \n );\n};\n\nexport default withStyles(styles)(ObjectHandled);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Tooltip, IconButton } from \"@mui/material\";\nimport { AppState } from \"../../../../store\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { deleteFromList, cleanList } from \"../../ObjectBrowser/actions\";\nimport { TrashIcon } from \"../../../../icons\";\nimport ObjectHandled from \"./ObjectHandled\";\n\ninterface IObjectManager {\n objects: IFileItem[];\n classes: any;\n managerOpen: boolean;\n deleteFromList: typeof deleteFromList;\n cleanList: typeof cleanList;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n downloadContainer: {\n border: \"#EAEDEE 1px solid\",\n boxShadow: \"rgba(0, 0, 0, 0.08) 0 3px 10px\",\n backgroundColor: \"#fff\",\n position: \"absolute\",\n right: 0,\n top: 80,\n width: 300,\n overflowY: \"hidden\",\n overflowX: \"hidden\",\n borderRadius: 3,\n zIndex: 1000,\n padding: 0,\n height: 0,\n transitionDuration: \"0.3s\",\n visibility: \"hidden\",\n \"&.open\": {\n visibility: \"visible\",\n minHeight: 400,\n },\n },\n title: {\n fontSize: 14,\n fontWeight: \"bold\",\n textAlign: \"center\",\n marginBottom: 5,\n paddingBottom: 12,\n borderBottom: \"#E2E2E2 1px solid\",\n margin: \"15px 15px 5px 15px\",\n },\n actionsContainer: {\n overflowY: \"auto\",\n overflowX: \"hidden\",\n minHeight: 250,\n maxHeight: 335,\n width: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n },\n cleanIcon: {\n position: \"absolute\",\n right: 14,\n top: 12,\n },\n cleanButton: {\n \"& svg\": {\n width: 20,\n },\n },\n });\n\nconst ObjectManager = ({\n objects,\n classes,\n managerOpen,\n deleteFromList,\n cleanList,\n}: IObjectManager) => {\n return (\n \n {managerOpen && (\n \n
    \n \n \n \n \n \n
    \n
    Downloads / Uploads
    \n
    \n {objects.map((object, key) => (\n \n ))}\n
    \n \n )}\n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n objects: state.objectBrowser.objectManager.objectsToManage,\n managerOpen: state.objectBrowser.objectManager.managerOpen,\n});\n\nconst connector = connect(mapState, { deleteFromList, cleanList });\n\nexport default withStyles(styles)(connector(ObjectManager));\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 { styled } from \"@mui/material/styles\";\nimport LinearProgress, {\n linearProgressClasses,\n LinearProgressProps,\n} from \"@mui/material/LinearProgress\";\nimport Box from \"@mui/material/Box\";\n\ninterface IProgressBarWrapper {\n value: number;\n ready: boolean;\n indeterminate?: boolean;\n withLabel?: boolean;\n size?: string;\n}\n\nconst BorderLinearProgress = styled(LinearProgress)(() => ({\n height: 10,\n borderRadius: 5,\n [`&.${linearProgressClasses.colorPrimary}`]: {\n backgroundColor: \"#f1f1f1\",\n },\n [`& .${linearProgressClasses.bar}`]: {\n borderRadius: 5,\n },\n}));\nconst SmallBorderLinearProgress = styled(BorderLinearProgress)(() => ({\n height: 6,\n borderRadius: 3,\n [`& .${linearProgressClasses.bar}`]: {\n borderRadius: 3,\n },\n}));\n\nfunction LinearProgressWithLabel(props: LinearProgressProps) {\n return (\n \n \n \n \n \n {`${Math.round(props.value || 0)}%`}\n \n \n );\n}\n\nconst ProgressBarWrapper = ({\n value,\n ready,\n indeterminate,\n withLabel,\n size = \"regular\",\n}: IProgressBarWrapper) => {\n let color: any;\n if (value === 100 && ready) {\n color = \"success\";\n } else if (value === 100 && !ready) {\n color = \"error\";\n } else {\n color = \"primary\";\n }\n const propsComponent: LinearProgressProps = {\n variant: indeterminate && !ready ? \"indeterminate\" : \"determinate\",\n value: ready ? 100 : value,\n color: color,\n };\n if (withLabel) {\n return ;\n }\n if (size === \"small\") {\n return ;\n }\n\n return ;\n};\n\nexport default ProgressBarWrapper;\n"],"names":["withStyles","theme","createStyles","container","borderBottom","padding","margin","position","opacity","transitionDuration","visibility","headItem","color","fontSize","width","whiteSpace","textOverflow","overflow","progressContainer","marginTop","objectDetails","display","alignItems","iconContainer","paddingTop","marginRight","height","download","upload","closeIcon","content","transform","borderLeft","closeButton","backgroundColor","border","right","fileName","classes","objectToDisplay","deleteFromList","prefix","Fragment","className","percentage","clearListIcon","onClick","instanceID","disabled","clsx","type","bucketName","Tooltip","title","placement","waitingForFile","ProgressBarWrapper","indeterminate","value","ready","done","withLabel","connector","connect","state","objects","objectBrowser","objectManager","objectsToManage","managerOpen","cleanList","downloadContainer","boxShadow","top","overflowY","overflowX","borderRadius","zIndex","minHeight","fontWeight","textAlign","marginBottom","paddingBottom","actionsContainer","maxHeight","flexDirection","cleanIcon","cleanButton","IconButton","size","map","object","key","BorderLinearProgress","styled","LinearProgress","linearProgressClasses","SmallBorderLinearProgress","LinearProgressWithLabel","props","sx","mr","variant","minWidth","Math","round","propsComponent"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/6041.0bf546c3.chunk.js b/portal-ui/build/static/js/6041.b277898c.chunk.js similarity index 99% rename from portal-ui/build/static/js/6041.0bf546c3.chunk.js rename to portal-ui/build/static/js/6041.b277898c.chunk.js index a00b05769..87b779c0c 100644 --- a/portal-ui/build/static/js/6041.0bf546c3.chunk.js +++ b/portal-ui/build/static/js/6041.b277898c.chunk.js @@ -1,2 +1,2 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6041],{74794:function(e,t,n){"use strict";var o=n(1413),r=(n(72791),n(61889)),a=n(11135),i=n(25787),c=n(23814),s=n(80184);t.Z=(0,i.Z)((function(e){return(0,a.Z)((0,o.Z)({},c.Bw))}))((function(e){var t=e.classes,n=e.className,o=void 0===n?"":n,a=e.children;return(0,s.jsx)("div",{className:t.contentSpacer,children:(0,s.jsx)(r.ZP,{container:!0,children:(0,s.jsx)(r.ZP,{item:!0,xs:12,className:o,children:a})})})}))},32291:function(e,t,n){"use strict";var o=n(72791),r=n(60364),a=n(61889),i=n(11135),c=n(25787),s=n(20890),l=n(13400),u=n(95466),d=n(84683),f=n(3925),h=n(74833),m=n(80184),p={toggleList:f.kQ},b=(0,r.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),p);t.Z=b((0,c.Z)((function(e){return(0,i.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,n=e.label,r=e.actions,i=e.sidebarOpen,c=e.operatorMode,f=e.managerObjects,p=e.toggleList,b=e.middleComponent;return e.features.includes("hide-menu")?(0,m.jsx)(o.Fragment,{}):(0,m.jsxs)(a.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,m.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:b?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!i&&(0,m.jsx)("div",{className:t.logo,children:c?(0,m.jsx)(u.Z,{}):(0,m.jsx)(d.Z,{})}),(0,m.jsx)(s.Z,{variant:"h4",className:t.labelStyle,children:n})]}),b&&(0,m.jsx)(a.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:b}),(0,m.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:b?3:6,className:t.rightMenu,children:[r&&r,f&&f.length>0&&(0,m.jsx)(l.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){p()},id:"object-manager-toggle",size:"large",children:(0,m.jsx)(h.gx,{})})]})]})})))},76272:function(e,t,n){"use strict";n.r(t);var o=n(70885),r=n(1413),a=n(72791),i=n(4834),c=n(61889),s=n(68096),l=n(58406),u=n(23786),d=n(27391),f=n(36151),h=n(95087),m=n(60364),p=n(11135),b=n(25787),g=n(21352),x=n(45248),v=n(26824),Z=n(23814),j=n(92983),w=n(32291),y=n(81207),k=n(74794),S=n(80184),C=(0,b.Z)((function(e){return(0,p.Z)({root:{lineHeight:"50px","label + &":{marginTop:e.spacing(3)},"& .MuiSelect-select:focus":{backgroundColor:"transparent"}},input:{height:50,fontSize:13,lineHeight:"50px"}})}))(i.ZP),P=(0,m.$j)((function(e){return{messages:e.watch.messages}}),{watchMessageReceived:g.pG,watchResetMessages:g.uE});t.default=P((0,b.Z)((function(e){return(0,p.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({searchPrefix:{flexGrow:1,marginLeft:15},watchTableHeight:{height:"calc(100vh - 270px)"},bucketField:{flexGrow:2,minWidth:200}},Z.VX),Z.OR),Z.qg),(0,Z.Bz)(e.spacing(4))))}))((function(e){var t=e.classes,n=e.watchMessageReceived,r=e.watchResetMessages,i=e.messages,m=(0,a.useState)(!1),p=(0,o.Z)(m,2),b=p[0],g=p[1],Z=(0,a.useState)("Select Bucket"),P=(0,o.Z)(Z,2),z=P[0],O=P[1],M=(0,a.useState)(""),N=(0,o.Z)(M,2),T=N[0],I=N[1],E=(0,a.useState)(""),H=(0,o.Z)(E,2),_=H[0],F=H[1],L=(0,a.useState)([]),R=(0,o.Z)(L,2),B=R[0],V=R[1];(0,a.useEffect)((function(){y.Z.invoke("GET","/api/v1/buckets").then((function(e){var t=[];null!==e.buckets&&(t=e.buckets),V(t)})).catch((function(e){console.log(e)}))}),[]),(0,a.useEffect)((function(){if(r(),b&&B.some((function(e){return e.name===z}))){var e=new URL(window.location.toString()),t=e.port,o=(0,v.x2)(e.protocol),a=new h.w3cwebsocket("".concat(o,"://").concat(e.hostname,":").concat(t,"/ws/watch/").concat(z,"?prefix=").concat(T,"&suffix=").concat(_)),i=null;if(null!==a)return a.onopen=function(){console.log("WebSocket Client Connected"),a.send("ok"),i=setInterval((function(){a.send("ok")}),1e4)},a.onmessage=function(e){var t=JSON.parse(e.data.toString());t.Time=new Date(t.Time.toString()),t.key=Math.random(),n(t)},a.onclose=function(){clearInterval(i),console.log("connection closed by server"),g(!1)},function(){a.close(1e3),clearInterval(i),console.log("closing websockets")}}else g(!1)}),[n,b,B,z,T,_,r]);var W=B.map((function(e){return{label:e.name,value:e.name}}));return(0,S.jsxs)(a.Fragment,{children:[(0,S.jsx)(w.Z,{label:"Watch"}),(0,S.jsx)(k.Z,{children:(0,S.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,S.jsxs)(c.ZP,{item:!0,xs:12,className:t.actionsTray,children:[(0,S.jsx)(s.Z,{variant:"outlined",className:t.bucketField,children:(0,S.jsxs)(l.Z,{id:"bucket-name",name:"bucket-name",value:z,onChange:function(e){O(e.target.value)},className:t.searchField,disabled:b,input:(0,S.jsx)(C,{}),children:[(0,S.jsx)(u.Z,{value:z,disabled:!0,children:"Select Bucket"},"select-bucket-name-default"),W.map((function(e){return(0,S.jsx)(u.Z,{value:e.value,children:e.label},"select-bucket-name-".concat(e.label))}))]})}),(0,S.jsx)(d.Z,{className:"".concat(t.searchField," ").concat(t.searchPrefix),id:"prefix-resource",label:"Prefix",disabled:b,InputProps:{disableUnderline:!0},onChange:function(e){I(e.target.value)},variant:"standard"}),(0,S.jsx)(d.Z,{className:"".concat(t.searchField," ").concat(t.searchPrefix),id:"suffix-resource",label:"Suffix",disabled:b,InputProps:{disableUnderline:!0},onChange:function(e){F(e.target.value)},variant:"standard"}),(0,S.jsx)(f.Z,{type:"submit",variant:"contained",color:"primary",disabled:b,onClick:function(){return g(!0)},children:"Start"})]}),(0,S.jsx)("div",{className:t.tableBlock,children:(0,S.jsx)(j.Z,{columns:[{label:"Time",elementKey:"Time",renderFunction:x.zk},{label:"Size",elementKey:"Size",renderFunction:x.ae},{label:"Type",elementKey:"Type"},{label:"Path",elementKey:"Path"}],records:i,entityName:"Watch",customEmptyMessage:"No Changes at this time",idField:"watch_table",isLoading:!1,customPaperHeight:t.watchTableHeight})})]})})]})})))},26824:function(e,t,n){"use strict";n.d(t,{HE:function(){return a},V9:function(){return o},ci:function(){return r},x2:function(){return i}});var o=1006,r=1008,a=1011,i=function(e){var t="ws";return"https:"===e&&(t="wss"),t}},26759:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),a=n(80184),i=(0,r.default)((0,a.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=i},70366:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),a=n(80184),i=(0,r.default)((0,a.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=i},97911:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),a=n(80184),i=(0,r.default)((0,a.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=i},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return C}});var o=n(4942),r=n(63366),a=n(87462),i=n(72791),c=n(90767),s=n(12065),l=n(97278),u=n(76189),d=n(80184),f=(0,u.Z)((0,d.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),h=(0,u.Z)((0,d.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),m=(0,u.Z)((0,d.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox"),p=n(14036),b=n(93736),g=n(47630),x=n(95159);function v(e){return(0,x.Z)("MuiCheckbox",e)}var Z=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),j=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],w=(0,g.ZP)(l.Z,{shouldForwardProp:function(e){return(0,g.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.indeterminate&&t.indeterminate,"default"!==n.color&&t["color".concat((0,p.Z)(n.color))]]}})((function(e){var t,n=e.theme,r=e.ownerState;return(0,a.Z)({color:n.palette.text.secondary},!r.disableRipple&&{"&:hover":{backgroundColor:(0,s.Fq)("default"===r.color?n.palette.action.active:n.palette[r.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==r.color&&(t={},(0,o.Z)(t,"&.".concat(Z.checked,", &.").concat(Z.indeterminate),{color:n.palette[r.color].main}),(0,o.Z)(t,"&.".concat(Z.disabled),{color:n.palette.action.disabled}),t))})),y=(0,d.jsx)(h,{}),k=(0,d.jsx)(f,{}),S=(0,d.jsx)(m,{}),C=i.forwardRef((function(e,t){var n,o,s=(0,b.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,u=void 0===l?y:l,f=s.color,h=void 0===f?"primary":f,m=s.icon,g=void 0===m?k:m,x=s.indeterminate,Z=void 0!==x&&x,C=s.indeterminateIcon,P=void 0===C?S:C,z=s.inputProps,O=s.size,M=void 0===O?"medium":O,N=(0,r.Z)(s,j),T=Z?P:g,I=Z?P:u,E=(0,a.Z)({},s,{color:h,indeterminate:Z,size:M}),H=function(e){var t=e.classes,n=e.indeterminate,o=e.color,r={root:["root",n&&"indeterminate","color".concat((0,p.Z)(o))]},i=(0,c.Z)(r,v,t);return(0,a.Z)({},t,i)}(E);return(0,d.jsx)(w,(0,a.Z)({type:"checkbox",inputProps:(0,a.Z)({"data-indeterminate":Z},z),icon:i.cloneElement(T,{fontSize:null!=(n=T.props.fontSize)?n:M}),checkedIcon:i.cloneElement(I,{fontSize:null!=(o=I.props.fontSize)?o:M}),ownerState:E,ref:t},N,{classes:H}))}))},94210:function(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__}}()},26769:function(e,t,n){var o=n(39066),r=n(93629),a=n(43141);e.exports=function(e){return"string"==typeof e||!r(e)&&a(e)&&"[object String]"==o(e)}},95087:function(e,t,n){var o;if("object"===typeof globalThis)o=globalThis;else try{o=n(94210)}catch(c){}finally{if(o||"undefined"===typeof window||(o=window),!o)throw new Error("Could not determine global this")}var r=o.WebSocket||o.MozWebSocket,a=n(51496);function i(e,t){return t?new r(e,t):new r(e)}r&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(i,e,{get:function(){return r[e]}})})),e.exports={w3cwebsocket:r?i:null,version:a}},51496:function(e,t,n){e.exports=n(19794).version},45987:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var o=n(63366);function r(e,t){if(null==e)return{};var n,r,a=(0,o.Z)(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); -//# sourceMappingURL=6041.0bf546c3.chunk.js.map \ No newline at end of file +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6041],{74794:function(e,t,n){"use strict";var o=n(1413),r=(n(72791),n(61889)),a=n(11135),i=n(25787),c=n(23814),s=n(80184);t.Z=(0,i.Z)((function(e){return(0,a.Z)((0,o.Z)({},c.Bw))}))((function(e){var t=e.classes,n=e.className,o=void 0===n?"":n,a=e.children;return(0,s.jsx)("div",{className:t.contentSpacer,children:(0,s.jsx)(r.ZP,{container:!0,children:(0,s.jsx)(r.ZP,{item:!0,xs:12,className:o,children:a})})})}))},32291:function(e,t,n){"use strict";var o=n(72791),r=n(60364),a=n(61889),i=n(11135),c=n(25787),s=n(20890),l=n(13400),u=n(95466),d=n(84683),f=n(3925),h=n(13048),m=n(80184),p={toggleList:f.kQ},b=(0,r.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),p);t.Z=b((0,c.Z)((function(e){return(0,i.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,n=e.label,r=e.actions,i=e.sidebarOpen,c=e.operatorMode,f=e.managerObjects,p=e.toggleList,b=e.middleComponent;return e.features.includes("hide-menu")?(0,m.jsx)(o.Fragment,{}):(0,m.jsxs)(a.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,m.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:b?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!i&&(0,m.jsx)("div",{className:t.logo,children:c?(0,m.jsx)(u.Z,{}):(0,m.jsx)(d.Z,{})}),(0,m.jsx)(s.Z,{variant:"h4",className:t.labelStyle,children:n})]}),b&&(0,m.jsx)(a.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:b}),(0,m.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:b?3:6,className:t.rightMenu,children:[r&&r,f&&f.length>0&&(0,m.jsx)(l.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){p()},id:"object-manager-toggle",size:"large",children:(0,m.jsx)(h.gx,{})})]})]})})))},76272:function(e,t,n){"use strict";n.r(t);var o=n(70885),r=n(1413),a=n(72791),i=n(4834),c=n(61889),s=n(68096),l=n(58406),u=n(23786),d=n(27391),f=n(36151),h=n(95087),m=n(60364),p=n(11135),b=n(25787),g=n(21352),x=n(45248),v=n(26824),Z=n(23814),j=n(92983),w=n(32291),y=n(81207),k=n(74794),S=n(80184),C=(0,b.Z)((function(e){return(0,p.Z)({root:{lineHeight:"50px","label + &":{marginTop:e.spacing(3)},"& .MuiSelect-select:focus":{backgroundColor:"transparent"}},input:{height:50,fontSize:13,lineHeight:"50px"}})}))(i.ZP),P=(0,m.$j)((function(e){return{messages:e.watch.messages}}),{watchMessageReceived:g.pG,watchResetMessages:g.uE});t.default=P((0,b.Z)((function(e){return(0,p.Z)((0,r.Z)((0,r.Z)((0,r.Z)((0,r.Z)({searchPrefix:{flexGrow:1,marginLeft:15},watchTableHeight:{height:"calc(100vh - 270px)"},bucketField:{flexGrow:2,minWidth:200}},Z.VX),Z.OR),Z.qg),(0,Z.Bz)(e.spacing(4))))}))((function(e){var t=e.classes,n=e.watchMessageReceived,r=e.watchResetMessages,i=e.messages,m=(0,a.useState)(!1),p=(0,o.Z)(m,2),b=p[0],g=p[1],Z=(0,a.useState)("Select Bucket"),P=(0,o.Z)(Z,2),z=P[0],O=P[1],M=(0,a.useState)(""),N=(0,o.Z)(M,2),T=N[0],I=N[1],E=(0,a.useState)(""),H=(0,o.Z)(E,2),_=H[0],F=H[1],L=(0,a.useState)([]),R=(0,o.Z)(L,2),B=R[0],V=R[1];(0,a.useEffect)((function(){y.Z.invoke("GET","/api/v1/buckets").then((function(e){var t=[];null!==e.buckets&&(t=e.buckets),V(t)})).catch((function(e){console.log(e)}))}),[]),(0,a.useEffect)((function(){if(r(),b&&B.some((function(e){return e.name===z}))){var e=new URL(window.location.toString()),t=e.port,o=(0,v.x2)(e.protocol),a=new h.w3cwebsocket("".concat(o,"://").concat(e.hostname,":").concat(t,"/ws/watch/").concat(z,"?prefix=").concat(T,"&suffix=").concat(_)),i=null;if(null!==a)return a.onopen=function(){console.log("WebSocket Client Connected"),a.send("ok"),i=setInterval((function(){a.send("ok")}),1e4)},a.onmessage=function(e){var t=JSON.parse(e.data.toString());t.Time=new Date(t.Time.toString()),t.key=Math.random(),n(t)},a.onclose=function(){clearInterval(i),console.log("connection closed by server"),g(!1)},function(){a.close(1e3),clearInterval(i),console.log("closing websockets")}}else g(!1)}),[n,b,B,z,T,_,r]);var W=B.map((function(e){return{label:e.name,value:e.name}}));return(0,S.jsxs)(a.Fragment,{children:[(0,S.jsx)(w.Z,{label:"Watch"}),(0,S.jsx)(k.Z,{children:(0,S.jsxs)(c.ZP,{item:!0,xs:12,children:[(0,S.jsxs)(c.ZP,{item:!0,xs:12,className:t.actionsTray,children:[(0,S.jsx)(s.Z,{variant:"outlined",className:t.bucketField,children:(0,S.jsxs)(l.Z,{id:"bucket-name",name:"bucket-name",value:z,onChange:function(e){O(e.target.value)},className:t.searchField,disabled:b,input:(0,S.jsx)(C,{}),children:[(0,S.jsx)(u.Z,{value:z,disabled:!0,children:"Select Bucket"},"select-bucket-name-default"),W.map((function(e){return(0,S.jsx)(u.Z,{value:e.value,children:e.label},"select-bucket-name-".concat(e.label))}))]})}),(0,S.jsx)(d.Z,{className:"".concat(t.searchField," ").concat(t.searchPrefix),id:"prefix-resource",label:"Prefix",disabled:b,InputProps:{disableUnderline:!0},onChange:function(e){I(e.target.value)},variant:"standard"}),(0,S.jsx)(d.Z,{className:"".concat(t.searchField," ").concat(t.searchPrefix),id:"suffix-resource",label:"Suffix",disabled:b,InputProps:{disableUnderline:!0},onChange:function(e){F(e.target.value)},variant:"standard"}),(0,S.jsx)(f.Z,{type:"submit",variant:"contained",color:"primary",disabled:b,onClick:function(){return g(!0)},children:"Start"})]}),(0,S.jsx)("div",{className:t.tableBlock,children:(0,S.jsx)(j.Z,{columns:[{label:"Time",elementKey:"Time",renderFunction:x.zk},{label:"Size",elementKey:"Size",renderFunction:x.ae},{label:"Type",elementKey:"Type"},{label:"Path",elementKey:"Path"}],records:i,entityName:"Watch",customEmptyMessage:"No Changes at this time",idField:"watch_table",isLoading:!1,customPaperHeight:t.watchTableHeight})})]})})]})})))},26824:function(e,t,n){"use strict";n.d(t,{HE:function(){return a},V9:function(){return o},ci:function(){return r},x2:function(){return i}});var o=1006,r=1008,a=1011,i=function(e){var t="ws";return"https:"===e&&(t="wss"),t}},26759:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),a=n(80184),i=(0,r.default)((0,a.jsx)("path",{d:"m7 10 5 5 5-5z"}),"ArrowDropDown");t.Z=i},70366:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),a=n(80184),i=(0,r.default)((0,a.jsx)("path",{d:"m7 14 5-5 5 5z"}),"ArrowDropUp");t.Z=i},97911:function(e,t,n){"use strict";var o=n(95318);t.Z=void 0;var r=o(n(45649)),a=n(80184),i=(0,r.default)((0,a.jsx)("path",{d:"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z"}),"ViewColumn");t.Z=i},94454:function(e,t,n){"use strict";n.d(t,{Z:function(){return C}});var o=n(4942),r=n(63366),a=n(87462),i=n(72791),c=n(90767),s=n(12065),l=n(97278),u=n(76189),d=n(80184),f=(0,u.Z)((0,d.jsx)("path",{d:"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"}),"CheckBoxOutlineBlank"),h=(0,u.Z)((0,d.jsx)("path",{d:"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"}),"CheckBox"),m=(0,u.Z)((0,d.jsx)("path",{d:"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z"}),"IndeterminateCheckBox"),p=n(14036),b=n(93736),g=n(47630),x=n(95159);function v(e){return(0,x.Z)("MuiCheckbox",e)}var Z=(0,n(30208).Z)("MuiCheckbox",["root","checked","disabled","indeterminate","colorPrimary","colorSecondary"]),j=["checkedIcon","color","icon","indeterminate","indeterminateIcon","inputProps","size"],w=(0,g.ZP)(l.Z,{shouldForwardProp:function(e){return(0,g.FO)(e)||"classes"===e},name:"MuiCheckbox",slot:"Root",overridesResolver:function(e,t){var n=e.ownerState;return[t.root,n.indeterminate&&t.indeterminate,"default"!==n.color&&t["color".concat((0,p.Z)(n.color))]]}})((function(e){var t,n=e.theme,r=e.ownerState;return(0,a.Z)({color:n.palette.text.secondary},!r.disableRipple&&{"&:hover":{backgroundColor:(0,s.Fq)("default"===r.color?n.palette.action.active:n.palette[r.color].main,n.palette.action.hoverOpacity),"@media (hover: none)":{backgroundColor:"transparent"}}},"default"!==r.color&&(t={},(0,o.Z)(t,"&.".concat(Z.checked,", &.").concat(Z.indeterminate),{color:n.palette[r.color].main}),(0,o.Z)(t,"&.".concat(Z.disabled),{color:n.palette.action.disabled}),t))})),y=(0,d.jsx)(h,{}),k=(0,d.jsx)(f,{}),S=(0,d.jsx)(m,{}),C=i.forwardRef((function(e,t){var n,o,s=(0,b.Z)({props:e,name:"MuiCheckbox"}),l=s.checkedIcon,u=void 0===l?y:l,f=s.color,h=void 0===f?"primary":f,m=s.icon,g=void 0===m?k:m,x=s.indeterminate,Z=void 0!==x&&x,C=s.indeterminateIcon,P=void 0===C?S:C,z=s.inputProps,O=s.size,M=void 0===O?"medium":O,N=(0,r.Z)(s,j),T=Z?P:g,I=Z?P:u,E=(0,a.Z)({},s,{color:h,indeterminate:Z,size:M}),H=function(e){var t=e.classes,n=e.indeterminate,o=e.color,r={root:["root",n&&"indeterminate","color".concat((0,p.Z)(o))]},i=(0,c.Z)(r,v,t);return(0,a.Z)({},t,i)}(E);return(0,d.jsx)(w,(0,a.Z)({type:"checkbox",inputProps:(0,a.Z)({"data-indeterminate":Z},z),icon:i.cloneElement(T,{fontSize:null!=(n=T.props.fontSize)?n:M}),checkedIcon:i.cloneElement(I,{fontSize:null!=(o=I.props.fontSize)?o:M}),ownerState:E,ref:t},N,{classes:H}))}))},94210:function(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__}}()},26769:function(e,t,n){var o=n(39066),r=n(93629),a=n(43141);e.exports=function(e){return"string"==typeof e||!r(e)&&a(e)&&"[object String]"==o(e)}},95087:function(e,t,n){var o;if("object"===typeof globalThis)o=globalThis;else try{o=n(94210)}catch(c){}finally{if(o||"undefined"===typeof window||(o=window),!o)throw new Error("Could not determine global this")}var r=o.WebSocket||o.MozWebSocket,a=n(51496);function i(e,t){return t?new r(e,t):new r(e)}r&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(i,e,{get:function(){return r[e]}})})),e.exports={w3cwebsocket:r?i:null,version:a}},51496:function(e,t,n){e.exports=n(19794).version},45987:function(e,t,n){"use strict";n.d(t,{Z:function(){return r}});var o=n(63366);function r(e,t){if(null==e)return{};var n,r,a=(0,o.Z)(e,t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(a[n]=e[n])}return a}},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); +//# sourceMappingURL=6041.b277898c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6041.0bf546c3.chunk.js.map b/portal-ui/build/static/js/6041.b277898c.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/6041.0bf546c3.chunk.js.map rename to portal-ui/build/static/js/6041.b277898c.chunk.js.map index 705f0b071..f273a486a 100644 --- a/portal-ui/build/static/js/6041.0bf546c3.chunk.js.map +++ b/portal-ui/build/static/js/6041.b277898c.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/6041.0bf546c3.chunk.js","mappings":"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","sources":["screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Watch/Watch.tsx","utils/wsUtils.ts","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/es5-ext/global.js","../node_modules/lodash/isString.js","../node_modules/websocket/lib/browser.js","../node_modules/websocket/lib/version.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"],"sourcesContent":["import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport {\n Button,\n FormControl,\n Grid,\n InputBase,\n MenuItem,\n Select,\n TextField,\n} from \"@mui/material\";\nimport { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../store\";\nimport { watchMessageReceived, watchResetMessages } from \"./actions\";\nimport { Bucket, BucketList, EventInfo } from \"./types\";\nimport { niceBytes, timeFromDate } from \"../../../common/utils\";\nimport { wsProtocol } from \"../../../utils/wsUtils\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport api from \"../../../common/api\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchPrefix: {\n flexGrow: 1,\n marginLeft: 15,\n },\n watchTableHeight: {\n height: \"calc(100vh - 270px)\",\n },\n bucketField: {\n flexGrow: 2,\n minWidth: 200,\n },\n ...tableStyles,\n ...actionsTray,\n ...searchField,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst SelectStyled = withStyles((theme: Theme) =>\n createStyles({\n root: {\n lineHeight: \"50px\",\n \"label + &\": {\n marginTop: theme.spacing(3),\n },\n \"& .MuiSelect-select:focus\": {\n backgroundColor: \"transparent\",\n },\n },\n input: {\n height: 50,\n fontSize: 13,\n lineHeight: \"50px\",\n },\n })\n)(InputBase);\n\ninterface IWatch {\n classes: any;\n watchMessageReceived: typeof watchMessageReceived;\n watchResetMessages: typeof watchResetMessages;\n messages: EventInfo[];\n}\n\nconst Watch = ({\n classes,\n watchMessageReceived,\n watchResetMessages,\n messages,\n}: IWatch) => {\n const [start, setStart] = useState(false);\n const [bucketName, setBucketName] = useState(\"Select Bucket\");\n const [prefix, setPrefix] = useState(\"\");\n const [suffix, setSuffix] = useState(\"\");\n const [bucketList, setBucketList] = useState([]);\n\n const fetchBucketList = () => {\n api\n .invoke(\"GET\", `/api/v1/buckets`)\n .then((res: BucketList) => {\n let buckets: Bucket[] = [];\n if (res.buckets !== null) {\n buckets = res.buckets;\n }\n setBucketList(buckets);\n })\n .catch((err: ErrorResponseHandler) => {\n console.log(err);\n });\n };\n useEffect(() => {\n fetchBucketList();\n }, []);\n\n useEffect(() => {\n watchResetMessages();\n // begin watch if bucketName in bucketList and start pressed\n if (start && bucketList.some((bucket) => bucket.name === bucketName)) {\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 const wsProt = wsProtocol(url.protocol);\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}/ws/watch/${bucketName}?prefix=${prefix}&suffix=${suffix}`\n );\n\n let interval: any | null = null;\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n c.send(\"ok\");\n interval = setInterval(() => {\n c.send(\"ok\");\n }, 10 * 1000);\n };\n c.onmessage = (message: IMessageEvent) => {\n let m: EventInfo = JSON.parse(message.data.toString());\n m.Time = new Date(m.Time.toString());\n m.key = Math.random();\n watchMessageReceived(m);\n };\n c.onclose = () => {\n clearInterval(interval);\n console.log(\"connection closed by server\");\n // reset start status\n setStart(false);\n };\n return () => {\n // close websocket on useEffect cleanup\n c.close(1000);\n clearInterval(interval);\n console.log(\"closing websockets\");\n };\n }\n } else {\n // reset start status\n setStart(false);\n }\n }, [\n watchMessageReceived,\n start,\n bucketList,\n bucketName,\n prefix,\n suffix,\n watchResetMessages,\n ]);\n\n const bucketNames = bucketList.map((bucketName) => ({\n label: bucketName.name,\n value: bucketName.name,\n }));\n\n return (\n \n \n \n \n \n \n {\n setBucketName(e.target.value as string);\n }}\n className={classes.searchField}\n disabled={start}\n input={}\n >\n \n Select Bucket\n \n {bucketNames.map((option) => (\n \n {option.label}\n \n ))}\n \n \n {\n setPrefix(e.target.value);\n }}\n variant=\"standard\"\n />\n {\n setSuffix(e.target.value);\n }}\n variant=\"standard\"\n />\n setStart(true)}\n >\n Start\n \n \n\n
    \n \n
    \n
    \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n messages: state.watch.messages,\n});\n\nconst connector = connect(mapState, {\n watchMessageReceived: watchMessageReceived,\n watchResetMessages: watchResetMessages,\n});\n\nexport default connector(withStyles(styles)(Watch));\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseNormalClosure = 1000;\nexport const WSCloseCloseGoingAway = 1001;\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","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","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","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","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}"],"names":["withStyles","theme","createStyles","pageContentStyles","classes","className","children","contentSpacer","container","item","xs","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","width","minHeight","display","backgroundColor","left","boxShadow","label","justifyContent","alignItems","labelStyle","color","fontSize","fontWeight","marginLeft","marginTop","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","actions","includes","Fragment","direction","sm","md","sx","paddingTop","variant","length","component","onClick","id","size","SelectStyled","root","lineHeight","spacing","input","height","InputBase","messages","watch","watchMessageReceived","watchResetMessages","searchPrefix","flexGrow","watchTableHeight","bucketField","minWidth","tableStyles","actionsTray","searchField","containerForHeader","useState","start","setStart","bucketName","setBucketName","prefix","setPrefix","suffix","setSuffix","bucketList","setBucketList","useEffect","api","then","res","buckets","catch","err","log","some","bucket","name","url","URL","window","location","toString","port","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","interval","onopen","send","setInterval","onmessage","message","m","JSON","parse","data","Time","Date","key","Math","random","onclose","clearInterval","close","bucketNames","map","value","onChange","e","target","disabled","option","InputProps","disableUnderline","type","tableBlock","columns","elementKey","renderFunction","timeFromDate","niceBytes","records","entityName","customEmptyMessage","idField","isLoading","customPaperHeight","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","createSvgIcon","_jsx","getCheckboxUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CheckboxRoot","styled","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","overridesResolver","props","styles","ownerState","indeterminate","capitalize","_extends","text","secondary","disableRipple","alpha","action","active","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","React","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","naiveFallback","self","Error","module","this","globalThis","Object","defineProperty","prototype","get","configurable","error","__global__","baseGetTag","isArray","isObjectLike","_globalThis","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","forEach","_objectWithoutProperties","source","excluded","i","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","call"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/6041.b277898c.chunk.js","mappings":"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","sources":["screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Watch/Watch.tsx","utils/wsUtils.ts","../node_modules/@mui/icons-material/ArrowDropDown.js","../node_modules/@mui/icons-material/ArrowDropUp.js","../node_modules/@mui/icons-material/ViewColumn.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/es5-ext/global.js","../node_modules/lodash/isString.js","../node_modules/websocket/lib/browser.js","../node_modules/websocket/lib/version.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js"],"sourcesContent":["import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport {\n Button,\n FormControl,\n Grid,\n InputBase,\n MenuItem,\n Select,\n TextField,\n} from \"@mui/material\";\nimport { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { AppState } from \"../../../store\";\nimport { watchMessageReceived, watchResetMessages } from \"./actions\";\nimport { Bucket, BucketList, EventInfo } from \"./types\";\nimport { niceBytes, timeFromDate } from \"../../../common/utils\";\nimport { wsProtocol } from \"../../../utils/wsUtils\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport api from \"../../../common/api\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchPrefix: {\n flexGrow: 1,\n marginLeft: 15,\n },\n watchTableHeight: {\n height: \"calc(100vh - 270px)\",\n },\n bucketField: {\n flexGrow: 2,\n minWidth: 200,\n },\n ...tableStyles,\n ...actionsTray,\n ...searchField,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst SelectStyled = withStyles((theme: Theme) =>\n createStyles({\n root: {\n lineHeight: \"50px\",\n \"label + &\": {\n marginTop: theme.spacing(3),\n },\n \"& .MuiSelect-select:focus\": {\n backgroundColor: \"transparent\",\n },\n },\n input: {\n height: 50,\n fontSize: 13,\n lineHeight: \"50px\",\n },\n })\n)(InputBase);\n\ninterface IWatch {\n classes: any;\n watchMessageReceived: typeof watchMessageReceived;\n watchResetMessages: typeof watchResetMessages;\n messages: EventInfo[];\n}\n\nconst Watch = ({\n classes,\n watchMessageReceived,\n watchResetMessages,\n messages,\n}: IWatch) => {\n const [start, setStart] = useState(false);\n const [bucketName, setBucketName] = useState(\"Select Bucket\");\n const [prefix, setPrefix] = useState(\"\");\n const [suffix, setSuffix] = useState(\"\");\n const [bucketList, setBucketList] = useState([]);\n\n const fetchBucketList = () => {\n api\n .invoke(\"GET\", `/api/v1/buckets`)\n .then((res: BucketList) => {\n let buckets: Bucket[] = [];\n if (res.buckets !== null) {\n buckets = res.buckets;\n }\n setBucketList(buckets);\n })\n .catch((err: ErrorResponseHandler) => {\n console.log(err);\n });\n };\n useEffect(() => {\n fetchBucketList();\n }, []);\n\n useEffect(() => {\n watchResetMessages();\n // begin watch if bucketName in bucketList and start pressed\n if (start && bucketList.some((bucket) => bucket.name === bucketName)) {\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 const wsProt = wsProtocol(url.protocol);\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}/ws/watch/${bucketName}?prefix=${prefix}&suffix=${suffix}`\n );\n\n let interval: any | null = null;\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n c.send(\"ok\");\n interval = setInterval(() => {\n c.send(\"ok\");\n }, 10 * 1000);\n };\n c.onmessage = (message: IMessageEvent) => {\n let m: EventInfo = JSON.parse(message.data.toString());\n m.Time = new Date(m.Time.toString());\n m.key = Math.random();\n watchMessageReceived(m);\n };\n c.onclose = () => {\n clearInterval(interval);\n console.log(\"connection closed by server\");\n // reset start status\n setStart(false);\n };\n return () => {\n // close websocket on useEffect cleanup\n c.close(1000);\n clearInterval(interval);\n console.log(\"closing websockets\");\n };\n }\n } else {\n // reset start status\n setStart(false);\n }\n }, [\n watchMessageReceived,\n start,\n bucketList,\n bucketName,\n prefix,\n suffix,\n watchResetMessages,\n ]);\n\n const bucketNames = bucketList.map((bucketName) => ({\n label: bucketName.name,\n value: bucketName.name,\n }));\n\n return (\n \n \n \n \n \n \n {\n setBucketName(e.target.value as string);\n }}\n className={classes.searchField}\n disabled={start}\n input={}\n >\n \n Select Bucket\n \n {bucketNames.map((option) => (\n \n {option.label}\n \n ))}\n \n \n {\n setPrefix(e.target.value);\n }}\n variant=\"standard\"\n />\n {\n setSuffix(e.target.value);\n }}\n variant=\"standard\"\n />\n setStart(true)}\n >\n Start\n \n \n\n
    \n \n
    \n
    \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n messages: state.watch.messages,\n});\n\nconst connector = connect(mapState, {\n watchMessageReceived: watchMessageReceived,\n watchResetMessages: watchResetMessages,\n});\n\nexport default connector(withStyles(styles)(Watch));\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseNormalClosure = 1000;\nexport const WSCloseCloseGoingAway = 1001;\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 10 5 5 5-5z\"\n}), 'ArrowDropDown');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m7 14 5-5 5 5z\"\n}), 'ArrowDropUp');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M14.67 5v14H9.33V5h5.34zm1 14H21V5h-5.33v14zm-7.34 0V5H3v14h5.33z\"\n}), 'ViewColumn');\n\nexports.default = _default;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z\"\n}), 'CheckBoxOutlineBlank');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z\"\n}), 'CheckBox');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n/**\n * @ignore - internal component.\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 3H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm-2 10H7v-2h10v2z\"\n}), 'IndeterminateCheckBox');","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getCheckboxUtilityClass(slot) {\n return generateUtilityClass('MuiCheckbox', slot);\n}\nconst checkboxClasses = generateUtilityClasses('MuiCheckbox', ['root', 'checked', 'disabled', 'indeterminate', 'colorPrimary', 'colorSecondary']);\nexport default checkboxClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"checkedIcon\", \"color\", \"icon\", \"indeterminate\", \"indeterminateIcon\", \"inputProps\", \"size\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport SwitchBase from '../internal/SwitchBase';\nimport CheckBoxOutlineBlankIcon from '../internal/svg-icons/CheckBoxOutlineBlank';\nimport CheckBoxIcon from '../internal/svg-icons/CheckBox';\nimport IndeterminateCheckBoxIcon from '../internal/svg-icons/IndeterminateCheckBox';\nimport capitalize from '../utils/capitalize';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled, { rootShouldForwardProp } from '../styles/styled';\nimport checkboxClasses, { getCheckboxUtilityClass } from './checkboxClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n indeterminate,\n color\n } = ownerState;\n const slots = {\n root: ['root', indeterminate && 'indeterminate', `color${capitalize(color)}`]\n };\n const composedClasses = composeClasses(slots, getCheckboxUtilityClass, classes);\n return _extends({}, classes, composedClasses);\n};\n\nconst CheckboxRoot = styled(SwitchBase, {\n shouldForwardProp: prop => rootShouldForwardProp(prop) || prop === 'classes',\n name: 'MuiCheckbox',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.indeterminate && styles.indeterminate, ownerState.color !== 'default' && styles[`color${capitalize(ownerState.color)}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n color: theme.palette.text.secondary\n}, !ownerState.disableRipple && {\n '&:hover': {\n backgroundColor: alpha(ownerState.color === 'default' ? theme.palette.action.active : theme.palette[ownerState.color].main, theme.palette.action.hoverOpacity),\n // Reset on touch devices, it doesn't add specificity\n '@media (hover: none)': {\n backgroundColor: 'transparent'\n }\n }\n}, ownerState.color !== 'default' && {\n [`&.${checkboxClasses.checked}, &.${checkboxClasses.indeterminate}`]: {\n color: theme.palette[ownerState.color].main\n },\n [`&.${checkboxClasses.disabled}`]: {\n color: theme.palette.action.disabled\n }\n}));\n\nconst defaultCheckedIcon = /*#__PURE__*/_jsx(CheckBoxIcon, {});\n\nconst defaultIcon = /*#__PURE__*/_jsx(CheckBoxOutlineBlankIcon, {});\n\nconst defaultIndeterminateIcon = /*#__PURE__*/_jsx(IndeterminateCheckBoxIcon, {});\n\nconst Checkbox = /*#__PURE__*/React.forwardRef(function Checkbox(inProps, ref) {\n var _icon$props$fontSize, _indeterminateIcon$pr;\n\n const props = useThemeProps({\n props: inProps,\n name: 'MuiCheckbox'\n });\n\n const {\n checkedIcon = defaultCheckedIcon,\n color = 'primary',\n icon: iconProp = defaultIcon,\n indeterminate = false,\n indeterminateIcon: indeterminateIconProp = defaultIndeterminateIcon,\n inputProps,\n size = 'medium'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const icon = indeterminate ? indeterminateIconProp : iconProp;\n const indeterminateIcon = indeterminate ? indeterminateIconProp : checkedIcon;\n\n const ownerState = _extends({}, props, {\n color,\n indeterminate,\n size\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(CheckboxRoot, _extends({\n type: \"checkbox\",\n inputProps: _extends({\n 'data-indeterminate': indeterminate\n }, inputProps),\n icon: /*#__PURE__*/React.cloneElement(icon, {\n fontSize: (_icon$props$fontSize = icon.props.fontSize) != null ? _icon$props$fontSize : size\n }),\n checkedIcon: /*#__PURE__*/React.cloneElement(indeterminateIcon, {\n fontSize: (_indeterminateIcon$pr = indeterminateIcon.props.fontSize) != null ? _indeterminateIcon$pr : size\n }),\n ownerState: ownerState,\n ref: ref\n }, other, {\n classes: classes\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Checkbox.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n\n /**\n * The icon to display when the component is checked.\n * @default \n */\n checkedIcon: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * The color of the component. It supports those theme colors that make sense for this component.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['default', 'primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n\n /**\n * The default checked state. Use when the component is not controlled.\n */\n defaultChecked: PropTypes.bool,\n\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n\n /**\n * If `true`, the ripple effect is disabled.\n */\n disableRipple: PropTypes.bool,\n\n /**\n * The icon to display when the component is unchecked.\n * @default \n */\n icon: PropTypes.node,\n\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n\n /**\n * If `true`, the component appears indeterminate.\n * This does not set the native input element to indeterminate due\n * to inconsistent behavior across browsers.\n * However, we set a `data-indeterminate` attribute on the `input`.\n * @default false\n */\n indeterminate: PropTypes.bool,\n\n /**\n * The icon to display when the component is indeterminate.\n * @default \n */\n indeterminateIcon: PropTypes.node,\n\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n\n /**\n * Callback fired when the state is changed.\n *\n * @param {React.ChangeEvent} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n\n /**\n * The size of the component.\n * `small` is equivalent to the dense checkbox styling.\n * @default 'medium'\n */\n size: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The value of the component. The DOM API casts this to a string.\n * The browser uses \"on\" as the default value.\n */\n value: PropTypes.any\n} : void 0;\nexport default Checkbox;","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","var baseGetTag = require('./_baseGetTag'),\n isArray = require('./isArray'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @since 0.1.0\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a string, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' ||\n (!isArray(value) && isObjectLike(value) && baseGetTag(value) == stringTag);\n}\n\nmodule.exports = isString;\n","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","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}"],"names":["withStyles","theme","createStyles","pageContentStyles","classes","className","children","contentSpacer","container","item","xs","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","width","minHeight","display","backgroundColor","left","boxShadow","label","justifyContent","alignItems","labelStyle","color","fontSize","fontWeight","marginLeft","marginTop","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","actions","includes","Fragment","direction","sm","md","sx","paddingTop","variant","length","component","onClick","id","size","SelectStyled","root","lineHeight","spacing","input","height","InputBase","messages","watch","watchMessageReceived","watchResetMessages","searchPrefix","flexGrow","watchTableHeight","bucketField","minWidth","tableStyles","actionsTray","searchField","containerForHeader","useState","start","setStart","bucketName","setBucketName","prefix","setPrefix","suffix","setSuffix","bucketList","setBucketList","useEffect","api","then","res","buckets","catch","err","log","some","bucket","name","url","URL","window","location","toString","port","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","interval","onopen","send","setInterval","onmessage","message","m","JSON","parse","data","Time","Date","key","Math","random","onclose","clearInterval","close","bucketNames","map","value","onChange","e","target","disabled","option","InputProps","disableUnderline","type","tableBlock","columns","elementKey","renderFunction","timeFromDate","niceBytes","records","entityName","customEmptyMessage","idField","isLoading","customPaperHeight","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","createSvgIcon","_jsx","getCheckboxUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","CheckboxRoot","styled","SwitchBase","shouldForwardProp","prop","rootShouldForwardProp","overridesResolver","props","styles","ownerState","indeterminate","capitalize","_extends","text","secondary","disableRipple","alpha","action","active","hoverOpacity","checkboxClasses","defaultCheckedIcon","CheckBoxIcon","defaultIcon","CheckBoxOutlineBlankIcon","defaultIndeterminateIcon","IndeterminateCheckBoxIcon","React","inProps","ref","_icon$props$fontSize","_indeterminateIcon$pr","useThemeProps","checkedIcon","icon","iconProp","indeterminateIcon","indeterminateIconProp","inputProps","other","_objectWithoutPropertiesLoose","slots","composedClasses","composeClasses","useUtilityClasses","naiveFallback","self","Error","module","this","globalThis","Object","defineProperty","prototype","get","configurable","error","__global__","baseGetTag","isArray","isObjectLike","_globalThis","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","forEach","_objectWithoutProperties","source","excluded","i","getOwnPropertySymbols","sourceSymbolKeys","indexOf","propertyIsEnumerable","call"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/6137.8b758e88.chunk.js b/portal-ui/build/static/js/6137.1990ccdd.chunk.js similarity index 98% rename from portal-ui/build/static/js/6137.8b758e88.chunk.js rename to portal-ui/build/static/js/6137.1990ccdd.chunk.js index 6f14f102f..cc478b6bc 100644 --- a/portal-ui/build/static/js/6137.8b758e88.chunk.js +++ b/portal-ui/build/static/js/6137.1990ccdd.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6137],{84669:function(e,t,n){n(72791);var o=n(91523),r=n(11135),a=n(25787),i=n(74833),l=n(64554),s=n(80184);t.Z=(0,a.Z)((function(e){return(0,r.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var t=e.to,n=e.label,r=e.classes,a=e.className,c=e.executeOnClick;return(0,s.jsx)(l.Z,{sx:{display:"flex",alignItems:"center"},children:(0,s.jsx)(o.rU,{to:t,className:"".concat(r.link," ").concat(a||""),onClick:function(){c&&c()},children:(0,s.jsxs)("div",{className:r.iconBox,children:[(0,s.jsx)("div",{className:r.icon,children:(0,s.jsx)(i.xN,{})}),(0,s.jsx)("div",{className:r.label,children:n})]})})})}))},75578:function(e,t,n){var o=n(1413),r=n(72791),a=n(80184);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function n(n){return(0,a.jsx)(r.Suspense,{fallback:t,children:(0,a.jsx)(e,(0,o.Z)({},n))})}return n}},74794:function(e,t,n){var o=n(1413),r=(n(72791),n(61889)),a=n(11135),i=n(25787),l=n(23814),s=n(80184);t.Z=(0,i.Z)((function(e){return(0,a.Z)((0,o.Z)({},l.Bw))}))((function(e){var t=e.classes,n=e.className,o=void 0===n?"":n,a=e.children;return(0,s.jsx)("div",{className:t.contentSpacer,children:(0,s.jsx)(r.ZP,{container:!0,children:(0,s.jsx)(r.ZP,{item:!0,xs:12,className:o,children:a})})})}))},32291:function(e,t,n){var o=n(72791),r=n(60364),a=n(61889),i=n(11135),l=n(25787),s=n(20890),c=n(13400),d=n(95466),p=n(84683),u=n(3925),m=n(74833),g=n(80184),h={toggleList:u.kQ},f=(0,r.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),h);t.Z=f((0,l.Z)((function(e){return(0,i.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,n=e.label,r=e.actions,i=e.sidebarOpen,l=e.operatorMode,u=e.managerObjects,h=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,g.jsx)(o.Fragment,{}):(0,g.jsxs)(a.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,g.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!i&&(0,g.jsx)("div",{className:t.logo,children:l?(0,g.jsx)(d.Z,{}):(0,g.jsx)(p.Z,{})}),(0,g.jsx)(s.Z,{variant:"h4",className:t.labelStyle,children:n})]}),f&&(0,g.jsx)(a.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,g.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.rightMenu,children:[r&&r,u&&u.length>0&&(0,g.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,g.jsx)(m.gx,{})})]})]})})))},96137:function(e,t,n){n.r(t);var o=n(70885),r=n(1413),a=n(72791),i=n(60364),l=n(26181),s=n.n(l),c=n(61889),d=n(11135),p=n(25787),u=n(36151),m=n(81207),g=n(42649),h=n(15514),f=n(23814),b=n(32291),y=n(62666),S=n(75578),v=n(84669),x=n(74794),T=n(56087),k=n(80184),E=(0,S.Z)(a.lazy((function(){return Promise.all([n.e(1520),n.e(4781)]).then(n.bind(n,84781))}))),N=(0,S.Z)(a.lazy((function(){return n.e(9478).then(n.bind(n,29478))}))),j=(0,S.Z)(a.lazy((function(){return Promise.all([n.e(1520),n.e(7164)]).then(n.bind(n,27164))}))),A={serverNeedsRestart:g.o8,setErrorSnackMessage:g.Ih},_=(0,i.$j)(null,A);t.default=_((0,p.Z)((function(e){return(0,d.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},f.oO),f.Je),{},{lambdaNotif:{background:"linear-gradient(90deg, rgba(249,249,250,1) 0%, rgba(250,250,251,1) 68%, rgba(254,254,254,1) 100%)",border:"#E5E5E5 1px solid",borderRadius:5,height:80,display:"flex",alignItems:"center",justifyContent:"start",marginBottom:16,cursor:"pointer",padding:0,overflow:"hidden"},lambdaNotifIcon:{backgroundColor:"#FEFEFE",display:"flex",alignItems:"center",justifyContent:"center",width:80,height:80,"& img":{maxWidth:46,maxHeight:46}},lambdaNotifTitle:{color:"#07193E",fontSize:16,fontFamily:"Lato,sans-serif",paddingLeft:18},formBox:{border:"1px solid #EAEAEA",padding:15}}))}))((function(e){var t=e.match,n=e.saveAndRefresh,r=e.serverNeedsRestart,i=e.classes,l=e.setErrorSnackMessage,d=(0,a.useState)([]),p=(0,o.Z)(d,2),g=p[0],f=p[1],S=(0,a.useState)(!1),A=(0,o.Z)(S,2),_=A[0],L=A[1],Z=t.params.service;(0,a.useEffect)((function(){if(_){var e={key_values:(0,h.DD)(g)};m.Z.invoke("PUT","/api/v1/configs/".concat(Z),e).then((function(){L(!1),r(!0),y.Z.push(T.gA.NOTIFICATIONS_ENDPOINTS)})).catch((function(e){L(!1),l(e)}))}}),[_,r,Z,g,n,l]);var C,w=(0,a.useCallback)((function(e){f(e)}),[f]);switch(Z){case h.ee:C=(0,k.jsx)(j,{onChange:w});break;case h.dM:C=(0,k.jsx)(E,{onChange:w});break;default:var q=s()(h.oj,Z,[]);C=(0,k.jsx)(N,{fields:q,onChange:w})}var P=h.BR.find((function(e){return e.actionTrigger===Z}));return(0,k.jsxs)(a.Fragment,{children:[(0,k.jsx)(b.Z,{label:(0,k.jsx)(a.Fragment,{children:(0,k.jsx)(v.Z,{to:T.gA.NOTIFICATIONS_ENDPOINTS_ADD,label:"Notification Endpoint"})}),actions:(0,k.jsx)(a.Fragment,{})}),(0,k.jsx)(x.Z,{children:(0,k.jsx)("form",{noValidate:!0,onSubmit:function(e){e.preventDefault(),L(!0)},children:""!==Z&&(0,k.jsxs)(a.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,children:P&&(0,k.jsxs)("div",{className:i.lambdaNotif,children:[(0,k.jsx)("div",{className:i.lambdaNotifIcon,children:(0,k.jsx)("img",{src:P.logo,className:i.logoButton,alt:P.targetTitle})}),(0,k.jsx)("div",{className:i.lambdaNotifTitle,children:(0,k.jsxs)("b",{children:[P?P.targetTitle:"","Notification Endpoint"]})})]},"icon-".concat(P.targetTitle))}),(0,k.jsxs)("div",{className:i.formBox,children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:i.configForm,children:C}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:i.settingsButtonContainer,children:(0,k.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",disabled:_,children:"Save Notification Target"})})]})]})})})]})})))},15514:function(e,t,n){n.d(t,{BR:function(){return f},DD:function(){return y},dM:function(){return i},ee:function(){return a},fk:function(){return h},oj:function(){return S}});var o,r=n(4942),a="notify_postgres",i="notify_mysql",l="notify_kafka",s="notify_amqp",c="notify_mqtt",d="notify_redis",p="notify_nats",u="notify_elasticsearch",m="notify_webhook",g="notify_nsq",h=function(e){return e.map((function(e){return{service_name:"".concat(e.service,":").concat(e.account_id),status:e.status}}))},f=[{actionTrigger:a,targetTitle:"PostgreSQL",logo:"/postgres-logo.svg"},{actionTrigger:l,targetTitle:"Kafka",logo:"/kafka-logo.svg"},{actionTrigger:s,targetTitle:"AMQP",logo:"/amqp-logo.svg"},{actionTrigger:c,targetTitle:"MQTT",logo:"/mqtt-logo.svg"},{actionTrigger:d,targetTitle:"Redis",logo:"/redis-logo.svg"},{actionTrigger:p,targetTitle:"NATS",logo:"/nats-logo.svg"},{actionTrigger:i,targetTitle:"Mysql",logo:"/mysql-logo.svg"},{actionTrigger:u,targetTitle:"Elastic Search",logo:"/elasticsearch-logo.svg"},{actionTrigger:m,targetTitle:"Webhook",logo:"/webhooks-logo.svg"},{actionTrigger:g,targetTitle:"NSQ",logo:"/nsq-logo.svg"}],b=[{name:"queue-dir",label:"Queue Directory",required:!0,tooltip:"staging dir for undelivered messages e.g. '/home/events'",type:"string",placeholder:"Enter Queue Directory"},{name:"queue-limit",label:"Queue Limit",required:!1,tooltip:"maximum limit for undelivered messages, defaults to '10000'",type:"number",placeholder:"Enter Queue Limit"},{name:"comment",label:"Comment",required:!1,type:"comment",placeholder:"Enter custom notes if any"}],y=function(e){return e.filter((function(e){return""!==e.value}))},S=(o={},(0,r.Z)(o,l,[{name:"brokers",label:"Brokers",required:!0,tooltip:"Comma separated list of Kafka broker addresses",type:"string",placeholder:"Enter Brokers"},{name:"topic",label:"Topic",tooltip:"Kafka topic used for bucket notifications",type:"string",placeholder:"Enter Topic"},{name:"sasl_username",label:"SASL Username",tooltip:"Username for SASL/PLAIN or SASL/SCRAM authentication",type:"string",placeholder:"Enter SASL Username"},{name:"sasl_password",label:"SASL Password",tooltip:"Password for SASL/PLAIN or SASL/SCRAM authentication",type:"string",placeholder:"Enter SASL Password"},{name:"sasl_mechanism",label:"SASL Mechanism",tooltip:"SASL authentication mechanism, default 'PLAIN'",type:"string"},{name:"tls_client_auth",label:"TLS Client Auth",tooltip:"Client Auth determines the Kafka server's policy for TLS client auth",type:"string",placeholder:"Enter TLS Client Auth"},{name:"sasl",label:"SASL",tooltip:"Set to 'on' to enable SASL authentication",type:"on|off"},{name:"tls",label:"TLS",tooltip:"Set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS skip verify",tooltip:'Trust server TLS without verification, defaults to "on" (verify)',type:"on|off"},{name:"client_tls_cert",label:"client TLS cert",tooltip:"Path to client certificate for mTLS auth",type:"path",placeholder:"Enter TLS Client Cert"},{name:"client_tls_key",label:"client TLS key",tooltip:"Path to client key for mTLS auth",type:"path",placeholder:"Enter TLS Client Key"},{name:"version",label:"Version",tooltip:"Specify the version of the Kafka cluster e.g '2.2.0'",type:"string",placeholder:"Enter Kafka Version"}].concat(b)),(0,r.Z)(o,s,[{name:"url",required:!0,label:"URL",tooltip:"AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672`",type:"url"},{name:"exchange",label:"Exchange",tooltip:"Name of the AMQP exchange",type:"string",placeholder:"Enter Exchange"},{name:"exchange_type",label:"Exchange Type",tooltip:"AMQP exchange type",type:"string",placeholder:"Enter Exchange Type"},{name:"routing_key",label:"Routing Key",tooltip:"Routing key for publishing",type:"string",placeholder:"Enter Routing Key"},{name:"mandatory",label:"Mandatory",tooltip:"Quietly ignore undelivered messages when set to 'off', default is 'on'",type:"on|off"},{name:"durable",label:"Durable",tooltip:"Persist queue across broker restarts when set to 'on', default is 'off'",type:"on|off"},{name:"no_wait",label:"No Wait",tooltip:"Non-blocking message delivery when set to 'on', default is 'off'",type:"on|off"},{name:"internal",label:"Internal",tooltip:"Set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges",type:"on|off"},{name:"auto_deleted",label:"Auto Deleted",tooltip:"Auto delete queue when set to 'on', when there are no consumers",type:"on|off"},{name:"delivery_mode",label:"Delivery Mode",tooltip:"Set to '1' for non-persistent or '2' for persistent queue",type:"number",placeholder:"Enter Delivery Mode"}].concat(b)),(0,r.Z)(o,d,[{name:"address",required:!0,label:"Address",tooltip:"Redis server's address. For example: `localhost:6379`",type:"address",placeholder:"Enter Address"},{name:"key",required:!0,label:"Key",tooltip:"Redis key to store/update events, key is auto-created",type:"string",placeholder:"Enter Key"},{name:"password",label:"Password",tooltip:"Redis server password",type:"string",placeholder:"Enter Password"}].concat(b)),(0,r.Z)(o,c,[{name:"broker",required:!0,label:"Broker",tooltip:"MQTT server endpoint e.g. `tcp://localhost:1883`",type:"uri",placeholder:"Enter Brokers"},{name:"topic",required:!0,label:"Topic",tooltip:"name of the MQTT topic to publish",type:"string",placeholder:"Enter Topic"},{name:"username",label:"Username",tooltip:"MQTT username",type:"string",placeholder:"Enter Username"},{name:"password",label:"Password",tooltip:"MQTT password",type:"string",placeholder:"Enter Password"},{name:"qos",label:"QOS",tooltip:"Set the quality of service priority, defaults to '0'",type:"number",placeholder:"Enter QOS"},{name:"keep_alive_interval",label:"Keep Alive Interval",tooltip:"Keep-alive interval for MQTT connections in s,m,h,d",type:"duration",placeholder:"Enter Keep Alive Internal"},{name:"reconnect_interval",label:"Reconnect Interval",tooltip:"Reconnect interval for MQTT connections in s,m,h,d",type:"duration",placeholder:"Enter Reconnect Interval"}].concat(b)),(0,r.Z)(o,p,[{name:"address",required:!0,label:"Address",tooltip:"NATS server address e.g. '0.0.0.0:4222'",type:"address",placeholder:"Enter Address"},{name:"subject",required:!0,label:"Subject",tooltip:"NATS subscription subject",type:"string",placeholder:"Enter NATS Subject"},{name:"username",label:"Username",tooltip:"NATS username",type:"string",placeholder:"Enter NATS Username"},{name:"password",label:"Password",tooltip:"NATS password",type:"string",placeholder:"Enter NATS password"},{name:"token",label:"Token",tooltip:"NATS token",type:"string",placeholder:"Enter NATS token"},{name:"tls",label:"TLS",tooltip:"Set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS Skip Verify",tooltip:'Trust server TLS without verification, defaults to "on" (verify)',type:"on|off"},{name:"ping_interval",label:"Ping Interval",tooltip:"Client ping commands interval in s,m,h,d. Disabled by default",type:"duration",placeholder:"Enter Ping Interval"},{name:"streaming",label:"Streaming",tooltip:"Set to 'on', to use streaming NATS server",type:"on|off"},{name:"streaming_async",label:"Streaming async",tooltip:"Set to 'on', to enable asynchronous publish",type:"on|off"},{name:"streaming_max_pub_acks_in_flight",label:"Streaming max publish ACKS in flight",tooltip:"Number of messages to publish without waiting for ACKs",type:"number",placeholder:"Enter Streaming in flight value"},{name:"streaming_cluster_id",label:"Streaming Cluster ID",tooltip:"Unique ID for NATS streaming cluster",type:"string",placeholder:"Enter Streaming Cluster ID"},{name:"cert_authority",label:"Cert Authority",tooltip:"Path to certificate chain of the target NATS server",type:"string",placeholder:"Enter Cert Authority"},{name:"client_cert",label:"Client Cert",tooltip:"Client cert for NATS mTLS auth",type:"string",placeholder:"Enter Client Cert"},{name:"client_key",label:"Client Key",tooltip:"Client cert key for NATS mTLS auth",type:"string",placeholder:"Enter Client Key"}].concat(b)),(0,r.Z)(o,u,[{name:"url",required:!0,label:"URL",tooltip:"Elasticsearch server's address, with optional authentication info",type:"url",placeholder:"Enter URL"},{name:"index",required:!0,label:"Index",tooltip:"Elasticsearch index to store/update events, index is auto-created",type:"string",placeholder:"Enter Index"},{name:"format",required:!0,label:"Format",tooltip:"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'",type:"enum",placeholder:"Enter Format"}].concat(b)),(0,r.Z)(o,m,[{name:"endpoint",required:!0,label:"Endpoint",tooltip:"webhook server endpoint e.g. http://localhost:8080/minio/events",type:"url",placeholder:"Enter Endpoint"},{name:"auth_token",label:"Auth Token",tooltip:"opaque string or JWT authorization token",type:"string",placeholder:"Enter auth_token"}].concat(b)),(0,r.Z)(o,g,[{name:"nsqd_address",required:!0,label:"NSQD Address",tooltip:"NSQ server address e.g. '127.0.0.1:4150'",type:"address",placeholder:"Enter nsqd_address"},{name:"topic",required:!0,label:"Topic",tooltip:"NSQ topic",type:"string",placeholder:"Enter Topic"},{name:"tls",label:"TLS",tooltip:"set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS Skip Verify",tooltip:'trust server TLS without verification, defaults to "on" (verify)',type:"on|off"}].concat(b)),o)}}]); -//# sourceMappingURL=6137.8b758e88.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6137],{84669:function(e,t,n){n(72791);var o=n(91523),r=n(11135),a=n(25787),i=n(13048),l=n(64554),s=n(80184);t.Z=(0,a.Z)((function(e){return(0,r.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var t=e.to,n=e.label,r=e.classes,a=e.className,c=e.executeOnClick;return(0,s.jsx)(l.Z,{sx:{display:"flex",alignItems:"center"},children:(0,s.jsx)(o.rU,{to:t,className:"".concat(r.link," ").concat(a||""),onClick:function(){c&&c()},children:(0,s.jsxs)("div",{className:r.iconBox,children:[(0,s.jsx)("div",{className:r.icon,children:(0,s.jsx)(i.xN,{})}),(0,s.jsx)("div",{className:r.label,children:n})]})})})}))},75578:function(e,t,n){var o=n(1413),r=n(72791),a=n(80184);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function n(n){return(0,a.jsx)(r.Suspense,{fallback:t,children:(0,a.jsx)(e,(0,o.Z)({},n))})}return n}},74794:function(e,t,n){var o=n(1413),r=(n(72791),n(61889)),a=n(11135),i=n(25787),l=n(23814),s=n(80184);t.Z=(0,i.Z)((function(e){return(0,a.Z)((0,o.Z)({},l.Bw))}))((function(e){var t=e.classes,n=e.className,o=void 0===n?"":n,a=e.children;return(0,s.jsx)("div",{className:t.contentSpacer,children:(0,s.jsx)(r.ZP,{container:!0,children:(0,s.jsx)(r.ZP,{item:!0,xs:12,className:o,children:a})})})}))},32291:function(e,t,n){var o=n(72791),r=n(60364),a=n(61889),i=n(11135),l=n(25787),s=n(20890),c=n(13400),d=n(95466),p=n(84683),u=n(3925),m=n(13048),g=n(80184),h={toggleList:u.kQ},f=(0,r.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),h);t.Z=f((0,l.Z)((function(e){return(0,i.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,n=e.label,r=e.actions,i=e.sidebarOpen,l=e.operatorMode,u=e.managerObjects,h=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,g.jsx)(o.Fragment,{}):(0,g.jsxs)(a.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,g.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!i&&(0,g.jsx)("div",{className:t.logo,children:l?(0,g.jsx)(d.Z,{}):(0,g.jsx)(p.Z,{})}),(0,g.jsx)(s.Z,{variant:"h4",className:t.labelStyle,children:n})]}),f&&(0,g.jsx)(a.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,g.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.rightMenu,children:[r&&r,u&&u.length>0&&(0,g.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,g.jsx)(m.gx,{})})]})]})})))},96137:function(e,t,n){n.r(t);var o=n(70885),r=n(1413),a=n(72791),i=n(60364),l=n(26181),s=n.n(l),c=n(61889),d=n(11135),p=n(25787),u=n(36151),m=n(81207),g=n(42649),h=n(15514),f=n(23814),b=n(32291),y=n(62666),S=n(75578),v=n(84669),x=n(74794),T=n(56087),k=n(80184),E=(0,S.Z)(a.lazy((function(){return Promise.all([n.e(1520),n.e(4781)]).then(n.bind(n,84781))}))),N=(0,S.Z)(a.lazy((function(){return n.e(9478).then(n.bind(n,29478))}))),j=(0,S.Z)(a.lazy((function(){return Promise.all([n.e(1520),n.e(7164)]).then(n.bind(n,27164))}))),A={serverNeedsRestart:g.o8,setErrorSnackMessage:g.Ih},_=(0,i.$j)(null,A);t.default=_((0,p.Z)((function(e){return(0,d.Z)((0,r.Z)((0,r.Z)((0,r.Z)({},f.oO),f.Je),{},{lambdaNotif:{background:"linear-gradient(90deg, rgba(249,249,250,1) 0%, rgba(250,250,251,1) 68%, rgba(254,254,254,1) 100%)",border:"#E5E5E5 1px solid",borderRadius:5,height:80,display:"flex",alignItems:"center",justifyContent:"start",marginBottom:16,cursor:"pointer",padding:0,overflow:"hidden"},lambdaNotifIcon:{backgroundColor:"#FEFEFE",display:"flex",alignItems:"center",justifyContent:"center",width:80,height:80,"& img":{maxWidth:46,maxHeight:46}},lambdaNotifTitle:{color:"#07193E",fontSize:16,fontFamily:"Lato,sans-serif",paddingLeft:18},formBox:{border:"1px solid #EAEAEA",padding:15}}))}))((function(e){var t=e.match,n=e.saveAndRefresh,r=e.serverNeedsRestart,i=e.classes,l=e.setErrorSnackMessage,d=(0,a.useState)([]),p=(0,o.Z)(d,2),g=p[0],f=p[1],S=(0,a.useState)(!1),A=(0,o.Z)(S,2),_=A[0],L=A[1],Z=t.params.service;(0,a.useEffect)((function(){if(_){var e={key_values:(0,h.DD)(g)};m.Z.invoke("PUT","/api/v1/configs/".concat(Z),e).then((function(){L(!1),r(!0),y.Z.push(T.gA.NOTIFICATIONS_ENDPOINTS)})).catch((function(e){L(!1),l(e)}))}}),[_,r,Z,g,n,l]);var C,w=(0,a.useCallback)((function(e){f(e)}),[f]);switch(Z){case h.ee:C=(0,k.jsx)(j,{onChange:w});break;case h.dM:C=(0,k.jsx)(E,{onChange:w});break;default:var q=s()(h.oj,Z,[]);C=(0,k.jsx)(N,{fields:q,onChange:w})}var P=h.BR.find((function(e){return e.actionTrigger===Z}));return(0,k.jsxs)(a.Fragment,{children:[(0,k.jsx)(b.Z,{label:(0,k.jsx)(a.Fragment,{children:(0,k.jsx)(v.Z,{to:T.gA.NOTIFICATIONS_ENDPOINTS_ADD,label:"Notification Endpoint"})}),actions:(0,k.jsx)(a.Fragment,{})}),(0,k.jsx)(x.Z,{children:(0,k.jsx)("form",{noValidate:!0,onSubmit:function(e){e.preventDefault(),L(!0)},children:""!==Z&&(0,k.jsxs)(a.Fragment,{children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,children:P&&(0,k.jsxs)("div",{className:i.lambdaNotif,children:[(0,k.jsx)("div",{className:i.lambdaNotifIcon,children:(0,k.jsx)("img",{src:P.logo,className:i.logoButton,alt:P.targetTitle})}),(0,k.jsx)("div",{className:i.lambdaNotifTitle,children:(0,k.jsxs)("b",{children:[P?P.targetTitle:"","Notification Endpoint"]})})]},"icon-".concat(P.targetTitle))}),(0,k.jsxs)("div",{className:i.formBox,children:[(0,k.jsx)(c.ZP,{item:!0,xs:12,className:i.configForm,children:C}),(0,k.jsx)(c.ZP,{item:!0,xs:12,className:i.settingsButtonContainer,children:(0,k.jsx)(u.Z,{type:"submit",variant:"contained",color:"primary",disabled:_,children:"Save Notification Target"})})]})]})})})]})})))},15514:function(e,t,n){n.d(t,{BR:function(){return f},DD:function(){return y},dM:function(){return i},ee:function(){return a},fk:function(){return h},oj:function(){return S}});var o,r=n(4942),a="notify_postgres",i="notify_mysql",l="notify_kafka",s="notify_amqp",c="notify_mqtt",d="notify_redis",p="notify_nats",u="notify_elasticsearch",m="notify_webhook",g="notify_nsq",h=function(e){return e.map((function(e){return{service_name:"".concat(e.service,":").concat(e.account_id),status:e.status}}))},f=[{actionTrigger:a,targetTitle:"PostgreSQL",logo:"/postgres-logo.svg"},{actionTrigger:l,targetTitle:"Kafka",logo:"/kafka-logo.svg"},{actionTrigger:s,targetTitle:"AMQP",logo:"/amqp-logo.svg"},{actionTrigger:c,targetTitle:"MQTT",logo:"/mqtt-logo.svg"},{actionTrigger:d,targetTitle:"Redis",logo:"/redis-logo.svg"},{actionTrigger:p,targetTitle:"NATS",logo:"/nats-logo.svg"},{actionTrigger:i,targetTitle:"Mysql",logo:"/mysql-logo.svg"},{actionTrigger:u,targetTitle:"Elastic Search",logo:"/elasticsearch-logo.svg"},{actionTrigger:m,targetTitle:"Webhook",logo:"/webhooks-logo.svg"},{actionTrigger:g,targetTitle:"NSQ",logo:"/nsq-logo.svg"}],b=[{name:"queue-dir",label:"Queue Directory",required:!0,tooltip:"staging dir for undelivered messages e.g. '/home/events'",type:"string",placeholder:"Enter Queue Directory"},{name:"queue-limit",label:"Queue Limit",required:!1,tooltip:"maximum limit for undelivered messages, defaults to '10000'",type:"number",placeholder:"Enter Queue Limit"},{name:"comment",label:"Comment",required:!1,type:"comment",placeholder:"Enter custom notes if any"}],y=function(e){return e.filter((function(e){return""!==e.value}))},S=(o={},(0,r.Z)(o,l,[{name:"brokers",label:"Brokers",required:!0,tooltip:"Comma separated list of Kafka broker addresses",type:"string",placeholder:"Enter Brokers"},{name:"topic",label:"Topic",tooltip:"Kafka topic used for bucket notifications",type:"string",placeholder:"Enter Topic"},{name:"sasl_username",label:"SASL Username",tooltip:"Username for SASL/PLAIN or SASL/SCRAM authentication",type:"string",placeholder:"Enter SASL Username"},{name:"sasl_password",label:"SASL Password",tooltip:"Password for SASL/PLAIN or SASL/SCRAM authentication",type:"string",placeholder:"Enter SASL Password"},{name:"sasl_mechanism",label:"SASL Mechanism",tooltip:"SASL authentication mechanism, default 'PLAIN'",type:"string"},{name:"tls_client_auth",label:"TLS Client Auth",tooltip:"Client Auth determines the Kafka server's policy for TLS client auth",type:"string",placeholder:"Enter TLS Client Auth"},{name:"sasl",label:"SASL",tooltip:"Set to 'on' to enable SASL authentication",type:"on|off"},{name:"tls",label:"TLS",tooltip:"Set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS skip verify",tooltip:'Trust server TLS without verification, defaults to "on" (verify)',type:"on|off"},{name:"client_tls_cert",label:"client TLS cert",tooltip:"Path to client certificate for mTLS auth",type:"path",placeholder:"Enter TLS Client Cert"},{name:"client_tls_key",label:"client TLS key",tooltip:"Path to client key for mTLS auth",type:"path",placeholder:"Enter TLS Client Key"},{name:"version",label:"Version",tooltip:"Specify the version of the Kafka cluster e.g '2.2.0'",type:"string",placeholder:"Enter Kafka Version"}].concat(b)),(0,r.Z)(o,s,[{name:"url",required:!0,label:"URL",tooltip:"AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672`",type:"url"},{name:"exchange",label:"Exchange",tooltip:"Name of the AMQP exchange",type:"string",placeholder:"Enter Exchange"},{name:"exchange_type",label:"Exchange Type",tooltip:"AMQP exchange type",type:"string",placeholder:"Enter Exchange Type"},{name:"routing_key",label:"Routing Key",tooltip:"Routing key for publishing",type:"string",placeholder:"Enter Routing Key"},{name:"mandatory",label:"Mandatory",tooltip:"Quietly ignore undelivered messages when set to 'off', default is 'on'",type:"on|off"},{name:"durable",label:"Durable",tooltip:"Persist queue across broker restarts when set to 'on', default is 'off'",type:"on|off"},{name:"no_wait",label:"No Wait",tooltip:"Non-blocking message delivery when set to 'on', default is 'off'",type:"on|off"},{name:"internal",label:"Internal",tooltip:"Set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges",type:"on|off"},{name:"auto_deleted",label:"Auto Deleted",tooltip:"Auto delete queue when set to 'on', when there are no consumers",type:"on|off"},{name:"delivery_mode",label:"Delivery Mode",tooltip:"Set to '1' for non-persistent or '2' for persistent queue",type:"number",placeholder:"Enter Delivery Mode"}].concat(b)),(0,r.Z)(o,d,[{name:"address",required:!0,label:"Address",tooltip:"Redis server's address. For example: `localhost:6379`",type:"address",placeholder:"Enter Address"},{name:"key",required:!0,label:"Key",tooltip:"Redis key to store/update events, key is auto-created",type:"string",placeholder:"Enter Key"},{name:"password",label:"Password",tooltip:"Redis server password",type:"string",placeholder:"Enter Password"}].concat(b)),(0,r.Z)(o,c,[{name:"broker",required:!0,label:"Broker",tooltip:"MQTT server endpoint e.g. `tcp://localhost:1883`",type:"uri",placeholder:"Enter Brokers"},{name:"topic",required:!0,label:"Topic",tooltip:"name of the MQTT topic to publish",type:"string",placeholder:"Enter Topic"},{name:"username",label:"Username",tooltip:"MQTT username",type:"string",placeholder:"Enter Username"},{name:"password",label:"Password",tooltip:"MQTT password",type:"string",placeholder:"Enter Password"},{name:"qos",label:"QOS",tooltip:"Set the quality of service priority, defaults to '0'",type:"number",placeholder:"Enter QOS"},{name:"keep_alive_interval",label:"Keep Alive Interval",tooltip:"Keep-alive interval for MQTT connections in s,m,h,d",type:"duration",placeholder:"Enter Keep Alive Internal"},{name:"reconnect_interval",label:"Reconnect Interval",tooltip:"Reconnect interval for MQTT connections in s,m,h,d",type:"duration",placeholder:"Enter Reconnect Interval"}].concat(b)),(0,r.Z)(o,p,[{name:"address",required:!0,label:"Address",tooltip:"NATS server address e.g. '0.0.0.0:4222'",type:"address",placeholder:"Enter Address"},{name:"subject",required:!0,label:"Subject",tooltip:"NATS subscription subject",type:"string",placeholder:"Enter NATS Subject"},{name:"username",label:"Username",tooltip:"NATS username",type:"string",placeholder:"Enter NATS Username"},{name:"password",label:"Password",tooltip:"NATS password",type:"string",placeholder:"Enter NATS password"},{name:"token",label:"Token",tooltip:"NATS token",type:"string",placeholder:"Enter NATS token"},{name:"tls",label:"TLS",tooltip:"Set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS Skip Verify",tooltip:'Trust server TLS without verification, defaults to "on" (verify)',type:"on|off"},{name:"ping_interval",label:"Ping Interval",tooltip:"Client ping commands interval in s,m,h,d. Disabled by default",type:"duration",placeholder:"Enter Ping Interval"},{name:"streaming",label:"Streaming",tooltip:"Set to 'on', to use streaming NATS server",type:"on|off"},{name:"streaming_async",label:"Streaming async",tooltip:"Set to 'on', to enable asynchronous publish",type:"on|off"},{name:"streaming_max_pub_acks_in_flight",label:"Streaming max publish ACKS in flight",tooltip:"Number of messages to publish without waiting for ACKs",type:"number",placeholder:"Enter Streaming in flight value"},{name:"streaming_cluster_id",label:"Streaming Cluster ID",tooltip:"Unique ID for NATS streaming cluster",type:"string",placeholder:"Enter Streaming Cluster ID"},{name:"cert_authority",label:"Cert Authority",tooltip:"Path to certificate chain of the target NATS server",type:"string",placeholder:"Enter Cert Authority"},{name:"client_cert",label:"Client Cert",tooltip:"Client cert for NATS mTLS auth",type:"string",placeholder:"Enter Client Cert"},{name:"client_key",label:"Client Key",tooltip:"Client cert key for NATS mTLS auth",type:"string",placeholder:"Enter Client Key"}].concat(b)),(0,r.Z)(o,u,[{name:"url",required:!0,label:"URL",tooltip:"Elasticsearch server's address, with optional authentication info",type:"url",placeholder:"Enter URL"},{name:"index",required:!0,label:"Index",tooltip:"Elasticsearch index to store/update events, index is auto-created",type:"string",placeholder:"Enter Index"},{name:"format",required:!0,label:"Format",tooltip:"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'",type:"enum",placeholder:"Enter Format"}].concat(b)),(0,r.Z)(o,m,[{name:"endpoint",required:!0,label:"Endpoint",tooltip:"webhook server endpoint e.g. http://localhost:8080/minio/events",type:"url",placeholder:"Enter Endpoint"},{name:"auth_token",label:"Auth Token",tooltip:"opaque string or JWT authorization token",type:"string",placeholder:"Enter auth_token"}].concat(b)),(0,r.Z)(o,g,[{name:"nsqd_address",required:!0,label:"NSQD Address",tooltip:"NSQ server address e.g. '127.0.0.1:4150'",type:"address",placeholder:"Enter nsqd_address"},{name:"topic",required:!0,label:"Topic",tooltip:"NSQ topic",type:"string",placeholder:"Enter Topic"},{name:"tls",label:"TLS",tooltip:"set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS Skip Verify",tooltip:'trust server TLS without verification, defaults to "on" (verify)',type:"on|off"}].concat(b)),o)}}]); +//# sourceMappingURL=6137.1990ccdd.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6137.8b758e88.chunk.js.map b/portal-ui/build/static/js/6137.1990ccdd.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/6137.8b758e88.chunk.js.map rename to portal-ui/build/static/js/6137.1990ccdd.chunk.js.map index 145dad701..79ce4638a 100644 --- a/portal-ui/build/static/js/6137.8b758e88.chunk.js.map +++ b/portal-ui/build/static/js/6137.1990ccdd.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/6137.8b758e88.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/NotificationEndpoints/AddNotificationEndpoint.tsx","screens/Console/NotificationEndpoints/utils.ts"],"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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\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","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n

    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button } from \"@mui/material\";\n\nimport api from \"../../../common/api\";\nimport { serverNeedsRestart, setErrorSnackMessage } from \"../../../actions\";\nimport {\n notificationEndpointsFields,\n notifyMysql,\n notifyPostgres,\n removeEmptyFields,\n} from \"./utils\";\nimport {\n modalBasic,\n settingsCommon,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { servicesList } from \"./utils\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\n\nimport { IElementValue } from \"../Configurations/types\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport history from \"../../../history\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport BackLink from \"../../../common/BackLink\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\nconst ConfMySql = withSuspense(\n React.lazy(() => import(\"./CustomForms/ConfMySql\"))\n);\n\nconst ConfTargetGeneric = withSuspense(\n React.lazy(() => import(\"./ConfTargetGeneric\"))\n);\n\nconst ConfPostgres = withSuspense(\n React.lazy(() => import(\"./CustomForms/ConfPostgres\"))\n);\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n ...settingsCommon,\n lambdaNotif: {\n background:\n \"linear-gradient(90deg, rgba(249,249,250,1) 0%, rgba(250,250,251,1) 68%, rgba(254,254,254,1) 100%)\",\n border: \"#E5E5E5 1px solid\",\n borderRadius: 5,\n height: 80,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"start\",\n marginBottom: 16,\n cursor: \"pointer\",\n padding: 0,\n overflow: \"hidden\",\n },\n lambdaNotifIcon: {\n backgroundColor: \"#FEFEFE\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 80,\n height: 80,\n\n \"& img\": {\n maxWidth: 46,\n maxHeight: 46,\n },\n },\n lambdaNotifTitle: {\n color: \"#07193E\",\n fontSize: 16,\n fontFamily: \"Lato,sans-serif\",\n paddingLeft: 18,\n },\n formBox: {\n border: \"1px solid #EAEAEA\",\n padding: 15,\n },\n });\n\ninterface IAddNotificationEndpointProps {\n match: any;\n saveAndRefresh: any;\n serverNeedsRestart: typeof serverNeedsRestart;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n classes: any;\n}\n\nconst AddNotificationEndpoint = ({\n match,\n saveAndRefresh,\n serverNeedsRestart,\n classes,\n setErrorSnackMessage,\n}: IAddNotificationEndpointProps) => {\n //Local States\n const [valuesArr, setValueArr] = useState([]);\n const [saving, setSaving] = useState(false);\n const service = match.params[\"service\"];\n //Effects\n\n useEffect(() => {\n if (saving) {\n const payload = {\n key_values: removeEmptyFields(valuesArr),\n };\n api\n .invoke(\"PUT\", `/api/v1/configs/${service}`, payload)\n .then(() => {\n setSaving(false);\n serverNeedsRestart(true);\n history.push(IAM_PAGES.NOTIFICATIONS_ENDPOINTS);\n })\n .catch((err: ErrorResponseHandler) => {\n setSaving(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n saving,\n serverNeedsRestart,\n service,\n valuesArr,\n saveAndRefresh,\n setErrorSnackMessage,\n ]);\n\n //Fetch Actions\n const submitForm = (event: React.FormEvent) => {\n event.preventDefault();\n setSaving(true);\n };\n\n const onValueChange = useCallback(\n (newValue) => {\n setValueArr(newValue);\n },\n [setValueArr]\n );\n\n let srvComponent;\n switch (service) {\n case notifyPostgres: {\n srvComponent = ;\n break;\n }\n case notifyMysql: {\n srvComponent = ;\n break;\n }\n default: {\n const fields = get(notificationEndpointsFields, service, []);\n\n srvComponent = (\n \n );\n }\n }\n\n const targetElement = servicesList.find(\n (element) => element.actionTrigger === service\n );\n\n return (\n \n \n \n \n }\n actions={}\n />\n\n \n
    \n {service !== \"\" && (\n \n \n {targetElement && (\n \n
    \n \n
    \n\n
    \n \n {targetElement ? targetElement.targetTitle : \"\"}\n Notification Endpoint\n \n
    \n \n )}\n
    \n
    \n \n {srvComponent}\n \n \n \n Save Notification Target\n \n \n
    \n
    \n )}\n
    \n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n serverNeedsRestart,\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(AddNotificationEndpoint));\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 { NotificationEndpointItem } from \"./types\";\n\nimport { IElementValue } from \"../Configurations/types\";\n\nexport const notifyPostgres = \"notify_postgres\";\nexport const notifyMysql = \"notify_mysql\";\nexport const notifyKafka = \"notify_kafka\";\nexport const notifyAmqp = \"notify_amqp\";\nexport const notifyMqtt = \"notify_mqtt\";\nexport const notifyRedis = \"notify_redis\";\nexport const notifyNats = \"notify_nats\";\nexport const notifyElasticsearch = \"notify_elasticsearch\";\nexport const notifyWebhooks = \"notify_webhook\";\nexport const notifyNsq = \"notify_nsq\";\n\nexport const notificationTransform = (\n notificationElements: NotificationEndpointItem[]\n) => {\n return notificationElements.map((element) => {\n return {\n service_name: `${element.service}:${element.account_id}`,\n status: element.status,\n };\n });\n};\n\nexport const servicesList = [\n {\n actionTrigger: notifyPostgres,\n targetTitle: \"PostgreSQL\",\n logo: \"/postgres-logo.svg\",\n },\n {\n actionTrigger: notifyKafka,\n targetTitle: \"Kafka\",\n logo: \"/kafka-logo.svg\",\n },\n {\n actionTrigger: notifyAmqp,\n targetTitle: \"AMQP\",\n logo: \"/amqp-logo.svg\",\n },\n {\n actionTrigger: notifyMqtt,\n targetTitle: \"MQTT\",\n logo: \"/mqtt-logo.svg\",\n },\n {\n actionTrigger: notifyRedis,\n targetTitle: \"Redis\",\n logo: \"/redis-logo.svg\",\n },\n {\n actionTrigger: notifyNats,\n targetTitle: \"NATS\",\n logo: \"/nats-logo.svg\",\n },\n {\n actionTrigger: notifyMysql,\n targetTitle: \"Mysql\",\n logo: \"/mysql-logo.svg\",\n },\n {\n actionTrigger: notifyElasticsearch,\n targetTitle: \"Elastic Search\",\n logo: \"/elasticsearch-logo.svg\",\n },\n {\n actionTrigger: notifyWebhooks,\n targetTitle: \"Webhook\",\n logo: \"/webhooks-logo.svg\",\n },\n {\n actionTrigger: notifyNsq,\n targetTitle: \"NSQ\",\n logo: \"/nsq-logo.svg\",\n },\n];\n\nconst commonFields = [\n {\n name: \"queue-dir\",\n label: \"Queue Directory\",\n required: true,\n\n tooltip: \"staging dir for undelivered messages e.g. '/home/events'\",\n type: \"string\",\n placeholder: \"Enter Queue Directory\",\n },\n {\n name: \"queue-limit\",\n label: \"Queue Limit\",\n required: false,\n\n tooltip: \"maximum limit for undelivered messages, defaults to '10000'\",\n type: \"number\",\n placeholder: \"Enter Queue Limit\",\n },\n {\n name: \"comment\",\n label: \"Comment\",\n required: false,\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n];\n\nexport const removeEmptyFields = (formFields: IElementValue[]) => {\n const nonEmptyFields = formFields.filter((field) => field.value !== \"\");\n\n return nonEmptyFields;\n};\n\nexport const notificationEndpointsFields: any = {\n [notifyKafka]: [\n {\n name: \"brokers\",\n label: \"Brokers\",\n required: true,\n\n tooltip: \"Comma separated list of Kafka broker addresses\",\n type: \"string\",\n placeholder: \"Enter Brokers\",\n },\n {\n name: \"topic\",\n label: \"Topic\",\n tooltip: \"Kafka topic used for bucket notifications\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"sasl_username\",\n label: \"SASL Username\",\n tooltip: \"Username for SASL/PLAIN or SASL/SCRAM authentication\",\n type: \"string\",\n placeholder: \"Enter SASL Username\",\n },\n {\n name: \"sasl_password\",\n label: \"SASL Password\",\n tooltip: \"Password for SASL/PLAIN or SASL/SCRAM authentication\",\n type: \"string\",\n placeholder: \"Enter SASL Password\",\n },\n {\n name: \"sasl_mechanism\",\n label: \"SASL Mechanism\",\n tooltip: \"SASL authentication mechanism, default 'PLAIN'\",\n type: \"string\",\n },\n {\n name: \"tls_client_auth\",\n label: \"TLS Client Auth\",\n tooltip:\n \"Client Auth determines the Kafka server's policy for TLS client auth\",\n type: \"string\",\n placeholder: \"Enter TLS Client Auth\",\n },\n {\n name: \"sasl\",\n label: \"SASL\",\n tooltip: \"Set to 'on' to enable SASL authentication\",\n type: \"on|off\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"Set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS skip verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"client_tls_cert\",\n label: \"client TLS cert\",\n tooltip: \"Path to client certificate for mTLS auth\",\n type: \"path\",\n placeholder: \"Enter TLS Client Cert\",\n },\n {\n name: \"client_tls_key\",\n label: \"client TLS key\",\n tooltip: \"Path to client key for mTLS auth\",\n type: \"path\",\n placeholder: \"Enter TLS Client Key\",\n },\n {\n name: \"version\",\n label: \"Version\",\n tooltip: \"Specify the version of the Kafka cluster e.g '2.2.0'\",\n type: \"string\",\n placeholder: \"Enter Kafka Version\",\n },\n ...commonFields,\n ],\n [notifyAmqp]: [\n {\n name: \"url\",\n required: true,\n label: \"URL\",\n tooltip:\n \"AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672`\",\n type: \"url\",\n },\n {\n name: \"exchange\",\n label: \"Exchange\",\n tooltip: \"Name of the AMQP exchange\",\n type: \"string\",\n placeholder: \"Enter Exchange\",\n },\n {\n name: \"exchange_type\",\n label: \"Exchange Type\",\n tooltip: \"AMQP exchange type\",\n type: \"string\",\n placeholder: \"Enter Exchange Type\",\n },\n {\n name: \"routing_key\",\n label: \"Routing Key\",\n tooltip: \"Routing key for publishing\",\n type: \"string\",\n placeholder: \"Enter Routing Key\",\n },\n {\n name: \"mandatory\",\n label: \"Mandatory\",\n tooltip:\n \"Quietly ignore undelivered messages when set to 'off', default is 'on'\",\n type: \"on|off\",\n },\n {\n name: \"durable\",\n label: \"Durable\",\n tooltip:\n \"Persist queue across broker restarts when set to 'on', default is 'off'\",\n type: \"on|off\",\n },\n {\n name: \"no_wait\",\n label: \"No Wait\",\n tooltip:\n \"Non-blocking message delivery when set to 'on', default is 'off'\",\n type: \"on|off\",\n },\n {\n name: \"internal\",\n label: \"Internal\",\n tooltip:\n \"Set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges\",\n type: \"on|off\",\n },\n {\n name: \"auto_deleted\",\n label: \"Auto Deleted\",\n tooltip:\n \"Auto delete queue when set to 'on', when there are no consumers\",\n type: \"on|off\",\n },\n {\n name: \"delivery_mode\",\n label: \"Delivery Mode\",\n tooltip: \"Set to '1' for non-persistent or '2' for persistent queue\",\n type: \"number\",\n placeholder: \"Enter Delivery Mode\",\n },\n ...commonFields,\n ],\n [notifyRedis]: [\n {\n name: \"address\",\n required: true,\n label: \"Address\",\n tooltip: \"Redis server's address. For example: `localhost:6379`\",\n type: \"address\",\n placeholder: \"Enter Address\",\n },\n {\n name: \"key\",\n required: true,\n label: \"Key\",\n tooltip: \"Redis key to store/update events, key is auto-created\",\n type: \"string\",\n placeholder: \"Enter Key\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"Redis server password\",\n type: \"string\",\n placeholder: \"Enter Password\",\n },\n ...commonFields,\n ],\n [notifyMqtt]: [\n {\n name: \"broker\",\n required: true,\n label: \"Broker\",\n tooltip: \"MQTT server endpoint e.g. `tcp://localhost:1883`\",\n type: \"uri\",\n placeholder: \"Enter Brokers\",\n },\n {\n name: \"topic\",\n required: true,\n label: \"Topic\",\n tooltip: \"name of the MQTT topic to publish\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"username\",\n label: \"Username\",\n tooltip: \"MQTT username\",\n type: \"string\",\n placeholder: \"Enter Username\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"MQTT password\",\n type: \"string\",\n placeholder: \"Enter Password\",\n },\n {\n name: \"qos\",\n label: \"QOS\",\n tooltip: \"Set the quality of service priority, defaults to '0'\",\n type: \"number\",\n placeholder: \"Enter QOS\",\n },\n {\n name: \"keep_alive_interval\",\n label: \"Keep Alive Interval\",\n tooltip: \"Keep-alive interval for MQTT connections in s,m,h,d\",\n type: \"duration\",\n placeholder: \"Enter Keep Alive Internal\",\n },\n {\n name: \"reconnect_interval\",\n label: \"Reconnect Interval\",\n tooltip: \"Reconnect interval for MQTT connections in s,m,h,d\",\n type: \"duration\",\n placeholder: \"Enter Reconnect Interval\",\n },\n ...commonFields,\n ],\n [notifyNats]: [\n {\n name: \"address\",\n required: true,\n label: \"Address\",\n tooltip: \"NATS server address e.g. '0.0.0.0:4222'\",\n type: \"address\",\n placeholder: \"Enter Address\",\n },\n {\n name: \"subject\",\n required: true,\n label: \"Subject\",\n tooltip: \"NATS subscription subject\",\n type: \"string\",\n placeholder: \"Enter NATS Subject\",\n },\n {\n name: \"username\",\n label: \"Username\",\n tooltip: \"NATS username\",\n type: \"string\",\n placeholder: \"Enter NATS Username\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"NATS password\",\n type: \"string\",\n placeholder: \"Enter NATS password\",\n },\n {\n name: \"token\",\n label: \"Token\",\n tooltip: \"NATS token\",\n type: \"string\",\n placeholder: \"Enter NATS token\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"Set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS Skip Verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"ping_interval\",\n label: \"Ping Interval\",\n tooltip: \"Client ping commands interval in s,m,h,d. Disabled by default\",\n type: \"duration\",\n placeholder: \"Enter Ping Interval\",\n },\n {\n name: \"streaming\",\n label: \"Streaming\",\n tooltip: \"Set to 'on', to use streaming NATS server\",\n type: \"on|off\",\n },\n {\n name: \"streaming_async\",\n label: \"Streaming async\",\n tooltip: \"Set to 'on', to enable asynchronous publish\",\n type: \"on|off\",\n },\n {\n name: \"streaming_max_pub_acks_in_flight\",\n label: \"Streaming max publish ACKS in flight\",\n tooltip: \"Number of messages to publish without waiting for ACKs\",\n type: \"number\",\n placeholder: \"Enter Streaming in flight value\",\n },\n {\n name: \"streaming_cluster_id\",\n label: \"Streaming Cluster ID\",\n tooltip: \"Unique ID for NATS streaming cluster\",\n type: \"string\",\n placeholder: \"Enter Streaming Cluster ID\",\n },\n {\n name: \"cert_authority\",\n label: \"Cert Authority\",\n tooltip: \"Path to certificate chain of the target NATS server\",\n type: \"string\",\n placeholder: \"Enter Cert Authority\",\n },\n {\n name: \"client_cert\",\n label: \"Client Cert\",\n tooltip: \"Client cert for NATS mTLS auth\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_key\",\n label: \"Client Key\",\n tooltip: \"Client cert key for NATS mTLS auth\",\n type: \"string\",\n placeholder: \"Enter Client Key\",\n },\n ...commonFields,\n ],\n [notifyElasticsearch]: [\n {\n name: \"url\",\n required: true,\n label: \"URL\",\n tooltip:\n \"Elasticsearch server's address, with optional authentication info\",\n type: \"url\",\n placeholder: \"Enter URL\",\n },\n {\n name: \"index\",\n required: true,\n label: \"Index\",\n tooltip:\n \"Elasticsearch index to store/update events, index is auto-created\",\n type: \"string\",\n placeholder: \"Enter Index\",\n },\n {\n name: \"format\",\n required: true,\n label: \"Format\",\n tooltip:\n \"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\",\n type: \"enum\",\n placeholder: \"Enter Format\",\n },\n ...commonFields,\n ],\n [notifyWebhooks]: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n tooltip:\n \"webhook server endpoint e.g. http://localhost:8080/minio/events\",\n type: \"url\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n label: \"Auth Token\",\n tooltip: \"opaque string or JWT authorization token\",\n type: \"string\",\n placeholder: \"Enter auth_token\",\n },\n ...commonFields,\n ],\n [notifyNsq]: [\n {\n name: \"nsqd_address\",\n required: true,\n label: \"NSQD Address\",\n tooltip: \"NSQ server address e.g. '127.0.0.1:4150'\",\n type: \"address\",\n placeholder: \"Enter nsqd_address\",\n },\n {\n name: \"topic\",\n required: true,\n label: \"Topic\",\n tooltip: \"NSQ topic\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS Skip Verify\",\n tooltip:\n 'trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n ...commonFields,\n ],\n};\n"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","pageContentStyles","children","contentSpacer","container","item","xs","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","backgroundColor","left","boxShadow","justifyContent","labelStyle","marginLeft","marginTop","rightMenu","textAlign","logo","fill","main","middleComponent","actions","includes","Fragment","direction","sm","md","variant","length","component","id","size","ConfMySql","withSuspense","React","ConfTargetGeneric","ConfPostgres","serverNeedsRestart","setErrorSnackMessage","modalBasic","settingsCommon","lambdaNotif","border","marginBottom","cursor","padding","overflow","lambdaNotifIcon","maxWidth","maxHeight","lambdaNotifTitle","fontFamily","formBox","match","saveAndRefresh","useState","valuesArr","setValueArr","saving","setSaving","service","params","useEffect","payload","key_values","removeEmptyFields","api","then","history","IAM_PAGES","catch","err","srvComponent","onValueChange","useCallback","newValue","notifyPostgres","onChange","notifyMysql","fields","get","notificationEndpointsFields","targetElement","servicesList","element","actionTrigger","noValidate","onSubmit","event","preventDefault","src","logoButton","alt","targetTitle","configForm","settingsButtonContainer","type","disabled","notifyKafka","notifyAmqp","notifyMqtt","notifyRedis","notifyNats","notifyElasticsearch","notifyWebhooks","notifyNsq","notificationTransform","notificationElements","map","service_name","account_id","status","commonFields","name","required","tooltip","placeholder","formFields","filter","field","value"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/6137.1990ccdd.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/NotificationEndpoints/AddNotificationEndpoint.tsx","screens/Console/NotificationEndpoints/utils.ts"],"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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\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","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n

    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { connect } from \"react-redux\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button } from \"@mui/material\";\n\nimport api from \"../../../common/api\";\nimport { serverNeedsRestart, setErrorSnackMessage } from \"../../../actions\";\nimport {\n notificationEndpointsFields,\n notifyMysql,\n notifyPostgres,\n removeEmptyFields,\n} from \"./utils\";\nimport {\n modalBasic,\n settingsCommon,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { servicesList } from \"./utils\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\n\nimport { IElementValue } from \"../Configurations/types\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport history from \"../../../history\";\n\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport BackLink from \"../../../common/BackLink\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\nconst ConfMySql = withSuspense(\n React.lazy(() => import(\"./CustomForms/ConfMySql\"))\n);\n\nconst ConfTargetGeneric = withSuspense(\n React.lazy(() => import(\"./ConfTargetGeneric\"))\n);\n\nconst ConfPostgres = withSuspense(\n React.lazy(() => import(\"./CustomForms/ConfPostgres\"))\n);\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n ...settingsCommon,\n lambdaNotif: {\n background:\n \"linear-gradient(90deg, rgba(249,249,250,1) 0%, rgba(250,250,251,1) 68%, rgba(254,254,254,1) 100%)\",\n border: \"#E5E5E5 1px solid\",\n borderRadius: 5,\n height: 80,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"start\",\n marginBottom: 16,\n cursor: \"pointer\",\n padding: 0,\n overflow: \"hidden\",\n },\n lambdaNotifIcon: {\n backgroundColor: \"#FEFEFE\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 80,\n height: 80,\n\n \"& img\": {\n maxWidth: 46,\n maxHeight: 46,\n },\n },\n lambdaNotifTitle: {\n color: \"#07193E\",\n fontSize: 16,\n fontFamily: \"Lato,sans-serif\",\n paddingLeft: 18,\n },\n formBox: {\n border: \"1px solid #EAEAEA\",\n padding: 15,\n },\n });\n\ninterface IAddNotificationEndpointProps {\n match: any;\n saveAndRefresh: any;\n serverNeedsRestart: typeof serverNeedsRestart;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n classes: any;\n}\n\nconst AddNotificationEndpoint = ({\n match,\n saveAndRefresh,\n serverNeedsRestart,\n classes,\n setErrorSnackMessage,\n}: IAddNotificationEndpointProps) => {\n //Local States\n const [valuesArr, setValueArr] = useState([]);\n const [saving, setSaving] = useState(false);\n const service = match.params[\"service\"];\n //Effects\n\n useEffect(() => {\n if (saving) {\n const payload = {\n key_values: removeEmptyFields(valuesArr),\n };\n api\n .invoke(\"PUT\", `/api/v1/configs/${service}`, payload)\n .then(() => {\n setSaving(false);\n serverNeedsRestart(true);\n history.push(IAM_PAGES.NOTIFICATIONS_ENDPOINTS);\n })\n .catch((err: ErrorResponseHandler) => {\n setSaving(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n saving,\n serverNeedsRestart,\n service,\n valuesArr,\n saveAndRefresh,\n setErrorSnackMessage,\n ]);\n\n //Fetch Actions\n const submitForm = (event: React.FormEvent) => {\n event.preventDefault();\n setSaving(true);\n };\n\n const onValueChange = useCallback(\n (newValue) => {\n setValueArr(newValue);\n },\n [setValueArr]\n );\n\n let srvComponent;\n switch (service) {\n case notifyPostgres: {\n srvComponent = ;\n break;\n }\n case notifyMysql: {\n srvComponent = ;\n break;\n }\n default: {\n const fields = get(notificationEndpointsFields, service, []);\n\n srvComponent = (\n \n );\n }\n }\n\n const targetElement = servicesList.find(\n (element) => element.actionTrigger === service\n );\n\n return (\n \n \n \n \n }\n actions={}\n />\n\n \n
    \n {service !== \"\" && (\n \n \n {targetElement && (\n \n
    \n \n
    \n\n
    \n \n {targetElement ? targetElement.targetTitle : \"\"}\n Notification Endpoint\n \n
    \n \n )}\n
    \n
    \n \n {srvComponent}\n \n \n \n Save Notification Target\n \n \n
    \n
    \n )}\n
    \n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n serverNeedsRestart,\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(AddNotificationEndpoint));\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 { NotificationEndpointItem } from \"./types\";\n\nimport { IElementValue } from \"../Configurations/types\";\n\nexport const notifyPostgres = \"notify_postgres\";\nexport const notifyMysql = \"notify_mysql\";\nexport const notifyKafka = \"notify_kafka\";\nexport const notifyAmqp = \"notify_amqp\";\nexport const notifyMqtt = \"notify_mqtt\";\nexport const notifyRedis = \"notify_redis\";\nexport const notifyNats = \"notify_nats\";\nexport const notifyElasticsearch = \"notify_elasticsearch\";\nexport const notifyWebhooks = \"notify_webhook\";\nexport const notifyNsq = \"notify_nsq\";\n\nexport const notificationTransform = (\n notificationElements: NotificationEndpointItem[]\n) => {\n return notificationElements.map((element) => {\n return {\n service_name: `${element.service}:${element.account_id}`,\n status: element.status,\n };\n });\n};\n\nexport const servicesList = [\n {\n actionTrigger: notifyPostgres,\n targetTitle: \"PostgreSQL\",\n logo: \"/postgres-logo.svg\",\n },\n {\n actionTrigger: notifyKafka,\n targetTitle: \"Kafka\",\n logo: \"/kafka-logo.svg\",\n },\n {\n actionTrigger: notifyAmqp,\n targetTitle: \"AMQP\",\n logo: \"/amqp-logo.svg\",\n },\n {\n actionTrigger: notifyMqtt,\n targetTitle: \"MQTT\",\n logo: \"/mqtt-logo.svg\",\n },\n {\n actionTrigger: notifyRedis,\n targetTitle: \"Redis\",\n logo: \"/redis-logo.svg\",\n },\n {\n actionTrigger: notifyNats,\n targetTitle: \"NATS\",\n logo: \"/nats-logo.svg\",\n },\n {\n actionTrigger: notifyMysql,\n targetTitle: \"Mysql\",\n logo: \"/mysql-logo.svg\",\n },\n {\n actionTrigger: notifyElasticsearch,\n targetTitle: \"Elastic Search\",\n logo: \"/elasticsearch-logo.svg\",\n },\n {\n actionTrigger: notifyWebhooks,\n targetTitle: \"Webhook\",\n logo: \"/webhooks-logo.svg\",\n },\n {\n actionTrigger: notifyNsq,\n targetTitle: \"NSQ\",\n logo: \"/nsq-logo.svg\",\n },\n];\n\nconst commonFields = [\n {\n name: \"queue-dir\",\n label: \"Queue Directory\",\n required: true,\n\n tooltip: \"staging dir for undelivered messages e.g. '/home/events'\",\n type: \"string\",\n placeholder: \"Enter Queue Directory\",\n },\n {\n name: \"queue-limit\",\n label: \"Queue Limit\",\n required: false,\n\n tooltip: \"maximum limit for undelivered messages, defaults to '10000'\",\n type: \"number\",\n placeholder: \"Enter Queue Limit\",\n },\n {\n name: \"comment\",\n label: \"Comment\",\n required: false,\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n];\n\nexport const removeEmptyFields = (formFields: IElementValue[]) => {\n const nonEmptyFields = formFields.filter((field) => field.value !== \"\");\n\n return nonEmptyFields;\n};\n\nexport const notificationEndpointsFields: any = {\n [notifyKafka]: [\n {\n name: \"brokers\",\n label: \"Brokers\",\n required: true,\n\n tooltip: \"Comma separated list of Kafka broker addresses\",\n type: \"string\",\n placeholder: \"Enter Brokers\",\n },\n {\n name: \"topic\",\n label: \"Topic\",\n tooltip: \"Kafka topic used for bucket notifications\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"sasl_username\",\n label: \"SASL Username\",\n tooltip: \"Username for SASL/PLAIN or SASL/SCRAM authentication\",\n type: \"string\",\n placeholder: \"Enter SASL Username\",\n },\n {\n name: \"sasl_password\",\n label: \"SASL Password\",\n tooltip: \"Password for SASL/PLAIN or SASL/SCRAM authentication\",\n type: \"string\",\n placeholder: \"Enter SASL Password\",\n },\n {\n name: \"sasl_mechanism\",\n label: \"SASL Mechanism\",\n tooltip: \"SASL authentication mechanism, default 'PLAIN'\",\n type: \"string\",\n },\n {\n name: \"tls_client_auth\",\n label: \"TLS Client Auth\",\n tooltip:\n \"Client Auth determines the Kafka server's policy for TLS client auth\",\n type: \"string\",\n placeholder: \"Enter TLS Client Auth\",\n },\n {\n name: \"sasl\",\n label: \"SASL\",\n tooltip: \"Set to 'on' to enable SASL authentication\",\n type: \"on|off\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"Set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS skip verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"client_tls_cert\",\n label: \"client TLS cert\",\n tooltip: \"Path to client certificate for mTLS auth\",\n type: \"path\",\n placeholder: \"Enter TLS Client Cert\",\n },\n {\n name: \"client_tls_key\",\n label: \"client TLS key\",\n tooltip: \"Path to client key for mTLS auth\",\n type: \"path\",\n placeholder: \"Enter TLS Client Key\",\n },\n {\n name: \"version\",\n label: \"Version\",\n tooltip: \"Specify the version of the Kafka cluster e.g '2.2.0'\",\n type: \"string\",\n placeholder: \"Enter Kafka Version\",\n },\n ...commonFields,\n ],\n [notifyAmqp]: [\n {\n name: \"url\",\n required: true,\n label: \"URL\",\n tooltip:\n \"AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672`\",\n type: \"url\",\n },\n {\n name: \"exchange\",\n label: \"Exchange\",\n tooltip: \"Name of the AMQP exchange\",\n type: \"string\",\n placeholder: \"Enter Exchange\",\n },\n {\n name: \"exchange_type\",\n label: \"Exchange Type\",\n tooltip: \"AMQP exchange type\",\n type: \"string\",\n placeholder: \"Enter Exchange Type\",\n },\n {\n name: \"routing_key\",\n label: \"Routing Key\",\n tooltip: \"Routing key for publishing\",\n type: \"string\",\n placeholder: \"Enter Routing Key\",\n },\n {\n name: \"mandatory\",\n label: \"Mandatory\",\n tooltip:\n \"Quietly ignore undelivered messages when set to 'off', default is 'on'\",\n type: \"on|off\",\n },\n {\n name: \"durable\",\n label: \"Durable\",\n tooltip:\n \"Persist queue across broker restarts when set to 'on', default is 'off'\",\n type: \"on|off\",\n },\n {\n name: \"no_wait\",\n label: \"No Wait\",\n tooltip:\n \"Non-blocking message delivery when set to 'on', default is 'off'\",\n type: \"on|off\",\n },\n {\n name: \"internal\",\n label: \"Internal\",\n tooltip:\n \"Set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges\",\n type: \"on|off\",\n },\n {\n name: \"auto_deleted\",\n label: \"Auto Deleted\",\n tooltip:\n \"Auto delete queue when set to 'on', when there are no consumers\",\n type: \"on|off\",\n },\n {\n name: \"delivery_mode\",\n label: \"Delivery Mode\",\n tooltip: \"Set to '1' for non-persistent or '2' for persistent queue\",\n type: \"number\",\n placeholder: \"Enter Delivery Mode\",\n },\n ...commonFields,\n ],\n [notifyRedis]: [\n {\n name: \"address\",\n required: true,\n label: \"Address\",\n tooltip: \"Redis server's address. For example: `localhost:6379`\",\n type: \"address\",\n placeholder: \"Enter Address\",\n },\n {\n name: \"key\",\n required: true,\n label: \"Key\",\n tooltip: \"Redis key to store/update events, key is auto-created\",\n type: \"string\",\n placeholder: \"Enter Key\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"Redis server password\",\n type: \"string\",\n placeholder: \"Enter Password\",\n },\n ...commonFields,\n ],\n [notifyMqtt]: [\n {\n name: \"broker\",\n required: true,\n label: \"Broker\",\n tooltip: \"MQTT server endpoint e.g. `tcp://localhost:1883`\",\n type: \"uri\",\n placeholder: \"Enter Brokers\",\n },\n {\n name: \"topic\",\n required: true,\n label: \"Topic\",\n tooltip: \"name of the MQTT topic to publish\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"username\",\n label: \"Username\",\n tooltip: \"MQTT username\",\n type: \"string\",\n placeholder: \"Enter Username\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"MQTT password\",\n type: \"string\",\n placeholder: \"Enter Password\",\n },\n {\n name: \"qos\",\n label: \"QOS\",\n tooltip: \"Set the quality of service priority, defaults to '0'\",\n type: \"number\",\n placeholder: \"Enter QOS\",\n },\n {\n name: \"keep_alive_interval\",\n label: \"Keep Alive Interval\",\n tooltip: \"Keep-alive interval for MQTT connections in s,m,h,d\",\n type: \"duration\",\n placeholder: \"Enter Keep Alive Internal\",\n },\n {\n name: \"reconnect_interval\",\n label: \"Reconnect Interval\",\n tooltip: \"Reconnect interval for MQTT connections in s,m,h,d\",\n type: \"duration\",\n placeholder: \"Enter Reconnect Interval\",\n },\n ...commonFields,\n ],\n [notifyNats]: [\n {\n name: \"address\",\n required: true,\n label: \"Address\",\n tooltip: \"NATS server address e.g. '0.0.0.0:4222'\",\n type: \"address\",\n placeholder: \"Enter Address\",\n },\n {\n name: \"subject\",\n required: true,\n label: \"Subject\",\n tooltip: \"NATS subscription subject\",\n type: \"string\",\n placeholder: \"Enter NATS Subject\",\n },\n {\n name: \"username\",\n label: \"Username\",\n tooltip: \"NATS username\",\n type: \"string\",\n placeholder: \"Enter NATS Username\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"NATS password\",\n type: \"string\",\n placeholder: \"Enter NATS password\",\n },\n {\n name: \"token\",\n label: \"Token\",\n tooltip: \"NATS token\",\n type: \"string\",\n placeholder: \"Enter NATS token\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"Set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS Skip Verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"ping_interval\",\n label: \"Ping Interval\",\n tooltip: \"Client ping commands interval in s,m,h,d. Disabled by default\",\n type: \"duration\",\n placeholder: \"Enter Ping Interval\",\n },\n {\n name: \"streaming\",\n label: \"Streaming\",\n tooltip: \"Set to 'on', to use streaming NATS server\",\n type: \"on|off\",\n },\n {\n name: \"streaming_async\",\n label: \"Streaming async\",\n tooltip: \"Set to 'on', to enable asynchronous publish\",\n type: \"on|off\",\n },\n {\n name: \"streaming_max_pub_acks_in_flight\",\n label: \"Streaming max publish ACKS in flight\",\n tooltip: \"Number of messages to publish without waiting for ACKs\",\n type: \"number\",\n placeholder: \"Enter Streaming in flight value\",\n },\n {\n name: \"streaming_cluster_id\",\n label: \"Streaming Cluster ID\",\n tooltip: \"Unique ID for NATS streaming cluster\",\n type: \"string\",\n placeholder: \"Enter Streaming Cluster ID\",\n },\n {\n name: \"cert_authority\",\n label: \"Cert Authority\",\n tooltip: \"Path to certificate chain of the target NATS server\",\n type: \"string\",\n placeholder: \"Enter Cert Authority\",\n },\n {\n name: \"client_cert\",\n label: \"Client Cert\",\n tooltip: \"Client cert for NATS mTLS auth\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_key\",\n label: \"Client Key\",\n tooltip: \"Client cert key for NATS mTLS auth\",\n type: \"string\",\n placeholder: \"Enter Client Key\",\n },\n ...commonFields,\n ],\n [notifyElasticsearch]: [\n {\n name: \"url\",\n required: true,\n label: \"URL\",\n tooltip:\n \"Elasticsearch server's address, with optional authentication info\",\n type: \"url\",\n placeholder: \"Enter URL\",\n },\n {\n name: \"index\",\n required: true,\n label: \"Index\",\n tooltip:\n \"Elasticsearch index to store/update events, index is auto-created\",\n type: \"string\",\n placeholder: \"Enter Index\",\n },\n {\n name: \"format\",\n required: true,\n label: \"Format\",\n tooltip:\n \"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\",\n type: \"enum\",\n placeholder: \"Enter Format\",\n },\n ...commonFields,\n ],\n [notifyWebhooks]: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n tooltip:\n \"webhook server endpoint e.g. http://localhost:8080/minio/events\",\n type: \"url\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n label: \"Auth Token\",\n tooltip: \"opaque string or JWT authorization token\",\n type: \"string\",\n placeholder: \"Enter auth_token\",\n },\n ...commonFields,\n ],\n [notifyNsq]: [\n {\n name: \"nsqd_address\",\n required: true,\n label: \"NSQD Address\",\n tooltip: \"NSQ server address e.g. '127.0.0.1:4150'\",\n type: \"address\",\n placeholder: \"Enter nsqd_address\",\n },\n {\n name: \"topic\",\n required: true,\n label: \"Topic\",\n tooltip: \"NSQ topic\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS Skip Verify\",\n tooltip:\n 'trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n ...commonFields,\n ],\n};\n"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","WrappedComponent","fallback","ComponentWithSuspense","props","Suspense","pageContentStyles","children","contentSpacer","container","item","xs","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","backgroundColor","left","boxShadow","justifyContent","labelStyle","marginLeft","marginTop","rightMenu","textAlign","logo","fill","main","middleComponent","actions","includes","Fragment","direction","sm","md","variant","length","component","id","size","ConfMySql","withSuspense","React","ConfTargetGeneric","ConfPostgres","serverNeedsRestart","setErrorSnackMessage","modalBasic","settingsCommon","lambdaNotif","border","marginBottom","cursor","padding","overflow","lambdaNotifIcon","maxWidth","maxHeight","lambdaNotifTitle","fontFamily","formBox","match","saveAndRefresh","useState","valuesArr","setValueArr","saving","setSaving","service","params","useEffect","payload","key_values","removeEmptyFields","api","then","history","IAM_PAGES","catch","err","srvComponent","onValueChange","useCallback","newValue","notifyPostgres","onChange","notifyMysql","fields","get","notificationEndpointsFields","targetElement","servicesList","element","actionTrigger","noValidate","onSubmit","event","preventDefault","src","logoButton","alt","targetTitle","configForm","settingsButtonContainer","type","disabled","notifyKafka","notifyAmqp","notifyMqtt","notifyRedis","notifyNats","notifyElasticsearch","notifyWebhooks","notifyNsq","notificationTransform","notificationElements","map","service_name","account_id","status","commonFields","name","required","tooltip","placeholder","formFields","filter","field","value"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/6144.56aa9aa1.chunk.js b/portal-ui/build/static/js/6144.56aa9aa1.chunk.js deleted file mode 100644 index 6fbf30457..000000000 --- a/portal-ui/build/static/js/6144.56aa9aa1.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6144],{23804:function(e,n,t){t(72791);var a=t(11135),i=t(25787),r=t(61889),s=t(80184);n.Z=(0,i.Z)((function(e){return(0,a.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,a=e.title,i=e.help;return(0,s.jsx)("div",{className:n.root,children:(0,s.jsxs)(r.ZP,{container:!0,children:[(0,s.jsxs)(r.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,a]}),(0,s.jsx)(r.ZP,{item:!0,xs:12,className:n.helpText,children:i})]})})}))},40603:function(e,n,t){var a=t(1413),i=t(45987),r=(t(72791),t(85531)),s=t(72455),o=t(80184),l=["onClick","text","disabled","tooltip","icon"],c=(0,s.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,a=n.color,i=e.palette.primary.main;return"primary"===a&&"contained"===t?i=e.palette.primary.contrastText:"primary"===a&&"outlined"===t?i=e.palette.primary.main:"secondary"===a&&(i=e.palette.secondary.main),i}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=c(e),t=e.onClick,s=e.text,d=void 0===s?"":s,u=e.disabled,m=void 0!==u&&u,h=e.tooltip,x=e.icon,p=void 0===x?null:x,g=(0,i.Z)(e,l);return(0,o.jsxs)(r.Z,(0,a.Z)((0,a.Z)({classes:n,tooltip:h||d,variant:"outlined",onClick:t,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},g),{},{children:[(0,o.jsx)("span",{children:d})," ",p]}))}},81806:function(e,n,t){var a=t(1413),i=t(45987),r=(t(72791),t(11135)),s=t(25787),o=t(80184),l=["classes","children"];n.Z=(0,s.Z)((function(e){return(0,r.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,r=(0,i.Z)(e,l);return(0,o.jsx)("button",(0,a.Z)((0,a.Z)({},r),{},{className:n.root,children:t}))}))},85531:function(e,n,t){var a=t(1413),i=t(4942),r=t(45987),s=(t(72791),t(11135)),o=t(25787),l=t(13400),c=t(20068),d=t(28182),u=t(80184),m=["classes","children","variant","tooltip"];n.Z=(0,o.Z)((function(e){return(0,s.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,t=e.children,s=e.variant,o=void 0===s?"outlined":s,h=e.tooltip,x=(0,r.Z)(e,m),p=(0,u.jsx)(l.Z,(0,a.Z)((0,a.Z)({},x),{},{className:(0,d.Z)(n.root,(0,i.Z)({},n.contained,"contained"===o)),children:t}));return h&&""!==h?(0,u.jsx)(c.Z,{title:h,children:(0,u.jsx)("span",{children:p})}):p}))},75578:function(e,n,t){var a=t(1413),i=t(72791),r=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,r.jsx)(i.Suspense,{fallback:n,children:(0,r.jsx)(e,(0,a.Z)({},t))})}return t}},74794:function(e,n,t){var a=t(1413),i=(t(72791),t(61889)),r=t(11135),s=t(25787),o=t(23814),l=t(80184);n.Z=(0,s.Z)((function(e){return(0,r.Z)((0,a.Z)({},o.Bw))}))((function(e){var n=e.classes,t=e.className,a=void 0===t?"":t,r=e.children;return(0,l.jsx)("div",{className:n.contentSpacer,children:(0,l.jsx)(i.ZP,{container:!0,children:(0,l.jsx)(i.ZP,{item:!0,xs:12,className:a,children:r})})})}))},32291:function(e,n,t){var a=t(72791),i=t(60364),r=t(61889),s=t(11135),o=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),m=t(3925),h=t(74833),x=t(80184),p={toggleList:m.kQ},g=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),p);n.Z=g((0,o.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,i=e.actions,s=e.sidebarOpen,o=e.operatorMode,m=e.managerObjects,p=e.toggleList,g=e.middleComponent;return e.features.includes("hide-menu")?(0,x.jsx)(a.Fragment,{}):(0,x.jsxs)(r.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,x.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,x.jsx)("div",{className:n.logo,children:o?(0,x.jsx)(d.Z,{}):(0,x.jsx)(u.Z,{})}),(0,x.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),g&&(0,x.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:g}),(0,x.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:n.rightMenu,children:[i&&i,m&&m.length>0&&(0,x.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){p()},id:"object-manager-toggle",size:"large",children:(0,x.jsx)(h.gx,{})})]})]})})))},59114:function(e,n,t){var a=t(4942),i=t(1413),r=(t(72791),t(63466)),s=t(74900),o=t(27391),l=t(25787),c=t(11135),d=t(23814),u=t(80184);n.Z=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,i.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,i=e.classes,l=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,m=e.overrideClass,h=e.value,x=(0,a.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(r.Z,{position:d,className:i.adornment,children:(0,u.jsx)(s.Z,{})}));return(0,u.jsx)(o.Z,{placeholder:t,className:m||i.searchField,id:"search-resource",label:"",InputProps:x,onChange:function(e){l(e.target.value)},variant:"standard",value:h})}))},98994:function(e,n,t){var a=t(72791),i=t(22338),r=t(79762),s=t(5171),o=t(80184),l={};n.Z=function(e){var n=e.rowRenderFunction,t=e.totalItems,c=e.defaultHeight,d=function(e){var t=e.index,a=e.style;return(0,o.jsx)("div",{style:a,children:n(t)})};return(0,o.jsx)(a.Fragment,{children:(0,o.jsx)(r.Z,{isItemLoaded:function(e){return!!l[e]},loadMoreItems:function(e,n){for(var t=e;t<=n;t++)l[t]=1;for(var a=e;a<=n;a++)l[a]=2},itemCount:t,children:function(e){var n=e.onItemsRendered,a=e.ref;return(0,o.jsx)(s.qj,{children:function(e){var r=e.width,s=e.height;return(0,o.jsx)(i.t7,{itemSize:c||220,height:s,itemCount:t,width:r,ref:a,onItemsRendered:n,children:d})}})}})})}},76144:function(e,n,t){t.r(n),t.d(n,{default:function(){return E}});var a=t(70885),i=t(1413),r=t(72791),s=t(60364),o=t(61889),l=t(40986),c=t(11135),d=t(25787),u=t(45248),m=t(23814),h=t(42649),x=t(74833),p=t(81207),g=t(62666),f=t(28789),j=t(32291),Z=t(88449),v=t(22512),b=t(72401),y=t(80184),S=(0,d.Z)((function(e){return{root:{height:10,borderRadius:5},colorPrimary:{backgroundColor:"#F4F4F4"},bar:{borderRadius:5,backgroundColor:"#081C42"},padChart:{padding:"5px"}}}))(l.Z),C=(0,d.Z)((function(e){return(0,c.Z)({allValue:{fontSize:16,fontWeight:700,marginBottom:8},currentUsage:{fontSize:12,marginTop:8},centerItem:{textAlign:"center"}})}))((function(e){var n=e.classes,t=e.maxValue,a=e.currValue,i=e.label,s=e.renderFunction,l=e.loading,c=e.error,d=e.labels,u=void 0===d||d,m=100*a/t;return(0,y.jsxs)(r.Fragment,{children:[l&&(0,y.jsx)("div",{className:n.padChart,children:(0,y.jsx)(o.ZP,{item:!0,xs:12,className:n.centerItem,children:(0,y.jsx)(b.Z,{})})}),l?null:""!==c?(0,y.jsx)(v.Z,{errorMessage:c,withBreak:!1}):(0,y.jsxs)(r.Fragment,{children:[(0,y.jsx)(o.ZP,{item:!0,xs:12,className:n.allValue,children:u&&(0,y.jsxs)(r.Fragment,{children:[i," ",s?s(t.toString()):t]})}),(0,y.jsx)(S,{variant:"determinate",value:m}),(0,y.jsx)(o.ZP,{item:!0,xs:12,className:n.currentUsage,children:u&&(0,y.jsxs)(r.Fragment,{children:["Used:"," ",s?s(a.toString()):a]})})]})]})})),w=t(49724),N=t(40603),P=(0,s.$j)(null,{setErrorSnackMessage:h.Ih}),T=(0,d.Z)((function(e){return(0,c.Z)({redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16,float:"left",marginRight:4}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16,float:"left",marginRight:4}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16,float:"left",marginRight:4}},greyState:{color:"grey","& .min-icon":{width:16,height:16,float:"left",marginRight:4}},tenantIcon:{width:40,height:40,position:"relative"},healthStatusIcon:{position:"absolute",fontSize:10,top:0,right:-20,height:10},tenantItem:{border:"1px solid #dedede",marginBottom:20,paddingLeft:40,paddingRight:40,paddingTop:30,paddingBottom:30},title:{fontSize:22,fontWeight:"bold"},titleSubKey:{fontSize:14,paddingRight:8},titleSubValue:{fontSize:14,fontWeight:"bold",paddingRight:16},boxyTitle:{fontWeight:"bold"},boxyValue:{fontSize:24,fontWeight:"bold"},boxyUnit:{fontSize:12,color:"#5E5E5E"},manageButton:{marginRight:8,textTransform:"initial"}})}))(P((function(e){var n,t,a=e.tenant,i=e.classes,s={value:"n/a",unit:""},l={value:"n/a",unit:""},c={value:"n/a",unit:""};if(a.capacity_raw){var d=(0,u.ae)("".concat(a.capacity_raw),!0).split(" ");s.value=d[0],s.unit=d[1]}if(a.capacity){var m=(0,u.ae)("".concat(a.capacity),!0).split(" ");l.value=m[0],l.unit=m[1]}if(a.capacity_usage){var h=a.capacity*a.capacity_raw_usage/a.capacity_raw,p=(0,u.ae)("".concat(h),!0).split(" ");c.value=p[0],c.unit=p[1]}return(0,y.jsx)(r.Fragment,{children:(0,y.jsx)("div",{className:i.tenantItem,id:"list-tenant-".concat(a.name),children:(0,y.jsxs)(o.ZP,{container:!0,children:[(0,y.jsxs)(o.ZP,{item:!0,xs:8,children:[(0,y.jsx)("div",{className:i.title,children:a.name}),(0,y.jsxs)("div",{children:[(0,y.jsx)("span",{className:i.titleSubKey,children:"Namespace:"}),(0,y.jsx)("span",{className:i.titleSubValue,children:a.namespace}),(0,y.jsx)("span",{className:i.titleSubKey,children:"Pools:"}),(0,y.jsx)("span",{className:i.titleSubValue,children:a.pool_count}),(0,y.jsx)("span",{className:i.titleSubKey,children:"State:"}),(0,y.jsx)("span",{className:i.titleSubValue,children:a.currentState})]})]}),(0,y.jsxs)(o.ZP,{item:!0,xs:4,textAlign:"end",children:[(0,y.jsx)(N.Z,{id:"manage-tenant-"+a.name,tooltip:"Manage Tenant",text:"Manage",disabled:!(0,w.Yk)(a),onClick:function(){g.Z.push("/namespaces/".concat(a.namespace,"/tenants/").concat(a.name,"/hop"))},icon:(0,y.jsx)(x.ew,{}),color:"primary",variant:"outlined"}),(0,y.jsx)(N.Z,{id:"view-tenant-"+a.name,tooltip:"View Tenant",text:"View",onClick:function(){g.Z.push("/namespaces/".concat(a.namespace,"/tenants/").concat(a.name))},icon:(0,y.jsx)(x.LZ,{}),color:"primary",variant:"contained"})]}),(0,y.jsx)(o.ZP,{item:!0,xs:12,children:(0,y.jsx)("hr",{})}),(0,y.jsx)(o.ZP,{item:!0,xs:12,children:(0,y.jsxs)(o.ZP,{container:!0,alignItems:"center",children:[(0,y.jsx)(o.ZP,{item:!0,xs:7,children:(0,y.jsxs)(o.ZP,{container:!0,children:[(0,y.jsx)(o.ZP,{item:!0,xs:3,style:{textAlign:"center"},children:(0,y.jsxs)("div",{className:i.tenantIcon,children:[(0,y.jsx)(Z.Z,{style:{height:40,width:40}}),(0,y.jsx)("div",{className:i.healthStatusIcon,children:(0,y.jsx)("span",{className:function(e){switch(e){case"red":return i.redState;case"yellow":return i.yellowState;case"green":return i.greenState;default:return i.greyState}}(a.health_status),children:(0,y.jsx)(x.J$,{})})})]})}),(0,y.jsx)(o.ZP,{item:!0,xs:3,children:(0,y.jsxs)(o.ZP,{container:!0,children:[(0,y.jsx)(o.ZP,{item:!0,xs:12,className:i.boxyTitle,children:"Raw Capacity"}),(0,y.jsxs)(o.ZP,{item:!0,className:i.boxyValue,children:[s.value,(0,y.jsx)("span",{className:i.boxyUnit,children:s.unit})]})]})}),(0,y.jsx)(o.ZP,{item:!0,xs:3,children:(0,y.jsxs)(o.ZP,{container:!0,children:[(0,y.jsx)(o.ZP,{item:!0,xs:12,className:i.boxyTitle,children:"Capacity"}),(0,y.jsxs)(o.ZP,{item:!0,className:i.boxyValue,children:[l.value,(0,y.jsx)("span",{className:i.boxyUnit,children:l.unit})]})]})}),(0,y.jsx)(o.ZP,{item:!0,xs:3,children:(0,y.jsxs)(o.ZP,{container:!0,children:[(0,y.jsx)(o.ZP,{item:!0,xs:12,className:i.boxyTitle,children:"Usage"}),(0,y.jsxs)(o.ZP,{item:!0,className:i.boxyValue,children:[c.value,(0,y.jsx)("span",{className:i.boxyUnit,children:c.unit})]})]})})]})}),(0,y.jsx)(o.ZP,{item:!0,xs:5,children:(0,y.jsx)(C,{currValue:null!==(n=a.capacity_raw_usage)&&void 0!==n?n:0,maxValue:null!==(t=a.capacity_raw)&&void 0!==t?t:1,label:"",renderFunction:u.ae,error:"",loading:!1,labels:!1})})]})})]})})})}))),k=t(23804),F=t(81806),I=t(75578),R=t(98994),B=t(59114),z=t(74794),M=(0,I.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(7798)]).then(t.bind(t,37798))}))),L=(0,s.$j)(null,{setErrorSnackMessage:h.Ih}),E=(0,d.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},m.OR),m.qg),(0,m.Bz)(e.spacing(4))),{},{addTenant:{marginRight:8},theaderSearchLabel:{color:e.palette.grey[400],fontSize:14,fontWeight:"bold"},theaderSearch:{borderColor:e.palette.grey[200],"& .MuiInputBase-input":{paddingTop:10,paddingBottom:10},"& .MuiInputBase-root":{"& .MuiInputAdornment-root":{"& .min-icon":{color:e.palette.grey[400],height:14}}},actionHeaderItems:{"@media (min-width: 320px)":{marginTop:8}},marginRight:10,marginLeft:10},mainActions:{textAlign:"right",marginBottom:8},tenantsList:{marginTop:25,height:"calc(100vh - 195px)"},searchField:(0,i.Z)((0,i.Z)({},m.qg.searchField),{},{marginRight:"auto",maxWidth:380})}))}))(L((function(e){var n=e.classes,t=e.setErrorSnackMessage,i=(0,r.useState)(!1),s=(0,a.Z)(i,2),c=s[0],d=s[1],m=(0,r.useState)(""),h=(0,a.Z)(m,2),Z=h[0],v=h[1],b=(0,r.useState)([]),S=(0,a.Z)(b,2),C=S[0],w=S[1],P=(0,r.useState)(!1),I=(0,a.Z)(P,2),L=I[0],E=I[1],V=(0,r.useState)(null),_=(0,a.Z)(V,2),A=_[0],W=_[1],U=C.filter((function(e){return""===Z||e.name.indexOf(Z)>=0}));(0,r.useEffect)((function(){if(c){p.Z.invoke("GET","/api/v1/tenants").then((function(e){if(null!==e){var n=[];null!==e.tenants&&(n=e.tenants);for(var t=0;t.\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n

    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// 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, ReactElement } from \"react\";\nimport { FixedSizeList as List } from \"react-window\";\nimport InfiniteLoader from \"react-window-infinite-loader\";\nimport { AutoSizer } from \"react-virtualized\";\n\ninterface IVirtualizedList {\n rowRenderFunction: (index: number) => ReactElement | null;\n totalItems: number;\n defaultHeight?: number;\n}\n\nlet itemStatusMap: any = {};\nconst LOADING = 1;\nconst LOADED = 2;\n\nconst VirtualizedList = ({\n rowRenderFunction,\n totalItems,\n defaultHeight,\n}: IVirtualizedList) => {\n const isItemLoaded = (index: any) => !!itemStatusMap[index];\n\n const loadMoreItems = (startIndex: number, stopIndex: number) => {\n for (let index = startIndex; index <= stopIndex; index++) {\n itemStatusMap[index] = LOADING;\n }\n\n for (let index = startIndex; index <= stopIndex; index++) {\n itemStatusMap[index] = LOADED;\n }\n };\n\n const RenderItemLine = ({ index, style }: any) => {\n return
    {rowRenderFunction(index)}
    ;\n };\n\n return (\n \n \n {({ onItemsRendered, ref }) => (\n \n {({ width, height }) => {\n return (\n \n {RenderItemLine}\n \n );\n }}\n \n )}\n \n \n );\n};\n\nexport default VirtualizedList;\n","import React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport ErrorBlock from \"../../../shared/ErrorBlock\";\nimport Loader from \"../Loader/Loader\";\n\ninterface IProgressBar {\n maxValue: number;\n currValue: number;\n label: string;\n renderFunction?: (element: string) => any;\n error: string;\n loading: boolean;\n classes: any;\n labels?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n allValue: {\n fontSize: 16,\n fontWeight: 700,\n marginBottom: 8,\n },\n currentUsage: {\n fontSize: 12,\n marginTop: 8,\n },\n centerItem: {\n textAlign: \"center\",\n },\n });\n\nexport const BorderLinearProgress = withStyles((theme) => ({\n root: {\n height: 10,\n borderRadius: 5,\n },\n colorPrimary: {\n backgroundColor: \"#F4F4F4\",\n },\n bar: {\n borderRadius: 5,\n backgroundColor: \"#081C42\",\n },\n padChart: {\n padding: \"5px\",\n },\n}))(LinearProgress);\n\nconst UsageBarWrapper = ({\n classes,\n maxValue,\n currValue,\n label,\n renderFunction,\n loading,\n error,\n labels = true,\n}: IProgressBar) => {\n const porcentualValue = (currValue * 100) / maxValue;\n\n const renderComponent = () => {\n if (!loading) {\n return error !== \"\" ? (\n \n ) : (\n \n \n {labels && (\n \n {label}{\" \"}\n {renderFunction\n ? renderFunction(maxValue.toString())\n : maxValue}\n \n )}\n \n \n \n {labels && (\n \n Used:{\" \"}\n {renderFunction\n ? renderFunction(currValue.toString())\n : currValue}\n \n )}\n \n \n );\n }\n\n return null;\n };\n\n return (\n \n {loading && (\n
    \n \n \n \n
    \n )}\n {renderComponent()}\n
    \n );\n};\n\nexport default withStyles(styles)(UsageBarWrapper);\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 { ITenant, ValueUnit } from \"./types\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport Grid from \"@mui/material/Grid\";\nimport { ArrowRightIcon, CircleIcon, SettingsIcon } from \"../../../../icons\";\nimport history from \"../../../../history\";\nimport TenantsIcon from \"../../../../icons/TenantsIcon\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport UsageBarWrapper from \"../../Common/UsageBarWrapper/UsageBarWrapper\";\nimport { tenantIsOnline } from \"./utils\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n tenantIcon: { width: 40, height: 40, position: \"relative\" },\n healthStatusIcon: {\n position: \"absolute\",\n fontSize: 10,\n top: 0,\n right: -20,\n height: 10,\n },\n tenantItem: {\n border: \"1px solid #dedede\",\n marginBottom: 20,\n paddingLeft: 40,\n paddingRight: 40,\n paddingTop: 30,\n paddingBottom: 30,\n },\n title: {\n fontSize: 22,\n fontWeight: \"bold\",\n },\n titleSubKey: {\n fontSize: 14,\n paddingRight: 8,\n },\n titleSubValue: {\n fontSize: 14,\n fontWeight: \"bold\",\n paddingRight: 16,\n },\n boxyTitle: {\n fontWeight: \"bold\",\n },\n boxyValue: {\n fontSize: 24,\n fontWeight: \"bold\",\n },\n boxyUnit: {\n fontSize: 12,\n color: \"#5E5E5E\",\n },\n manageButton: {\n marginRight: 8,\n textTransform: \"initial\",\n },\n });\n\ninterface ITenantListItem {\n tenant: ITenant;\n classes: any;\n}\n\nconst TenantListItem = ({ tenant, classes }: ITenantListItem) => {\n const healthStatusToClass = (health_status: string) => {\n switch (health_status) {\n case \"red\":\n return classes.redState;\n case \"yellow\":\n return classes.yellowState;\n case \"green\":\n return classes.greenState;\n default:\n return classes.greyState;\n }\n };\n\n var raw: ValueUnit = { value: \"n/a\", unit: \"\" };\n var capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n var used: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (tenant.capacity_raw) {\n const b = niceBytes(`${tenant.capacity_raw}`, true);\n const parts = b.split(\" \");\n raw.value = parts[0];\n raw.unit = parts[1];\n }\n if (tenant.capacity) {\n const b = niceBytes(`${tenant.capacity}`, true);\n const parts = b.split(\" \");\n capacity.value = parts[0];\n capacity.unit = parts[1];\n }\n if (tenant.capacity_usage) {\n const usageProportion =\n (tenant.capacity! * tenant.capacity_raw_usage!) / tenant.capacity_raw!;\n const b = niceBytes(`${usageProportion}`, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n return (\n \n
    \n \n \n
    {tenant.name}
    \n
    \n Namespace:\n {tenant.namespace}\n Pools:\n {tenant.pool_count}\n State:\n \n {tenant.currentState}\n \n
    \n
    \n \n {\n history.push(\n `/namespaces/${tenant.namespace}/tenants/${tenant.name}/hop`\n );\n }}\n icon={}\n color=\"primary\"\n variant={\"outlined\"}\n />\n {\n history.push(\n `/namespaces/${tenant.namespace}/tenants/${tenant.name}`\n );\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n \n
    \n
    \n \n \n \n \n \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n \n \n Raw Capacity\n \n \n {raw.value}\n {raw.unit}\n \n \n \n \n \n \n Capacity\n \n \n {capacity.value}\n \n {capacity.unit}\n \n \n \n \n \n \n \n Usage\n \n \n {used.value}\n {used.unit}\n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(TenantListItem));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport { LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ITenant, ITenantsResponse } from \"./types\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport { NewServiceAccount } from \"../../Common/CredentialsPrompt/types\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AddIcon, TenantsIcon } from \"../../../../icons\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport history from \"../../../../history\";\nimport RefreshIcon from \"../../../../icons/RefreshIcon\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport TenantListItem from \"./TenantListItem\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport AButton from \"../../Common/AButton/AButton\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport VirtualizedList from \"../../Common/VirtualizedList/VirtualizedList\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport SearchBox from \"../../Common/SearchBox\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\n\nconst CredentialsPrompt = withSuspense(\n React.lazy(() => import(\"../../Common/CredentialsPrompt/CredentialsPrompt\"))\n);\n\ninterface ITenantsList {\n classes: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...searchField,\n ...containerForHeader(theme.spacing(4)),\n addTenant: {\n marginRight: 8,\n },\n theaderSearchLabel: {\n color: theme.palette.grey[\"400\"],\n fontSize: 14,\n fontWeight: \"bold\",\n },\n theaderSearch: {\n borderColor: theme.palette.grey[\"200\"],\n \"& .MuiInputBase-input\": {\n paddingTop: 10,\n paddingBottom: 10,\n },\n \"& .MuiInputBase-root\": {\n \"& .MuiInputAdornment-root\": {\n \"& .min-icon\": {\n color: theme.palette.grey[\"400\"],\n height: 14,\n },\n },\n },\n actionHeaderItems: {\n \"@media (min-width: 320px)\": {\n marginTop: 8,\n },\n },\n marginRight: 10,\n marginLeft: 10,\n },\n mainActions: {\n textAlign: \"right\",\n marginBottom: 8,\n },\n tenantsList: {\n marginTop: 25,\n height: \"calc(100vh - 195px)\",\n },\n searchField: {\n ...searchField.searchField,\n marginRight: \"auto\",\n maxWidth: 380,\n },\n });\n\nconst ListTenants = ({ classes, setErrorSnackMessage }: ITenantsList) => {\n const [isLoading, setIsLoading] = useState(false);\n const [filterTenants, setFilterTenants] = useState(\"\");\n const [records, setRecords] = useState([]);\n const [showNewCredentials, setShowNewCredentials] = useState(false);\n const [createdAccount, setCreatedAccount] =\n useState(null);\n\n const closeCredentialsModal = () => {\n setShowNewCredentials(false);\n setCreatedAccount(null);\n };\n\n const filteredRecords = records.filter((b: any) => {\n if (filterTenants === \"\") {\n return true;\n } else {\n if (b.name.indexOf(filterTenants) >= 0) {\n return true;\n } else {\n return false;\n }\n }\n });\n\n useEffect(() => {\n if (isLoading) {\n const fetchRecords = () => {\n api\n .invoke(\"GET\", `/api/v1/tenants`)\n .then((res: ITenantsResponse) => {\n if (res === null) {\n setIsLoading(false);\n return;\n }\n let resTenants: ITenant[] = [];\n if (res.tenants !== null) {\n resTenants = res.tenants;\n }\n\n for (let i = 0; i < resTenants.length; i++) {\n resTenants[i].total_capacity = niceBytes(\n resTenants[i].total_size + \"\"\n );\n }\n\n setRecords(resTenants);\n setIsLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setIsLoading(false);\n });\n };\n fetchRecords();\n }\n }, [isLoading, setErrorSnackMessage]);\n\n useEffect(() => {\n setIsLoading(true);\n }, []);\n\n const renderItemLine = (index: number) => {\n const tenant = filteredRecords[index] || null;\n\n if (tenant) {\n return ;\n }\n\n return null;\n };\n\n return (\n \n {showNewCredentials && (\n {\n closeCredentialsModal();\n }}\n entity=\"Tenant\"\n />\n )}\n \n {\n setFilterTenants(val);\n }}\n overrideClass={classes.searchField}\n value={filterTenants}\n />\n\n {\n setIsLoading(true);\n }}\n icon={}\n color=\"primary\"\n variant={\"outlined\"}\n />\n {\n history.push(\"/tenants/add\");\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n }\n />\n \n \n {isLoading && }\n {!isLoading && (\n \n {filteredRecords.length !== 0 && (\n \n )}\n {filteredRecords.length === 0 && (\n \n \n }\n title={\"Tenants\"}\n help={\n \n Tenant is the logical structure to represent a MinIO\n deployment. A tenant can have different size and\n configurations from other tenants, even a different\n storage class.\n
    \n
    \n To get started, \n {\n history.push(\"/tenants/add\");\n }}\n >\n Create a Tenant.\n \n
    \n }\n />\n
    \n
    \n )}\n
    \n )}\n \n \n
    \n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ListTenants));\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
    }\n \n {errorMessage}\n \n
    \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","useStyles","makeStyles","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","onClick","disabled","tooltip","icon","restProps","size","sx","margin","textDecoration","cursor","info","fontFamily","children","rest","borderWidth","borderStyle","opacity","contained","background","dark","light","button","clsx","WrappedComponent","fallback","ComponentWithSuspense","Suspense","pageContentStyles","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","label","justifyContent","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","actions","includes","Fragment","direction","sm","md","length","component","id","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","InputProps","e","target","itemStatusMap","rowRenderFunction","totalItems","defaultHeight","RenderItemLine","index","style","isItemLoaded","loadMoreItems","startIndex","stopIndex","itemCount","onItemsRendered","ref","itemSize","BorderLinearProgress","colorPrimary","bar","padChart","LinearProgress","allValue","currentUsage","centerItem","maxValue","currValue","renderFunction","loading","error","labels","porcentualValue","Grid","Loader","ErrorBlock","errorMessage","withBreak","toString","setErrorSnackMessage","redState","float","yellowState","warning","greenState","success","greyState","tenantIcon","healthStatusIcon","top","right","tenantItem","titleSubKey","titleSubValue","boxyTitle","boxyValue","boxyUnit","manageButton","textTransform","tenant","raw","unit","capacity","used","capacity_raw","parts","niceBytes","split","capacity_usage","usageProportion","capacity_raw_usage","name","namespace","pool_count","currentState","RBIconButton","tenantIsOnline","history","TenantsIcon","health_status","healthStatusToClass","CredentialsPrompt","withSuspense","React","actionsTray","containerForHeader","spacing","addTenant","theaderSearchLabel","grey","theaderSearch","actionHeaderItems","mainActions","tenantsList","maxWidth","useState","isLoading","setIsLoading","filterTenants","setFilterTenants","records","setRecords","showNewCredentials","setShowNewCredentials","createdAccount","setCreatedAccount","filteredRecords","filter","b","indexOf","useEffect","api","then","res","resTenants","tenants","i","total_capacity","total_size","catch","err","newServiceAccount","open","closeModal","entity","PageHeader","SearchBox","val","RefreshIcon","PageLayout","VirtualizedList","alignContent","HelpBox","AButton","errorBlock"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/6144.aef3ec0e.chunk.js b/portal-ui/build/static/js/6144.aef3ec0e.chunk.js new file mode 100644 index 000000000..99b2ce218 --- /dev/null +++ b/portal-ui/build/static/js/6144.aef3ec0e.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6144],{23804:function(e,n,t){t(72791);var a=t(11135),i=t(25787),r=t(61889),s=t(80184);n.Z=(0,i.Z)((function(e){return(0,a.Z)({root:{border:"1px solid #E2E2E2",borderRadius:2,backgroundColor:"#FBFAFA",paddingLeft:25,paddingTop:31,paddingBottom:21,paddingRight:30},leftItems:{fontSize:16,fontWeight:"bold",marginBottom:15,display:"flex",alignItems:"center","& .min-icon":{marginRight:15,height:28,width:38}},helpText:{fontSize:16,paddingLeft:5}})}))((function(e){var n=e.classes,t=e.iconComponent,a=e.title,i=e.help;return(0,s.jsx)("div",{className:n.root,children:(0,s.jsxs)(r.ZP,{container:!0,children:[(0,s.jsxs)(r.ZP,{item:!0,xs:12,className:n.leftItems,children:[t,a]}),(0,s.jsx)(r.ZP,{item:!0,xs:12,className:n.helpText,children:i})]})})}))},40603:function(e,n,t){var a=t(1413),i=t(45987),r=(t(72791),t(85531)),s=t(72455),o=t(80184),l=["onClick","text","disabled","tooltip","icon","className"],c=(0,s.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,a=n.color,i=e.palette.primary.main;return"primary"===a&&"contained"===t?i=e.palette.primary.contrastText:"primary"===a&&"outlined"===t?i=e.palette.primary.main:"secondary"===a&&(i=e.palette.secondary.main),i}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=c(e),t=e.onClick,s=e.text,d=void 0===s?"":s,u=e.disabled,m=void 0!==u&&u,h=e.tooltip,x=e.icon,p=void 0===x?null:x,g=e.className,f=void 0===g?"":g,j=(0,i.Z)(e,l);return(0,o.jsxs)(r.Z,(0,a.Z)((0,a.Z)({className:f,classes:n,tooltip:h||d,variant:"outlined",onClick:t,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},j),{},{children:[(0,o.jsx)("span",{children:d})," ",p]}))}},81806:function(e,n,t){var a=t(1413),i=t(45987),r=(t(72791),t(11135)),s=t(25787),o=t(80184),l=["classes","children"];n.Z=(0,s.Z)((function(e){return(0,r.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"}})}))((function(e){var n=e.classes,t=e.children,r=(0,i.Z)(e,l);return(0,o.jsx)("button",(0,a.Z)((0,a.Z)({},r),{},{className:n.root,children:t}))}))},85531:function(e,n,t){var a=t(1413),i=t(4942),r=t(45987),s=(t(72791),t(11135)),o=t(25787),l=t(13400),c=t(20068),d=t(28182),u=t(80184),m=["classes","children","variant","tooltip"];n.Z=(0,o.Z)((function(e){return(0,s.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,t=e.children,s=e.variant,o=void 0===s?"outlined":s,h=e.tooltip,x=(0,r.Z)(e,m),p=(0,u.jsx)(l.Z,(0,a.Z)((0,a.Z)({},x),{},{className:(0,d.Z)(n.root,(0,i.Z)({},n.contained,"contained"===o)),children:t}));return h&&""!==h?(0,u.jsx)(c.Z,{title:h,children:(0,u.jsx)("span",{children:p})}):p}))},75578:function(e,n,t){var a=t(1413),i=t(72791),r=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,r.jsx)(i.Suspense,{fallback:n,children:(0,r.jsx)(e,(0,a.Z)({},t))})}return t}},74794:function(e,n,t){var a=t(1413),i=(t(72791),t(61889)),r=t(11135),s=t(25787),o=t(23814),l=t(80184);n.Z=(0,s.Z)((function(e){return(0,r.Z)((0,a.Z)({},o.Bw))}))((function(e){var n=e.classes,t=e.className,a=void 0===t?"":t,r=e.children;return(0,l.jsx)("div",{className:n.contentSpacer,children:(0,l.jsx)(i.ZP,{container:!0,children:(0,l.jsx)(i.ZP,{item:!0,xs:12,className:a,children:r})})})}))},32291:function(e,n,t){var a=t(72791),i=t(60364),r=t(61889),s=t(11135),o=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),m=t(3925),h=t(13048),x=t(80184),p={toggleList:m.kQ},g=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),p);n.Z=g((0,o.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,i=e.actions,s=e.sidebarOpen,o=e.operatorMode,m=e.managerObjects,p=e.toggleList,g=e.middleComponent;return e.features.includes("hide-menu")?(0,x.jsx)(a.Fragment,{}):(0,x.jsxs)(r.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,x.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,x.jsx)("div",{className:n.logo,children:o?(0,x.jsx)(d.Z,{}):(0,x.jsx)(u.Z,{})}),(0,x.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),g&&(0,x.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:g}),(0,x.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:n.rightMenu,children:[i&&i,m&&m.length>0&&(0,x.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){p()},id:"object-manager-toggle",size:"large",children:(0,x.jsx)(h.gx,{})})]})]})})))},59114:function(e,n,t){var a=t(4942),i=t(1413),r=(t(72791),t(63466)),s=t(74900),o=t(27391),l=t(25787),c=t(11135),d=t(23814),u=t(80184);n.Z=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,i.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,i=e.classes,l=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,m=e.overrideClass,h=e.value,x=(0,a.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(r.Z,{position:d,className:i.adornment,children:(0,u.jsx)(s.Z,{})}));return(0,u.jsx)(o.Z,{placeholder:t,className:m||i.searchField,id:"search-resource",label:"",InputProps:x,onChange:function(e){l(e.target.value)},variant:"standard",value:h})}))},98994:function(e,n,t){var a=t(72791),i=t(22338),r=t(79762),s=t(5171),o=t(80184),l={};n.Z=function(e){var n=e.rowRenderFunction,t=e.totalItems,c=e.defaultHeight,d=function(e){var t=e.index,a=e.style;return(0,o.jsx)("div",{style:a,children:n(t)})};return(0,o.jsx)(a.Fragment,{children:(0,o.jsx)(r.Z,{isItemLoaded:function(e){return!!l[e]},loadMoreItems:function(e,n){for(var t=e;t<=n;t++)l[t]=1;for(var a=e;a<=n;a++)l[a]=2},itemCount:t,children:function(e){var n=e.onItemsRendered,a=e.ref;return(0,o.jsx)(s.qj,{children:function(e){var r=e.width,s=e.height;return(0,o.jsx)(i.t7,{itemSize:c||220,height:s,itemCount:t,width:r,ref:a,onItemsRendered:n,children:d})}})}})})}},76144:function(e,n,t){t.r(n),t.d(n,{default:function(){return E}});var a=t(70885),i=t(1413),r=t(72791),s=t(60364),o=t(61889),l=t(40986),c=t(11135),d=t(25787),u=t(45248),m=t(23814),h=t(42649),x=t(13048),p=t(81207),g=t(62666),f=t(28789),j=t(32291),Z=t(88449),v=t(22512),b=t(72401),y=t(80184),S=(0,d.Z)((function(e){return{root:{height:10,borderRadius:5},colorPrimary:{backgroundColor:"#F4F4F4"},bar:{borderRadius:5,backgroundColor:"#081C42"},padChart:{padding:"5px"}}}))(l.Z),C=(0,d.Z)((function(e){return(0,c.Z)({allValue:{fontSize:16,fontWeight:700,marginBottom:8},currentUsage:{fontSize:12,marginTop:8},centerItem:{textAlign:"center"}})}))((function(e){var n=e.classes,t=e.maxValue,a=e.currValue,i=e.label,s=e.renderFunction,l=e.loading,c=e.error,d=e.labels,u=void 0===d||d,m=100*a/t;return(0,y.jsxs)(r.Fragment,{children:[l&&(0,y.jsx)("div",{className:n.padChart,children:(0,y.jsx)(o.ZP,{item:!0,xs:12,className:n.centerItem,children:(0,y.jsx)(b.Z,{})})}),l?null:""!==c?(0,y.jsx)(v.Z,{errorMessage:c,withBreak:!1}):(0,y.jsxs)(r.Fragment,{children:[(0,y.jsx)(o.ZP,{item:!0,xs:12,className:n.allValue,children:u&&(0,y.jsxs)(r.Fragment,{children:[i," ",s?s(t.toString()):t]})}),(0,y.jsx)(S,{variant:"determinate",value:m}),(0,y.jsx)(o.ZP,{item:!0,xs:12,className:n.currentUsage,children:u&&(0,y.jsxs)(r.Fragment,{children:["Used:"," ",s?s(a.toString()):a]})})]})]})})),N=t(49724),w=t(40603),P=(0,s.$j)(null,{setErrorSnackMessage:h.Ih}),T=(0,d.Z)((function(e){return(0,c.Z)({redState:{color:e.palette.error.main,"& .min-icon":{width:16,height:16,float:"left",marginRight:4}},yellowState:{color:e.palette.warning.main,"& .min-icon":{width:16,height:16,float:"left",marginRight:4}},greenState:{color:e.palette.success.main,"& .min-icon":{width:16,height:16,float:"left",marginRight:4}},greyState:{color:"grey","& .min-icon":{width:16,height:16,float:"left",marginRight:4}},tenantIcon:{width:40,height:40,position:"relative"},healthStatusIcon:{position:"absolute",fontSize:10,top:0,right:-20,height:10},tenantItem:{border:"1px solid #dedede",marginBottom:20,paddingLeft:40,paddingRight:40,paddingTop:30,paddingBottom:30},title:{fontSize:22,fontWeight:"bold"},titleSubKey:{fontSize:14,paddingRight:8},titleSubValue:{fontSize:14,fontWeight:"bold",paddingRight:16},boxyTitle:{fontWeight:"bold"},boxyValue:{fontSize:24,fontWeight:"bold"},boxyUnit:{fontSize:12,color:"#5E5E5E"},manageButton:{marginRight:8,textTransform:"initial"}})}))(P((function(e){var n,t,a=e.tenant,i=e.classes,s={value:"n/a",unit:""},l={value:"n/a",unit:""},c={value:"n/a",unit:""};if(a.capacity_raw){var d=(0,u.ae)("".concat(a.capacity_raw),!0).split(" ");s.value=d[0],s.unit=d[1]}if(a.capacity){var m=(0,u.ae)("".concat(a.capacity),!0).split(" ");l.value=m[0],l.unit=m[1]}if(a.capacity_usage){var h=a.capacity*a.capacity_raw_usage/a.capacity_raw,p=(0,u.ae)("".concat(h),!0).split(" ");c.value=p[0],c.unit=p[1]}return(0,y.jsx)(r.Fragment,{children:(0,y.jsx)("div",{className:i.tenantItem,id:"list-tenant-".concat(a.name),children:(0,y.jsxs)(o.ZP,{container:!0,children:[(0,y.jsxs)(o.ZP,{item:!0,xs:8,children:[(0,y.jsx)("div",{className:i.title,children:a.name}),(0,y.jsxs)("div",{children:[(0,y.jsx)("span",{className:i.titleSubKey,children:"Namespace:"}),(0,y.jsx)("span",{className:i.titleSubValue,children:a.namespace}),(0,y.jsx)("span",{className:i.titleSubKey,children:"Pools:"}),(0,y.jsx)("span",{className:i.titleSubValue,children:a.pool_count}),(0,y.jsx)("span",{className:i.titleSubKey,children:"State:"}),(0,y.jsx)("span",{className:i.titleSubValue,children:a.currentState})]})]}),(0,y.jsxs)(o.ZP,{item:!0,xs:4,textAlign:"end",children:[(0,y.jsx)(w.Z,{id:"manage-tenant-"+a.name,tooltip:"Manage Tenant",text:"Manage",disabled:!(0,N.Yk)(a),onClick:function(){g.Z.push("/namespaces/".concat(a.namespace,"/tenants/").concat(a.name,"/hop"))},icon:(0,y.jsx)(x.ew,{}),color:"primary",variant:"outlined"}),(0,y.jsx)(w.Z,{id:"view-tenant-"+a.name,tooltip:"View Tenant",text:"View",onClick:function(){g.Z.push("/namespaces/".concat(a.namespace,"/tenants/").concat(a.name))},icon:(0,y.jsx)(x.LZ,{}),color:"primary",variant:"contained"})]}),(0,y.jsx)(o.ZP,{item:!0,xs:12,children:(0,y.jsx)("hr",{})}),(0,y.jsx)(o.ZP,{item:!0,xs:12,children:(0,y.jsxs)(o.ZP,{container:!0,alignItems:"center",children:[(0,y.jsx)(o.ZP,{item:!0,xs:7,children:(0,y.jsxs)(o.ZP,{container:!0,children:[(0,y.jsx)(o.ZP,{item:!0,xs:3,style:{textAlign:"center"},children:(0,y.jsxs)("div",{className:i.tenantIcon,children:[(0,y.jsx)(Z.Z,{style:{height:40,width:40}}),(0,y.jsx)("div",{className:i.healthStatusIcon,children:(0,y.jsx)("span",{className:function(e){switch(e){case"red":return i.redState;case"yellow":return i.yellowState;case"green":return i.greenState;default:return i.greyState}}(a.health_status),children:(0,y.jsx)(x.J$,{})})})]})}),(0,y.jsx)(o.ZP,{item:!0,xs:3,children:(0,y.jsxs)(o.ZP,{container:!0,children:[(0,y.jsx)(o.ZP,{item:!0,xs:12,className:i.boxyTitle,children:"Raw Capacity"}),(0,y.jsxs)(o.ZP,{item:!0,className:i.boxyValue,children:[s.value,(0,y.jsx)("span",{className:i.boxyUnit,children:s.unit})]})]})}),(0,y.jsx)(o.ZP,{item:!0,xs:3,children:(0,y.jsxs)(o.ZP,{container:!0,children:[(0,y.jsx)(o.ZP,{item:!0,xs:12,className:i.boxyTitle,children:"Capacity"}),(0,y.jsxs)(o.ZP,{item:!0,className:i.boxyValue,children:[l.value,(0,y.jsx)("span",{className:i.boxyUnit,children:l.unit})]})]})}),(0,y.jsx)(o.ZP,{item:!0,xs:3,children:(0,y.jsxs)(o.ZP,{container:!0,children:[(0,y.jsx)(o.ZP,{item:!0,xs:12,className:i.boxyTitle,children:"Usage"}),(0,y.jsxs)(o.ZP,{item:!0,className:i.boxyValue,children:[c.value,(0,y.jsx)("span",{className:i.boxyUnit,children:c.unit})]})]})})]})}),(0,y.jsx)(o.ZP,{item:!0,xs:5,children:(0,y.jsx)(C,{currValue:null!==(n=a.capacity_raw_usage)&&void 0!==n?n:0,maxValue:null!==(t=a.capacity_raw)&&void 0!==t?t:1,label:"",renderFunction:u.ae,error:"",loading:!1,labels:!1})})]})})]})})})}))),k=t(23804),F=t(81806),I=t(75578),R=t(98994),B=t(59114),z=t(74794),M=(0,I.Z)(r.lazy((function(){return Promise.all([t.e(3772),t.e(7798)]).then(t.bind(t,37798))}))),L=(0,s.$j)(null,{setErrorSnackMessage:h.Ih}),E=(0,d.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},m.OR),m.qg),(0,m.Bz)(e.spacing(4))),{},{addTenant:{marginRight:8},theaderSearchLabel:{color:e.palette.grey[400],fontSize:14,fontWeight:"bold"},theaderSearch:{borderColor:e.palette.grey[200],"& .MuiInputBase-input":{paddingTop:10,paddingBottom:10},"& .MuiInputBase-root":{"& .MuiInputAdornment-root":{"& .min-icon":{color:e.palette.grey[400],height:14}}},actionHeaderItems:{"@media (min-width: 320px)":{marginTop:8}},marginRight:10,marginLeft:10},mainActions:{textAlign:"right",marginBottom:8},tenantsList:{marginTop:25,height:"calc(100vh - 195px)"},searchField:(0,i.Z)((0,i.Z)({},m.qg.searchField),{},{marginRight:"auto",maxWidth:380})}))}))(L((function(e){var n=e.classes,t=e.setErrorSnackMessage,i=(0,r.useState)(!1),s=(0,a.Z)(i,2),c=s[0],d=s[1],m=(0,r.useState)(""),h=(0,a.Z)(m,2),Z=h[0],v=h[1],b=(0,r.useState)([]),S=(0,a.Z)(b,2),C=S[0],N=S[1],P=(0,r.useState)(!1),I=(0,a.Z)(P,2),L=I[0],E=I[1],V=(0,r.useState)(null),_=(0,a.Z)(V,2),A=_[0],W=_[1],U=C.filter((function(e){return""===Z||e.name.indexOf(Z)>=0}));(0,r.useEffect)((function(){if(c){p.Z.invoke("GET","/api/v1/tenants").then((function(e){if(null!==e){var n=[];null!==e.tenants&&(n=e.tenants);for(var t=0;t.\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 2,\n backgroundColor: \"#FBFAFA\",\n paddingLeft: 25,\n paddingTop: 31,\n paddingBottom: 21,\n paddingRight: 30,\n },\n leftItems: {\n fontSize: 16,\n fontWeight: \"bold\",\n marginBottom: 15,\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n marginRight: 15,\n height: 28,\n width: 38,\n },\n },\n helpText: {\n fontSize: 16,\n paddingLeft: 5,\n },\n });\n\ninterface IHelpBox {\n classes: any;\n iconComponent: any;\n title: string;\n help: any;\n}\n\nconst HelpBox = ({ classes, iconComponent, title, help }: IHelpBox) => {\n return (\n
    \n \n \n {iconComponent}\n {title}\n \n \n {help}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(HelpBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButtonProps } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n });\n\ninterface IAButton extends IconButtonProps {\n classes: any;\n children: any;\n}\n\nconst AButton = ({ classes, children, ...rest }: IAButton) => {\n return (\n \n );\n};\n\nexport default withStyles(styles)(AButton);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n

    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// 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, ReactElement } from \"react\";\nimport { FixedSizeList as List } from \"react-window\";\nimport InfiniteLoader from \"react-window-infinite-loader\";\nimport { AutoSizer } from \"react-virtualized\";\n\ninterface IVirtualizedList {\n rowRenderFunction: (index: number) => ReactElement | null;\n totalItems: number;\n defaultHeight?: number;\n}\n\nlet itemStatusMap: any = {};\nconst LOADING = 1;\nconst LOADED = 2;\n\nconst VirtualizedList = ({\n rowRenderFunction,\n totalItems,\n defaultHeight,\n}: IVirtualizedList) => {\n const isItemLoaded = (index: any) => !!itemStatusMap[index];\n\n const loadMoreItems = (startIndex: number, stopIndex: number) => {\n for (let index = startIndex; index <= stopIndex; index++) {\n itemStatusMap[index] = LOADING;\n }\n\n for (let index = startIndex; index <= stopIndex; index++) {\n itemStatusMap[index] = LOADED;\n }\n };\n\n const RenderItemLine = ({ index, style }: any) => {\n return
    {rowRenderFunction(index)}
    ;\n };\n\n return (\n \n \n {({ onItemsRendered, ref }) => (\n \n {({ width, height }) => {\n return (\n \n {RenderItemLine}\n \n );\n }}\n \n )}\n \n \n );\n};\n\nexport default VirtualizedList;\n","import React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport ErrorBlock from \"../../../shared/ErrorBlock\";\nimport Loader from \"../Loader/Loader\";\n\ninterface IProgressBar {\n maxValue: number;\n currValue: number;\n label: string;\n renderFunction?: (element: string) => any;\n error: string;\n loading: boolean;\n classes: any;\n labels?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n allValue: {\n fontSize: 16,\n fontWeight: 700,\n marginBottom: 8,\n },\n currentUsage: {\n fontSize: 12,\n marginTop: 8,\n },\n centerItem: {\n textAlign: \"center\",\n },\n });\n\nexport const BorderLinearProgress = withStyles((theme) => ({\n root: {\n height: 10,\n borderRadius: 5,\n },\n colorPrimary: {\n backgroundColor: \"#F4F4F4\",\n },\n bar: {\n borderRadius: 5,\n backgroundColor: \"#081C42\",\n },\n padChart: {\n padding: \"5px\",\n },\n}))(LinearProgress);\n\nconst UsageBarWrapper = ({\n classes,\n maxValue,\n currValue,\n label,\n renderFunction,\n loading,\n error,\n labels = true,\n}: IProgressBar) => {\n const porcentualValue = (currValue * 100) / maxValue;\n\n const renderComponent = () => {\n if (!loading) {\n return error !== \"\" ? (\n \n ) : (\n \n \n {labels && (\n \n {label}{\" \"}\n {renderFunction\n ? renderFunction(maxValue.toString())\n : maxValue}\n \n )}\n \n \n \n {labels && (\n \n Used:{\" \"}\n {renderFunction\n ? renderFunction(currValue.toString())\n : currValue}\n \n )}\n \n \n );\n }\n\n return null;\n };\n\n return (\n \n {loading && (\n
    \n \n \n \n
    \n )}\n {renderComponent()}\n
    \n );\n};\n\nexport default withStyles(styles)(UsageBarWrapper);\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 { ITenant, ValueUnit } from \"./types\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport Grid from \"@mui/material/Grid\";\nimport { ArrowRightIcon, CircleIcon, SettingsIcon } from \"../../../../icons\";\nimport history from \"../../../../history\";\nimport TenantsIcon from \"../../../../icons/TenantsIcon\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport UsageBarWrapper from \"../../Common/UsageBarWrapper/UsageBarWrapper\";\nimport { tenantIsOnline } from \"./utils\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n redState: {\n color: theme.palette.error.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n yellowState: {\n color: theme.palette.warning.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n greenState: {\n color: theme.palette.success.main,\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n greyState: {\n color: \"grey\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n float: \"left\",\n marginRight: 4,\n },\n },\n tenantIcon: { width: 40, height: 40, position: \"relative\" },\n healthStatusIcon: {\n position: \"absolute\",\n fontSize: 10,\n top: 0,\n right: -20,\n height: 10,\n },\n tenantItem: {\n border: \"1px solid #dedede\",\n marginBottom: 20,\n paddingLeft: 40,\n paddingRight: 40,\n paddingTop: 30,\n paddingBottom: 30,\n },\n title: {\n fontSize: 22,\n fontWeight: \"bold\",\n },\n titleSubKey: {\n fontSize: 14,\n paddingRight: 8,\n },\n titleSubValue: {\n fontSize: 14,\n fontWeight: \"bold\",\n paddingRight: 16,\n },\n boxyTitle: {\n fontWeight: \"bold\",\n },\n boxyValue: {\n fontSize: 24,\n fontWeight: \"bold\",\n },\n boxyUnit: {\n fontSize: 12,\n color: \"#5E5E5E\",\n },\n manageButton: {\n marginRight: 8,\n textTransform: \"initial\",\n },\n });\n\ninterface ITenantListItem {\n tenant: ITenant;\n classes: any;\n}\n\nconst TenantListItem = ({ tenant, classes }: ITenantListItem) => {\n const healthStatusToClass = (health_status: string) => {\n switch (health_status) {\n case \"red\":\n return classes.redState;\n case \"yellow\":\n return classes.yellowState;\n case \"green\":\n return classes.greenState;\n default:\n return classes.greyState;\n }\n };\n\n var raw: ValueUnit = { value: \"n/a\", unit: \"\" };\n var capacity: ValueUnit = { value: \"n/a\", unit: \"\" };\n var used: ValueUnit = { value: \"n/a\", unit: \"\" };\n\n if (tenant.capacity_raw) {\n const b = niceBytes(`${tenant.capacity_raw}`, true);\n const parts = b.split(\" \");\n raw.value = parts[0];\n raw.unit = parts[1];\n }\n if (tenant.capacity) {\n const b = niceBytes(`${tenant.capacity}`, true);\n const parts = b.split(\" \");\n capacity.value = parts[0];\n capacity.unit = parts[1];\n }\n if (tenant.capacity_usage) {\n const usageProportion =\n (tenant.capacity! * tenant.capacity_raw_usage!) / tenant.capacity_raw!;\n const b = niceBytes(`${usageProportion}`, true);\n const parts = b.split(\" \");\n used.value = parts[0];\n used.unit = parts[1];\n }\n\n return (\n \n
    \n \n \n
    {tenant.name}
    \n
    \n Namespace:\n {tenant.namespace}\n Pools:\n {tenant.pool_count}\n State:\n \n {tenant.currentState}\n \n
    \n
    \n \n {\n history.push(\n `/namespaces/${tenant.namespace}/tenants/${tenant.name}/hop`\n );\n }}\n icon={}\n color=\"primary\"\n variant={\"outlined\"}\n />\n {\n history.push(\n `/namespaces/${tenant.namespace}/tenants/${tenant.name}`\n );\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n \n
    \n
    \n \n \n \n \n \n
    \n \n
    \n \n \n \n
    \n
    \n
    \n \n \n \n Raw Capacity\n \n \n {raw.value}\n {raw.unit}\n \n \n \n \n \n \n Capacity\n \n \n {capacity.value}\n \n {capacity.unit}\n \n \n \n \n \n \n \n Usage\n \n \n {used.value}\n {used.unit}\n \n \n \n
    \n
    \n \n \n \n
    \n
    \n
    \n
    \n
    \n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(TenantListItem));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport { LinearProgress } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ITenant, ITenantsResponse } from \"./types\";\nimport { niceBytes } from \"../../../../common/utils\";\nimport { NewServiceAccount } from \"../../Common/CredentialsPrompt/types\";\nimport {\n actionsTray,\n containerForHeader,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { AddIcon, TenantsIcon } from \"../../../../icons\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport api from \"../../../../common/api\";\nimport history from \"../../../../history\";\nimport RefreshIcon from \"../../../../icons/RefreshIcon\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport TenantListItem from \"./TenantListItem\";\nimport HelpBox from \"../../../../common/HelpBox\";\nimport AButton from \"../../Common/AButton/AButton\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport VirtualizedList from \"../../Common/VirtualizedList/VirtualizedList\";\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\nimport SearchBox from \"../../Common/SearchBox\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\n\nconst CredentialsPrompt = withSuspense(\n React.lazy(() => import(\"../../Common/CredentialsPrompt/CredentialsPrompt\"))\n);\n\ninterface ITenantsList {\n classes: any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...actionsTray,\n ...searchField,\n ...containerForHeader(theme.spacing(4)),\n addTenant: {\n marginRight: 8,\n },\n theaderSearchLabel: {\n color: theme.palette.grey[\"400\"],\n fontSize: 14,\n fontWeight: \"bold\",\n },\n theaderSearch: {\n borderColor: theme.palette.grey[\"200\"],\n \"& .MuiInputBase-input\": {\n paddingTop: 10,\n paddingBottom: 10,\n },\n \"& .MuiInputBase-root\": {\n \"& .MuiInputAdornment-root\": {\n \"& .min-icon\": {\n color: theme.palette.grey[\"400\"],\n height: 14,\n },\n },\n },\n actionHeaderItems: {\n \"@media (min-width: 320px)\": {\n marginTop: 8,\n },\n },\n marginRight: 10,\n marginLeft: 10,\n },\n mainActions: {\n textAlign: \"right\",\n marginBottom: 8,\n },\n tenantsList: {\n marginTop: 25,\n height: \"calc(100vh - 195px)\",\n },\n searchField: {\n ...searchField.searchField,\n marginRight: \"auto\",\n maxWidth: 380,\n },\n });\n\nconst ListTenants = ({ classes, setErrorSnackMessage }: ITenantsList) => {\n const [isLoading, setIsLoading] = useState(false);\n const [filterTenants, setFilterTenants] = useState(\"\");\n const [records, setRecords] = useState([]);\n const [showNewCredentials, setShowNewCredentials] = useState(false);\n const [createdAccount, setCreatedAccount] =\n useState(null);\n\n const closeCredentialsModal = () => {\n setShowNewCredentials(false);\n setCreatedAccount(null);\n };\n\n const filteredRecords = records.filter((b: any) => {\n if (filterTenants === \"\") {\n return true;\n } else {\n if (b.name.indexOf(filterTenants) >= 0) {\n return true;\n } else {\n return false;\n }\n }\n });\n\n useEffect(() => {\n if (isLoading) {\n const fetchRecords = () => {\n api\n .invoke(\"GET\", `/api/v1/tenants`)\n .then((res: ITenantsResponse) => {\n if (res === null) {\n setIsLoading(false);\n return;\n }\n let resTenants: ITenant[] = [];\n if (res.tenants !== null) {\n resTenants = res.tenants;\n }\n\n for (let i = 0; i < resTenants.length; i++) {\n resTenants[i].total_capacity = niceBytes(\n resTenants[i].total_size + \"\"\n );\n }\n\n setRecords(resTenants);\n setIsLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setIsLoading(false);\n });\n };\n fetchRecords();\n }\n }, [isLoading, setErrorSnackMessage]);\n\n useEffect(() => {\n setIsLoading(true);\n }, []);\n\n const renderItemLine = (index: number) => {\n const tenant = filteredRecords[index] || null;\n\n if (tenant) {\n return ;\n }\n\n return null;\n };\n\n return (\n \n {showNewCredentials && (\n {\n closeCredentialsModal();\n }}\n entity=\"Tenant\"\n />\n )}\n \n {\n setFilterTenants(val);\n }}\n overrideClass={classes.searchField}\n value={filterTenants}\n />\n\n {\n setIsLoading(true);\n }}\n icon={}\n color=\"primary\"\n variant={\"outlined\"}\n />\n {\n history.push(\"/tenants/add\");\n }}\n icon={}\n color=\"primary\"\n variant={\"contained\"}\n />\n \n }\n />\n \n \n {isLoading && }\n {!isLoading && (\n \n {filteredRecords.length !== 0 && (\n \n )}\n {filteredRecords.length === 0 && (\n \n \n }\n title={\"Tenants\"}\n help={\n \n Tenant is the logical structure to represent a MinIO\n deployment. A tenant can have different size and\n configurations from other tenants, even a different\n storage class.\n
    \n
    \n To get started, \n {\n history.push(\"/tenants/add\");\n }}\n >\n Create a Tenant.\n \n
    \n }\n />\n
    \n
    \n )}\n
    \n )}\n \n \n
    \n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ListTenants));\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
    }\n \n {errorMessage}\n \n
    \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n"],"names":["withStyles","theme","createStyles","root","border","borderRadius","backgroundColor","paddingLeft","paddingTop","paddingBottom","paddingRight","leftItems","fontSize","fontWeight","marginBottom","display","alignItems","marginRight","height","width","helpText","classes","iconComponent","title","help","className","container","item","xs","useStyles","makeStyles","padding","color","props","variant","tgtColor","palette","primary","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","text","onClick","disabled","tooltip","icon","restProps","size","sx","margin","textDecoration","cursor","info","fontFamily","children","rest","borderWidth","borderStyle","opacity","contained","background","dark","light","button","clsx","WrappedComponent","fallback","ComponentWithSuspense","Suspense","pageContentStyles","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","left","boxShadow","label","justifyContent","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","actions","includes","Fragment","direction","sm","md","length","component","id","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","InputProps","e","target","itemStatusMap","rowRenderFunction","totalItems","defaultHeight","RenderItemLine","index","style","isItemLoaded","loadMoreItems","startIndex","stopIndex","itemCount","onItemsRendered","ref","itemSize","BorderLinearProgress","colorPrimary","bar","padChart","LinearProgress","allValue","currentUsage","centerItem","maxValue","currValue","renderFunction","loading","error","labels","porcentualValue","Grid","Loader","ErrorBlock","errorMessage","withBreak","toString","setErrorSnackMessage","redState","float","yellowState","warning","greenState","success","greyState","tenantIcon","healthStatusIcon","top","right","tenantItem","titleSubKey","titleSubValue","boxyTitle","boxyValue","boxyUnit","manageButton","textTransform","tenant","raw","unit","capacity","used","capacity_raw","parts","niceBytes","split","capacity_usage","usageProportion","capacity_raw_usage","name","namespace","pool_count","currentState","RBIconButton","tenantIsOnline","history","TenantsIcon","health_status","healthStatusToClass","CredentialsPrompt","withSuspense","React","actionsTray","containerForHeader","spacing","addTenant","theaderSearchLabel","grey","theaderSearch","actionHeaderItems","mainActions","tenantsList","maxWidth","useState","isLoading","setIsLoading","filterTenants","setFilterTenants","records","setRecords","showNewCredentials","setShowNewCredentials","createdAccount","setCreatedAccount","filteredRecords","filter","b","indexOf","useEffect","api","then","res","resTenants","tenants","i","total_capacity","total_size","catch","err","newServiceAccount","open","closeModal","entity","PageHeader","SearchBox","val","RefreshIcon","PageLayout","VirtualizedList","alignContent","HelpBox","AButton","errorBlock"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/6233.7866b56a.chunk.js b/portal-ui/build/static/js/6233.7866b56a.chunk.js deleted file mode 100644 index f8b6fe928..000000000 --- a/portal-ui/build/static/js/6233.7866b56a.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6233],{84669:function(e,n,t){t(72791);var i=t(91523),o=t(11135),a=t(25787),s=t(74833),r=t(64554),c=t(80184);n.Z=(0,a.Z)((function(e){return(0,o.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var n=e.to,t=e.label,o=e.classes,a=e.className,l=e.executeOnClick;return(0,c.jsx)(r.Z,{sx:{display:"flex",alignItems:"center"},children:(0,c.jsx)(i.rU,{to:n,className:"".concat(o.link," ").concat(a||""),onClick:function(){l&&l()},children:(0,c.jsxs)("div",{className:o.iconBox,children:[(0,c.jsx)("div",{className:o.icon,children:(0,c.jsx)(s.xN,{})}),(0,c.jsx)("div",{className:o.label,children:t})]})})})}))},56233:function(e,n,t){t.r(n),t.d(n,{default:function(){return st}});var i=t(1413),o=t(72791),a=t(60364),s=t(11135),r=t(25787),c=t(20068),l=t(13400),d=t(61889),u=t(26181),m=t.n(u),f=t(23814),h=t(3925),p=t(42982),x=t(70885),b=t(57831),g=t(79271),j=t(81207),v=t(92983),Z=t(45248),y=t(20890),S=t(82422),k=t(91523),C=t(74833),w=t(62666),N=t(38442),E=t(56087),I=t(75578),_=t(80184),F=(0,I.Z)(o.lazy((function(){return t.e(3678).then(t.bind(t,83678))}))),T={setVersionsModeEnabled:h.db},P=(0,a.$j)((function(e){var n=e.objectBrowser;return{rewindEnabled:m()(n,"rewind.rewindEnabled",!1),versionsMode:m()(n,"versionsMode",!1),versionedFile:m()(n,"versionedFile","")}}),T),O=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)({},f.cx))}))(P((function(e){var n=e.classes,t=e.bucketName,i=e.internalPaths,a=e.rewindEnabled,s=e.existingFiles,r=e.versionsMode,u=e.versionedFile,m=e.setVersionsModeEnabled,f=e.additionalOptions,h=(0,o.useState)(!1),b=(0,x.Z)(h,2),g=b[0],j=b[1],v=i;""!==i&&(v="/".concat(i));var y=v.split("/").filter((function(e){return""!==e})),S=y.map((function(e,n){var i=y.slice(0,n+1).join("/"),a="/buckets/".concat(t,"/browse/").concat(i?"".concat((0,Z.ug)(i)):"");return(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)("span",{children:" / "}),(0,_.jsx)(k.rU,{to:a,onClick:function(){m(!1)},children:e})]},"breadcrumbs-".concat(n.toString()))})),I=[];r&&(I=[(0,_.jsx)(o.Fragment,{children:(0,_.jsxs)("span",{children:[" / ",u," - Versions"]})},"breadcrumbs-versionedItem")]);var T=[(0,_.jsx)(o.Fragment,{children:(0,_.jsx)(k.rU,{to:"/buckets/".concat(t,"/browse"),onClick:function(){m(!1)},children:t})},"breadcrumbs-root-path")].concat((0,p.Z)(S),(0,p.Z)(I));return(0,_.jsxs)(o.Fragment,{children:[g&&(0,_.jsx)(F,{modalOpen:g,bucketName:t,folderName:i,onClose:function(){j(!1)},existingFiles:s}),(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:"".concat(n.breadcrumbs),children:[(0,_.jsx)(l.Z,{onClick:function(){r?m(!1):w.Z.goBack()},sx:{border:"#EAEDEE 1px solid",backgroundColor:"#fff",borderLeft:0,borderRadius:0,width:39,height:39,marginRight:"10px"},children:(0,_.jsx)(C.ub,{})}),(0,_.jsx)(c.Z,{title:"Choose or create a new path",children:(0,_.jsx)(l.Z,{id:"new-path",onClick:function(){j(!0)},disabled:a||!(0,N.F)(t,[E.Ft.S3_PUT_OBJECT]),disableTouchRipple:!0,disableRipple:!0,focusRipple:!1,sx:{padding:0,paddingLeft:"6px"},children:(0,_.jsx)(C.N$,{})})}),(0,_.jsx)("div",{className:n.breadcrumbsList,dir:"rtl",children:T}),f&&(0,_.jsx)("div",{className:n.additionalOptions,children:f})]})]})}))),D=t(47922),B=t(42649),M=t(14917),L=t(42209),R=t(74794),z=t(71715),A=t(23786),V=t(49900),U=t(57064),G=t(40603),W=(0,r.Z)((function(e){return(0,s.Z)({listUploadIcons:{height:20,"& .min-icon":{width:18,fill:"rgba(0,0,0,0.87)"}}})}))((function(e){var n=e.uploadPath,t=e.bucketName,i=e.forceDisable,a=void 0!==i&&i,s=e.uploadFileFunction,r=e.uploadFolderFunction,c=e.classes,l=o.useState(null),d=(0,x.Z)(l,2),u=d[0],m=d[1],f=Boolean(u),h=function(){m(null)},p=(0,N.F)(n,[E.Ft.S3_PUT_OBJECT]),b=(0,N.F)(t,[E.Ft.S3_PUT_OBJECT],!1,!0),g=p||b;return(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)(G.Z,{id:"upload-main",tooltip:"Upload Files","aria-controls":"upload-main-menu","aria-haspopup":"true","aria-expanded":f?"true":void 0,onClick:function(e){m(e.currentTarget)},text:"Upload",icon:(0,_.jsx)(C.rG,{}),color:"primary",variant:"contained",disabled:a||!g}),(0,_.jsxs)(z.Z,{id:"upload-main-menu","aria-labelledby":"upload-main",anchorEl:u,open:f,onClose:function(){h()},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:[(0,_.jsxs)(A.Z,{onClick:function(){s(h)},disabled:!p||a,children:[(0,_.jsx)(U.Z,{className:c.listUploadIcons,children:(0,_.jsx)(C.rG,{})}),(0,_.jsx)(V.Z,{children:"Upload File"})]}),(0,_.jsxs)(A.Z,{onClick:function(){r(h)},disabled:!b||a,children:[(0,_.jsx)(U.Z,{className:c.listUploadIcons,children:(0,_.jsx)(C.oX,{})}),(0,_.jsx)(V.Z,{children:"Upload Folder"})]})]})]})})),H=(0,r.Z)((function(e){return(0,s.Z)({detailsList:{borderColor:"#EAEDEE",backgroundColor:"#fff",borderWidth:0,borderStyle:"solid",borderRadius:3,borderBottomLeftRadius:0,borderBottomRightRadius:0,width:0,transitionDuration:"0.3s",overflowX:"hidden",overflowY:"auto",position:"relative",opacity:0,marginLeft:-1,"&.open":{width:300,minWidth:300,borderTopWidth:1,borderBottomWidth:1,borderRightWidth:1,borderLeftWidth:1,opacity:1}},closePanel:{position:"absolute",right:0,top:8,"& .min-icon":{width:14}}})}))((function(e){var n=e.classes,t=e.open,i=e.closePanel,o=e.children;return(0,_.jsxs)(d.ZP,{item:!0,className:"".concat(n.detailsList," ").concat(t?"open":""),children:[(0,_.jsx)(l.Z,{onClick:i,className:n.closePanel,children:(0,_.jsx)(C.ot,{})}),o]})})),K=t(40986),J=t(36151),Y=t(64554),$=t(25183),q=t(34433),X=[{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),(function(e,n){return n+1})),ee=(new Date).getFullYear(),ne=Array.from(Array(25),(function(e,n){return n+ee})),te=t(56028),ie=t(37516),oe=t(83679),ae=t(4942),se=t(28182),re=t(30829),ce=t(68096),le=t(58406),de=t(4834),ue=t(84570),me=(0,r.Z)((function(e){return(0,s.Z)({root:{"& .MuiSelect-icon":{color:"#000","&.Mui-disabled":{color:"#9c9c9c"}}},input:{borderBottom:0,fontSize:12}})}))(de.ZP),fe=(0,o.forwardRef)((function(e,n){var t=e.classes,i=e.id,a=e.label,s=e.disableOptions,r=void 0!==s&&s,l=e.addSwitch,u=void 0!==l&&l,m=e.tooltip,f=void 0===m?"":m,h=e.borderBottom,p=void 0!==h&&h,b=e.onDateChange,g=e.value,j=void 0===g?"":g;(0,o.useImperativeHandle)(n,(function(){return{resetDate:M}}));var v=(0,o.useState)(!1),Z=(0,x.Z)(v,2),y=Z[0],S=Z[1],k=(0,o.useState)(""),C=(0,x.Z)(k,2),w=C[0],N=C[1],E=(0,o.useState)(""),I=(0,x.Z)(E,2),F=I[0],T=I[1],P=(0,o.useState)(""),O=(0,x.Z)(P,2),D=O[0],B=O[1];(0,o.useEffect)((function(){if(""!==j){var e=j.split("-");B(e[0]),N(e[1]),T("".concat(parseInt(e[2])))}}),[j]),(0,o.useEffect)((function(){var e=function(e,n,t){var i=Date.parse("".concat(e,"-").concat(n,"-").concat(t));if(isNaN(i))return[!1,""];var o=parseInt(n),a=parseInt(t),s=o<10?"0".concat(o):o,r=a<10?"0".concat(a):a,c=new Date(i).toISOString().split("T")[0],l="".concat(e,"-").concat(s,"-").concat(r);return[c===l,l]}(D,w,F),n=(0,x.Z)(e,2),t=n[0],i=n[1];b(i,t)}),[w,F,D,b]);var M=function(){N(""),T(""),B("")},L=function(){return r||!!u&&!y};return(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:(0,se.Z)(t.fieldContainer,(0,ae.Z)({},t.fieldContainerBorder,p)),children:[(0,_.jsx)("div",{className:t.labelContainer,children:(0,_.jsxs)(d.ZP,{container:!0,children:[(0,_.jsxs)(re.Z,{htmlFor:i,className:t.inputLabel,children:[(0,_.jsx)("span",{children:a}),""!==f&&(0,_.jsx)("div",{className:t.tooltipContainer,children:(0,_.jsx)(c.Z,{title:f,placement:"top-start",children:(0,_.jsx)("div",{className:t.tooltip,children:(0,_.jsx)(ue.Z,{})})})})]}),u&&(0,_.jsx)(ie.Z,{indicatorLabels:["Specific Date","Default (7 Days)"],checked:y,value:"date_enabled",id:"date-status",name:"date-status",onChange:function(e){S(e.target.checked),e.target.checked||b("",!0)},switchOnly:!0})]})}),(0,_.jsxs)("div",{children:[(0,_.jsx)(ce.Z,{disabled:L(),className:t.dateInput,children:(0,_.jsxs)(le.Z,{id:"".concat(i,"-month"),name:"".concat(i,"-month"),value:w,displayEmpty:!0,onChange:function(e){N(e.target.value)},input:(0,_.jsx)(me,{}),children:[(0,_.jsx)(A.Z,{value:"",disabled:!0,children:""}),X.map((function(e){return(0,_.jsx)(A.Z,{value:e.value,children:e.label},"select-".concat(i,"-monthOP-").concat(e.label))}))]})}),(0,_.jsx)(ce.Z,{disabled:L(),className:t.dateInput,children:(0,_.jsxs)(le.Z,{id:"".concat(i,"-day"),name:"".concat(i,"-day"),value:F,displayEmpty:!0,onChange:function(e){T(e.target.value)},input:(0,_.jsx)(me,{}),children:[(0,_.jsx)(A.Z,{value:"",disabled:!0,children:""}),Q.map((function(e){return(0,_.jsx)(A.Z,{value:e,children:e},"select-".concat(i,"-dayOP-").concat(e))}))]})}),(0,_.jsx)(ce.Z,{disabled:L(),className:t.dateInput,children:(0,_.jsxs)(le.Z,{id:"".concat(i,"-year"),name:"".concat(i,"-year"),value:D,displayEmpty:!0,onChange:function(e){B(e.target.value)},input:(0,_.jsx)(me,{}),children:[(0,_.jsx)(A.Z,{value:"",disabled:!0,children:""}),ne.map((function(e){return(0,_.jsx)(A.Z,{value:e,children:e},"select-".concat(i,"-yearOP-").concat(e))}))]})})]})]})})),he=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)({dateInput:{"&:not(:last-child)":{marginRight:22}}},f.YI),f.Hr),{},{labelContainer:{flex:1},fieldContainer:(0,i.Z)((0,i.Z)({},f.YI.fieldContainer),{},{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:10,marginTop:11,marginBottom:6}),fieldContainerBorder:{borderBottom:"#9c9c9c 1px solid",marginBottom:20}}))}))(fe),pe={setModalErrorSnackMessage:B.zb},xe=(0,a.$j)(null,pe),be=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},f.DF),f.ID),f.bK),{},{dateSelector:{"& div":{borderBottom:0,marginBottom:0,"& div:nth-child(2)":{border:"1px solid #EAEAEA",paddingLeft:5,"& div":{border:0}}}}}))}))(xe((function(e){var n=e.classes,t=e.open,i=e.closeModalAndRefresh,a=e.objectName,s=e.objectInfo,r=e.bucketName,c=e.setModalErrorSnackMessage,l=(0,o.useState)(!0),u=(0,x.Z)(l,2),m=u[0],f=u[1],h=(0,o.useState)(""),p=(0,x.Z)(h,2),b=p[0],g=p[1],v=(0,o.useState)(""),y=(0,x.Z)(v,2),S=y[0],k=y[1],C=(0,o.useState)(!1),w=(0,x.Z)(C,2),N=w[0],E=w[1],I=(0,o.useState)(!1),F=(0,x.Z)(I,2),T=F[0],P=F[1],O=(0,o.useState)(!1),D=(0,x.Z)(O,2),B=D[0],M=D[1];(0,o.useEffect)((function(){if(s.retention_mode&&(g(s.retention_mode.toLowerCase()),M(!0)),s.retention_until_date){var e=new Date(s.retention_until_date);if("Invalid Date"!==e.toString()){var n=e.getFullYear(),t=(o=e.getMonth()+1)<10?"0".concat(o):"".concat(o),i=e.getDate();isNaN(i)||"NaN"===t||isNaN(n)||k("".concat(n,"-").concat(t,"-").concat(i))}M(!0)}var o}),[s]);var L=(0,o.useRef)(null),R=function(){f(!1),g(""),L.current&&L.current.resetDate()},z=B&&("governance"===b||""===b);return(0,_.jsxs)(te.Z,{title:"Set Retention Policy",modalOpen:t,onClose:function(){R(),i(!1)},children:[(0,_.jsxs)("div",{className:n.spacerBottom,children:[(0,_.jsx)("strong",{children:"Selected Object"}),": ",a]}),(0,_.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:[z&&(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,_.jsx)(ie.Z,{value:"status",id:"status",name:"status",checked:m,onChange:function(e){f(!m)},label:"Status",indicatorLabels:["Enabled","Disabled"]})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,_.jsx)(oe.Z,{currentSelection:b,id:"type",name:"type",label:"Type",disableOptions:!m||B&&""!==b,onChange:function(e){g(e.target.value)},selectorOptions:[{label:"Governance",value:"governance"},{label:"Compliance",value:"compliance"}]})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:"".concat(n.dateSelector," "),children:(0,_.jsx)(he,{id:"date",label:"Date",disableOptions:!(m&&("governance"===b||"compliance"===b)),ref:L,value:S,borderBottom:!0,onDateChange:function(e,n){E(n),n&&k(e)}})}),(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,_.jsx)(J.Z,{type:"button",variant:"outlined",color:"primary",onClick:R,children:"Reset"}),(0,_.jsx)(J.Z,{type:"submit",variant:"contained",color:"primary",disabled:m&&""===b||m&&!N||T,onClick:function(){P(!0);var e=s.name,n=s.version_id,t=m||"governance"!==b?"".concat(S,"T23:59:59Z"):"";m||"governance"!==b?function(e,n,t){j.Z.invoke("PUT","/api/v1/buckets/".concat(r,"/objects/retention?prefix=").concat((0,Z.ug)(e),"&version_id=").concat(n),{expires:t,mode:b}).then((function(e){P(!1),i(!0)})).catch((function(e){c(e),P(!1)}))}(e,n,t):function(e,n){j.Z.invoke("DELETE","/api/v1/buckets/".concat(r,"/objects/retention?prefix=").concat((0,Z.ug)(e),"&version_id=").concat(n)).then((function(){P(!1),i(!0)})).catch((function(e){c(e),P(!1)}))}(e,n)},children:"Save"})]})]})]})}))),ge=t(51691),je=t(23508),ve=t(9505),Ze={setErrorSnackMessage:B.Ih},ye=(0,a.$j)(null,Ze)((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,a=e.selectedObject,s=e.setErrorSnackMessage,r=e.versioning,c=e.selectedVersion,l=void 0===c?"":c,d=(0,ve.Z)((function(){return n(!0)}),(function(e){return s(e)})),u=(0,x.Z)(d,2),m=u[0],f=u[1],h=(0,o.useState)(!1),p=(0,x.Z)(h,2),b=p[0],g=p[1];if(!a)return null;return(0,_.jsx)(je.Z,{title:"Delete Object",confirmText:"Delete",isOpen:t,titleIcon:(0,_.jsx)(C.Nv,{}),isLoading:m,onConfirm:function(){var e=(0,Z.le)(a).endsWith("/");f("DELETE","/api/v1/buckets/".concat(i,"/objects?path=").concat(a).concat(""!==l?"&version_id=".concat(l):"&recursive=".concat(e,"&all_versions=").concat(b)))},onClose:function(){return n(!1)},confirmationContent:(0,_.jsxs)(ge.Z,{children:["Are you sure you want to delete: ",(0,_.jsx)("br",{}),(0,_.jsx)("b",{children:(0,Z.le)(a)})," ",""!==l?(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)("br",{}),(0,_.jsx)("br",{}),"Version ID:",(0,_.jsx)("br",{}),(0,_.jsx)("strong",{children:l})]}):"","? ",(0,_.jsx)("br",{}),(0,_.jsx)("br",{}),r&&""===l&&(0,_.jsx)(ie.Z,{label:"Delete All Versions",indicatorLabels:["Yes","No"],checked:b,value:"delete_versions",id:"delete-versions",name:"delete-versions",onChange:function(e){g(!b)},description:""})]})})})),Se={setModalErrorSnackMessage:B.zb},ke=(0,a.$j)(null,Se),Ce=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},f.DF),f.ID),f.bK))}))(ke((function(e){var n=e.classes,t=e.open,i=e.closeModalAndRefresh,a=e.objectName,s=e.bucketName,r=e.actualInfo,c=e.setModalErrorSnackMessage,l=(0,o.useState)(!1),u=(0,x.Z)(l,2),f=u[0],h=u[1],p=(0,o.useState)(!1),b=(0,x.Z)(p,2),g=b[0],v=b[1],y=r.version_id;(0,o.useEffect)((function(){var e=m()(r,"legal_hold_status","OFF");h("ON"===e)}),[r]);var S=function(){h(!1)};return(0,_.jsxs)(te.Z,{title:"Set Legal Hold",modalOpen:t,onClose:function(){S(),i(!1)},children:[(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.spacerBottom,children:["Object: ",s]}),(0,_.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),v(!0),j.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/objects/legalhold?prefix=").concat((0,Z.ug)(a),"&version_id=").concat(y),{status:f?"enabled":"disabled"}).then((function(){v(!1),i(!0)})).catch((function(e){c(e),v(!1)}))}(e)},children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,_.jsx)(ie.Z,{value:"legalhold",id:"legalhold",name:"legalhold",checked:f,onChange:function(e){h(!f)},label:"Legal Hold Status",indicatorLabels:["Enabled","Disabled"],tooltip:"To enable this feature you need to enable versioning on the bucket before creation"})}),(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,_.jsx)(J.Z,{type:"button",color:"primary",variant:"outlined",onClick:S,children:"Clear"}),(0,_.jsx)(J.Z,{type:"submit",variant:"contained",color:"primary",disabled:g,children:"Save"})]})]})]})}))),we=t(78562),Ne=t(79836),Ee=t(53382),Ie=t(35855),_e=t(53994),Fe=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)({propertiesIcon:{marginLeft:5,"& .min-icon":{height:12}},capitalizeFirst:{textTransform:"capitalize","& .min-icon":{width:16,height:16}},titleCol:{width:"25%"},titleItem:{width:"35%"}},f.bK),f.$b))}))((function(e){var n=e.bucketName,t=e.internalPaths,i=e.classes,a=e.actualInfo,s=e.linear,r=void 0!==s&&s,c=(0,o.useState)({}),l=(0,x.Z)(c,2),u=l[0],f=l[1],h=(0,ve.Z)((function(e){var n=m()(e,"objectMetadata",{});f(n)}),(function(e){return!1})),p=(0,x.Z)(h,2)[1],b=Object.keys(u),g=(0,o.useCallback)((function(){p("GET","/api/v1/buckets/".concat(n,"/objects/metadata?prefix=").concat(t))}),[n,t,a]);return(0,o.useEffect)((function(){a&&g()}),[a,g]),r?(0,_.jsx)(o.Fragment,{children:b.map((function(e,n){var t=Array.isArray(u[e])?u[e].map(decodeURIComponent).join(", "):decodeURIComponent(u[e]);return(0,_.jsxs)(Y.Z,{className:i.metadataLinear,children:[(0,_.jsx)("strong",{children:e}),(0,_.jsx)("br",{}),t]},"box-meta-".concat(e,"-").concat(n.toString()))}))}):(0,_.jsxs)(d.ZP,{container:!0,children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,sx:{marginTop:"25px",marginBottom:"5px"},children:(0,_.jsx)("h3",{style:{marginTop:"0",marginBottom:"0"},children:"Object Metadata"})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,children:(0,_.jsx)(Ne.Z,{className:i.table,"aria-label":"simple table",children:(0,_.jsx)(Ee.Z,{children:b.map((function(e,n){var t=Array.isArray(u[e])?u[e].map(decodeURIComponent).join(", "):decodeURIComponent(u[e]);return(0,_.jsxs)(Ie.Z,{children:[(0,_.jsx)(_e.Z,{component:"th",scope:"row",className:i.titleItem,children:e}),(0,_.jsx)(_e.Z,{align:"right",children:t})]},"tRow-".concat(n.toString()))}))})})})]})})),Te=t(45987),Pe=["disabled","onClick","icon","label","classes"],Oe=(0,r.Z)((function(e){return(0,s.Z)({root:{padding:"0 15px",height:22,margin:0,color:"#5E5E5E",fontWeight:"normal",fontSize:14,whiteSpace:"nowrap",width:"100%",justifyContent:"flex-start","&:hover":{backgroundColor:"transparent",color:"#000"},"& .min-icon":{width:11},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}}})}))((function(e){var n=e.disabled,t=e.onClick,o=e.icon,a=e.label,s=e.classes,r=(0,Te.Z)(e,Pe);return(0,_.jsx)(J.Z,(0,i.Z)((0,i.Z)({},r),{},{disabled:n,onClick:t,className:s.root,startIcon:o,children:(0,_.jsx)("span",{className:"buttonItem",children:a})}))})),De=(0,r.Z)((function(){return(0,s.Z)((0,i.Z)({},f.$b))}))((function(e){var n=e.items,t=e.classes,i=e.title;return(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)("div",{className:t.titleLabel,children:i}),(0,_.jsxs)("ul",{className:t.objectActions,children:[(0,_.jsx)("li",{children:"Actions:"}),n.map((function(e,n){return(0,_.jsx)("li",{children:(0,_.jsx)(Oe,{label:e.label,icon:e.icon,onClick:e.action,disabled:e.disabled})},"action-element-".concat(n.toString()))}))]})]})})),Be=t(37762),Me=t(71863),Le=t(82314),Re=(0,r.Z)((function(e){return(0,s.Z)({fileName:{display:"flex",alignItems:"center","& .min-icon":{width:16,height:16,marginRight:4}},fileNameText:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}})}))((function(e){return(0,_.jsxs)("div",{className:e.classes.fileName,children:[e.icon,(0,_.jsx)("span",{className:e.classes.fileNameText,children:e.strings[e.strings.length-1]})]})})),ze=o.lazy((function(){return Promise.resolve().then(t.bind(t,76181))})),Ae=o.lazy((function(){return Promise.resolve().then(t.bind(t,49563))})),Ve=o.lazy((function(){return Promise.resolve().then(t.bind(t,21733))})),Ue=o.lazy((function(){return Promise.resolve().then(t.bind(t,95232))})),Ge=o.lazy((function(){return Promise.resolve().then(t.bind(t,27529))})),We=o.lazy((function(){return Promise.resolve().then(t.bind(t,60527))})),He=o.lazy((function(){return Promise.resolve().then(t.bind(t,69812))})),Ke=o.lazy((function(){return Promise.resolve().then(t.bind(t,46454))})),Je=o.lazy((function(){return Promise.resolve().then(t.bind(t,84820))})),Ye=o.lazy((function(){return Promise.resolve().then(t.bind(t,40599))})),$e=o.lazy((function(){return Promise.resolve().then(t.bind(t,72995))})),qe=o.lazy((function(){return Promise.resolve().then(t.bind(t,34171))})),Xe=o.lazy((function(){return Promise.resolve().then(t.bind(t,30745))})),Qe=o.lazy((function(){return Promise.resolve().then(t.bind(t,84033))})),en=o.lazy((function(){return Promise.resolve().then(t.bind(t,52009))})),nn=[{icon:(0,_.jsx)(Xe,{}),extensions:["mp4","mov","avi","mpeg","mpg"]},{icon:(0,_.jsx)(Je,{}),extensions:["mp3","m4a","aac"]},{icon:(0,_.jsx)(Ye,{}),extensions:["pdf"]},{icon:(0,_.jsx)($e,{}),extensions:["ppt","pptx"]},{icon:(0,_.jsx)(Qe,{}),extensions:["xls","xlsx"]},{icon:(0,_.jsx)(He,{}),extensions:["cer","crt","pem"]},{icon:(0,_.jsx)(Ae,{}),extensions:["html","xml","css","py","go","php","cpp","h","java"]},{icon:(0,_.jsx)(Ve,{}),extensions:["cfg","yaml"]},{icon:(0,_.jsx)(Ue,{}),extensions:["sql"]},{icon:(0,_.jsx)(Ge,{}),extensions:["ttf","otf"]},{icon:(0,_.jsx)(qe,{}),extensions:["txt"]},{icon:(0,_.jsx)(en,{}),extensions:["zip","rar","tar","gz"]},{icon:(0,_.jsx)(ze,{}),extensions:["epub","mobi","azw","azw3"]},{icon:(0,_.jsx)(We,{}),extensions:["jpeg","jpg","gif","tiff","png","heic","dng"]}],tn=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=e,i=(0,_.jsx)(Me.Z,{});e.endsWith("/")&&(i=(0,_.jsx)(Le.Z,{}),t=e.substr(0,e.length-1));var o,a=e.toLowerCase(),s=(0,Be.Z)(nn);try{for(s.s();!(o=s.n()).done;){var r,c=o.value,l=(0,Be.Z)(c.extensions);try{for(l.s();!(r=l.n()).done;){var d=r.value;a.endsWith(".".concat(d))&&(i=c.icon)}}catch(m){l.e(m)}finally{l.f()}}}catch(m){s.e(m)}finally{s.f()}!e.endsWith("/")&&e.indexOf(".")<0&&(i=(0,_.jsx)(Ke,{}));var u=t.split("/");return n?i:(0,_.jsx)(Re,{icon:i,strings:u})},on=t(21435),an=t(81918),sn=t(29823),rn={setModalErrorSnackMessage:B.zb},cn=(0,a.$j)((function(e){var n=e.system;return{distributedSetup:m()(n,"distributedSetup",!1)}}),rn),ln=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)({pathLabel:{marginTop:0,marginBottom:32},newTileHeader:{fontSize:18,fontWeight:"bold",color:"#000",margin:"20px 0",paddingBottom:15,borderBottom:"#E2E2E2 2px solid"}},f.DF),f.ID),f.bK))}))(cn((function(e){var n=e.modalOpen,t=e.onCloseAndUpdate,a=e.bucketName,s=e.distributedSetup,r=e.actualInfo,c=e.setModalErrorSnackMessage,l=e.classes,u=(0,o.useState)(""),f=(0,x.Z)(u,2),h=f[0],p=f[1],b=(0,o.useState)(""),g=(0,x.Z)(b,2),v=g[0],y=g[1],S=(0,o.useState)(!1),k=(0,x.Z)(S,2),w=k[0],I=k[1],F=(0,o.useState)(!1),T=(0,x.Z)(F,2),P=T[0],O=T[1],D=(0,o.useState)(""),B=(0,x.Z)(D,2),M=B[0],L=B[1],R=(0,o.useState)(""),z=(0,x.Z)(R,2),A=z[0],V=z[1],U=(0,Z.ug)(r.name),G=r.tags,W=Object.keys(G||{}),H=r.name.split("/").pop()||"";return(0,_.jsx)(o.Fragment,{children:(0,_.jsx)(te.Z,{modalOpen:n,title:P?"Delete Tag":"Edit Tags for ".concat(H),onClose:function(){t(!0)},titleIcon:(0,_.jsx)(C.Dg,{}),children:P?(0,_.jsx)(o.Fragment,{children:(0,_.jsxs)(d.ZP,{container:!0,children:["Are you sure you want to delete the tag"," ",(0,_.jsxs)("b",{className:l.wrapText,children:[M," : ",A]})," ","from ",H,"?",(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:l.modalButtonBar,children:[(0,_.jsx)(J.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){L(""),V(""),O(!1)},children:"No"}),(0,_.jsx)(J.Z,{type:"submit",variant:"outlined",color:"secondary",onClick:function(){var e=(0,i.Z)({},G);delete e[M];var n=s?r.version_id:"null";j.Z.invoke("PUT","/api/v1/buckets/".concat(a,"/objects/tags?prefix=").concat(U,"&version_id=").concat(n),{tags:e}).then((function(e){t(!0),I(!1)})).catch((function(e){c(e),I(!1)}))},children:"Yes"})]})]})}):(0,_.jsxs)(d.ZP,{container:!0,children:[(0,_.jsx)(N.s,{scopes:[E.Ft.S3_GET_OBJECT_TAGGING],resource:a,children:(0,_.jsxs)(Y.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,_.jsx)("strong",{children:"Current Tags:"}),0===W.length?"No Tags for this object":"",(0,_.jsx)(Y.Z,{children:W.map((function(e,n){var t=m()(G,"".concat(e),"");return""!==t?(0,_.jsx)(N.s,{scopes:[E.Ft.S3_DELETE_OBJECT_TAGGING],resource:a,matchAll:!0,errorProps:{deleteIcon:null,onDelete:null},children:(0,_.jsx)(an.Z,{style:{textTransform:"none",marginRight:"5px"},size:"small",label:"".concat(e," : ").concat(t),color:"primary",deleteIcon:(0,_.jsx)(sn.Z,{}),onDelete:function(){!function(e,n){L(e),V(n),O(!0)}(e,t)}})},"chip-".concat(n)):null}))})]})}),(0,_.jsx)(N.s,{scopes:[E.Ft.S3_PUT_OBJECT_TAGGING],resource:a,errorProps:{disabled:!0,onClick:null},children:(0,_.jsxs)(d.ZP,{container:!0,children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,className:l.newTileHeader,children:"Add New Tag"}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:l.formFieldRow,children:(0,_.jsx)(on.Z,{value:h,label:"Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter Tag Key",onChange:function(e){p(e.target.value)}})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:l.formFieldRow,children:(0,_.jsx)(on.Z,{value:v,label:"Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter Tag Label",onChange:function(e){y(e.target.value)}})}),(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:l.modalButtonBar,children:[(0,_.jsx)(J.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){y(""),p("")},children:"Clear"}),(0,_.jsx)(J.Z,{type:"submit",variant:"contained",color:"primary",disabled:""===v.trim()||""===h.trim()||w,onClick:function(){I(!0);var e={};e[h]=v;var n=(0,i.Z)((0,i.Z)({},G),e),o=s?r.version_id:"null";j.Z.invoke("PUT","/api/v1/buckets/".concat(a,"/objects/tags?prefix=").concat(U,"&version_id=").concat(o),{tags:n}).then((function(e){t(!0),I(!1)})).catch((function(e){c(e),I(!1)}))},children:"Save new Tag"})]})]})})]})})})}))),dn=t(15861),un=t(87757),mn=t.n(un),fn=t(73669),hn={setErrorSnackMessage:B.Ih},pn=(0,a.$j)(null,hn),xn=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},f.DF),f.ID),f.bK))}))(pn((function(e){var n=e.classes,t=e.closeInspectModalAndRefresh,i=e.inspectOpen,a=e.inspectPath,s=e.volumeName,r=e.setErrorSnackMessage,c=function(){return t(!1)},l=(0,o.useState)(!0),u=(0,x.Z)(l,2),m=u[0],f=u[1],h=(0,o.useState)(""),p=(0,x.Z)(h,2),b=p[0],g=p[1],j=(0,o.useState)(""),v=(0,x.Z)(j,2),y=v[0],S=v[1];if(!a)return null;var k=function(){var e=(0,dn.Z)(mn().mark((function e(n){return mn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(n,{method:"GET"});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),w=function(){var e=(0,dn.Z)(mn().mark((function e(){var n,t,i;return mn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=encodeURIComponent(a+"/xl.meta"),t=encodeURIComponent(s),i="/api/v1/admin/inspect?volume=".concat(t,"&file=").concat(n,"&encrypt=").concat(m),k(i).then(function(){var e=(0,dn.Z)(mn().mark((function e(n){var t,i,o,a;return mn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.ok){e.next=5;break}return e.next=3,n.json();case 3:t=e.sent,r({errorMessage:t.message,detailedError:t.code});case 5:return e.next=7,n.blob();case 7:if(i=e.sent,o=n.headers.get("content-disposition").split('"')[1],a=(0,Z.Do)(o)||"",(0,Z.zZ)(i,o),S(o),""!==a){e.next=15;break}return c(),e.abrupt("return");case 15:g(a);case 16:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}()).catch((function(e){r(e)}));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,_.jsxs)(o.Fragment,{children:[!b&&(0,_.jsx)(te.Z,{modalOpen:i,titleIcon:(0,_.jsx)($.Gp,{}),title:"Inspect Object",onClose:c,children:(0,_.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:["Would you like to encrypt ",(0,_.jsx)("b",{children:(0,Z.le)(a)}),"?"," ",(0,_.jsx)("br",{}),(0,_.jsx)(ie.Z,{label:"Encrypt",indicatorLabels:["Yes","No"],checked:m,value:"encrypt",id:"encrypt",name:"encrypt",onChange:function(e){f(!m)},description:""}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:(0,_.jsx)(J.Z,{type:"submit",variant:"contained",color:"primary",onClick:w,children:"Inspect"})})]})}),b?(0,_.jsx)(te.Z,{modalOpen:i,title:"Inspect Decryption Key",onClose:function(){(0,Z.kT)(y),c(),g("")},titleIcon:(0,_.jsx)(C.tv,{}),children:(0,_.jsxs)(ge.Z,{children:[(0,_.jsxs)(Y.Z,{children:["This will be displayed only once. It cannot be recovered.",(0,_.jsx)("br",{}),"Use secure medium to share this key."]}),(0,_.jsx)(Y.Z,{children:(0,_.jsx)(fn.Z,{value:b})})]})}):null]})}))),bn={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:"0",tags:{},version_id:null},gn={setErrorSnackMessage:B.Ih,setSnackBarMessage:B.y1,setNewObject:h.Mc,updateProgress:h.RO,completeObject:h.oK,setVersionsModeEnabled:h.db,setLoadingObjectInfo:h.vH,setLoadingVersions:h.Eq,setSelectedVersion:h.M3},jn=(0,a.$j)((function(e){var n=e.objectBrowser,t=e.system;return{rewindEnabled:m()(n,"rewind.rewindEnabled",!1),rewindDate:m()(n,"rewind.dateToRewind",null),bucketToRewind:m()(n,"rewind.bucketToRewind",""),distributedSetup:m()(t,"distributedSetup",!1),versionsMode:m()(n,"versionsMode",!1),selectedVersion:m()(n,"selectedVersion",""),loadingObjectInfo:m()(n,"loadingObjectInfo",!1)}}),gn)((0,r.Z)((function(){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({ObjectDetailsTitle:{display:"flex",alignItems:"center"},objectNameContainer:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",alignItems:"center",marginLeft:10},headerForSection:{display:"flex",justifyContent:"space-between",alignItems:"center",paddingBottom:15,borderBottom:"#E2E2E2 2px solid",fontWeight:"bold",fontSize:18,color:"#000",margin:"20px 22px"},capitalizeFirst:{textTransform:"capitalize"}},f.Si),f.OR),f.bK),f.VI),f.$b))}))((function(e){var n=e.classes,t=e.internalPaths,i=e.bucketName,a=e.distributedSetup,s=e.versioning,r=e.locking,c=e.setErrorSnackMessage,l=e.setNewObject,u=e.updateProgress,f=e.completeObject,h=e.versionsMode,p=e.selectedVersion,b=e.onClosePanel,g=e.setVersionsModeEnabled,v=e.loadingObjectInfo,y=e.setLoadingObjectInfo,S=e.setLoadingVersions,k=e.setSelectedVersion,w=(0,o.useState)(!1),I=(0,x.Z)(w,2),F=I[0],T=I[1],P=(0,o.useState)(!1),O=(0,x.Z)(P,2),B=O[0],M=O[1],L=(0,o.useState)(!1),R=(0,x.Z)(L,2),z=R[0],A=R[1],V=(0,o.useState)(!1),U=(0,x.Z)(V,2),G=U[0],W=U[1],H=(0,o.useState)(!1),X=(0,x.Z)(H,2),Q=X[0],ee=X[1],ne=(0,o.useState)(null),te=(0,x.Z)(ne,2),ie=te[0],oe=te[1],ae=(0,o.useState)([]),se=(0,x.Z)(ae,2),re=se[0],ce=se[1],le=(0,o.useState)(null),de=(0,x.Z)(le,2),ue=de[0],me=de[1],fe=(0,o.useState)([]),he=(0,x.Z)(fe,2),pe=he[0],xe=he[1],ge=(0,o.useState)(!1),je=(0,x.Z)(ge,2),ve=je[0],Ze=je[1],Se=(0,o.useState)(!1),ke=(0,x.Z)(Se,2),Ne=ke[0],Ee=ke[1],Ie=(0,o.useState)(0),_e=(0,x.Z)(Ie,2),Te=_e[0],Pe=_e[1],Oe=((0,Z.le)(t)||"").split("/").pop()||"",Be=[];ie&&(Be=ie.name.split("/")),(0,o.useEffect)((function(){""!==i&&t&&y(!0)}),[t,i,y]),(0,o.useEffect)((function(){if(a&&re.length>=1){var e=re.find((function(e){return e.is_latest}))||bn;""!==p&&(e=re.find((function(e){return e.version_id===p}))||bn),oe(e)}}),[p,a,re]),(0,o.useEffect)((function(){v&&""!==t&&j.Z.invoke("GET","/api/v1/buckets/".concat(i,"/objects?prefix=").concat(t).concat(a?"&with_versions=true":"")).then((function(e){var n=m()(e,"objects",[]);if(a){ce(n),xe(n);var t=n.reduce((function(e,n){return null!==n&&void 0!==n&&n.size?e+n.size:e}),0);Pe(t)}else oe(n[0]),xe([]);y(!1)})).catch((function(e){c(e),y(!1)}))}),[v,i,t,c,a,p,y]);var Me=[];ie&&ie.tags&&(Me=Object.keys(ie.tags));if(!ie)return null;var Le=Be.length>0?Be[Be.length-1]:ie.name,Re=[i,Oe,[i,ie.name].join("/")],ze=[{action:function(){!function(e){var n=(0,Z.ug)("".concat(i,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random()));l({bucketName:i,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0}),(0,D.LR)(i,t,e.version_id,parseInt(e.size||"0"),(function(e){u(n,e)}),(function(){f(n)}))}(ie)},label:"Download",disabled:!!ie.is_delete_marker||!(0,N.F)(Re,[E.Ft.S3_GET_OBJECT]),icon:(0,_.jsx)(C._8,{}),tooltip:"Download this Object"},{action:function(){T(!0)},label:"Share",disabled:!!ie.is_delete_marker||!(0,N.F)(Re,[E.Ft.S3_GET_OBJECT]),icon:(0,_.jsx)(C.aA,{}),tooltip:"Share this File"},{action:function(){Ee(!0)},label:"Preview",disabled:!!ie.is_delete_marker||"none"===(0,D.Bg)(Oe)||!(0,N.F)(Re,[E.Ft.S3_GET_OBJECT]),icon:(0,_.jsx)(C.P9,{}),tooltip:"Preview this File"},{action:function(){W(!0)},label:"Legal Hold",disabled:!r||!a||!!ie.is_delete_marker||!(0,N.F)(i,[E.Ft.S3_PUT_OBJECT_LEGAL_HOLD])||""!==p,icon:(0,_.jsx)(C.fN,{}),tooltip:"Change Legal Hold rules for this File"},{action:function(){M(!0)},label:"Retention",disabled:!a||!!ie.is_delete_marker||!(0,N.F)(Re,[E.Ft.S3_GET_OBJECT_RETENTION])||""!==p,icon:(0,_.jsx)(C.E9,{}),tooltip:"Change Retention rules for this File"},{action:function(){A(!0)},label:"Tags",disabled:!!ie.is_delete_marker||""!==p||!(0,N.F)(Re,[E.Ft.S3_PUT_OBJECT_TAGGING]),icon:(0,_.jsx)(C.Dg,{}),tooltip:"Change Tags for this File"},{action:function(){ee(!0)},label:"Inspect",disabled:!a||!!ie.is_delete_marker||""!==p||!(0,N.F)(Re,[E.Ft.ADMIN_INSPECT_DATA]),icon:(0,_.jsx)($.Gp,{}),tooltip:"Inspect this file"},{action:function(){g(!h,Le)},label:h?"Hide Object Versions":"Display Object Versions",icon:(0,_.jsx)(C.cR,{}),disabled:!a||!(ie.version_id&&"null"!==ie.version_id)||!(0,N.F)(Re,[E.Ft.S3_GET_BUCKET_VERSIONING,E.Ft.S3_PUT_BUCKET_VERSIONING,E.Ft.S3_GET_OBJECT_VERSION]),tooltip:"Display Versions for this file"}];return(0,_.jsxs)(o.Fragment,{children:[F&&ie&&(0,_.jsx)(q.default,{open:F,closeModalAndRefresh:function(){me(null),T(!1)},bucketName:i,dataObject:ue||ie}),B&&ie&&(0,_.jsx)(be,{open:B,closeModalAndRefresh:function(e){M(!1),e&&y(!0)},objectName:Oe,objectInfo:ie,bucketName:i}),ve&&(0,_.jsx)(ye,{deleteOpen:ve,selectedBucket:i,selectedObject:t,closeDeleteModalAndRefresh:function(e){Ze(!1),e&&""===p?b(!0):(S(!0),k(""),y(!0))},versioning:a&&s,selectedVersion:p}),G&&ie&&(0,_.jsx)(Ce,{open:G,closeModalAndRefresh:function(e){W(!1),e&&y(!0)},objectName:ie.name,bucketName:i,actualInfo:ie}),Ne&&ie&&(0,_.jsx)(we.default,{open:Ne,bucketName:i,object:{name:ie.name,version_id:ie.version_id||"null",size:parseInt(ie.size||"0"),content_type:"",last_modified:new Date(ie.last_modified)},onClosePreview:function(){Ee(!1)}}),z&&ie&&(0,_.jsx)(ln,{modalOpen:z,bucketName:i,actualInfo:ie,onCloseAndUpdate:function(e){A(!1),e&&y(!0)}}),Q&&ie&&(0,_.jsx)(xn,{inspectOpen:Q,volumeName:i,inspectPath:ie.name,closeInspectModalAndRefresh:function(e){ee(!1),e&&y(!0)}}),!ie&&(0,_.jsx)(d.ZP,{item:!0,xs:12,children:(0,_.jsx)(K.Z,{})}),(0,_.jsx)(De,{title:(0,_.jsxs)("div",{className:n.ObjectDetailsTitle,children:[tn(Le,!0),(0,_.jsx)("span",{className:n.objectNameContainer,children:Le})]}),items:ze}),(0,_.jsx)(d.ZP,{item:!0,xs:12,sx:{textAlign:"center"},children:(0,_.jsx)(N.s,{resource:[i,Oe,[i,ie.name].join("/")],scopes:[E.Ft.S3_DELETE_OBJECT],errorProps:{disabled:!0},children:(0,_.jsxs)(J.Z,{startIcon:(0,_.jsx)(C.pJ,{}),color:"secondary",variant:"outlined",onClick:function(){Ze(!0)},disabled:""===p&&ie.is_delete_marker,sx:{width:"calc(100% - 44px)",margin:"8px 0","& svg.min-icon":{width:14,height:14}},children:["Delete",""!==p?" version":""]})})}),(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.headerForSection,children:[(0,_.jsx)("span",{children:"Object Info"}),(0,_.jsx)(C.Gv,{})]}),(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"Name:"}),(0,_.jsx)("br",{}),Le]}),""!==p&&(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"Version ID:"}),(0,_.jsx)("br",{}),p]}),(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"Size:"}),(0,_.jsx)("br",{}),(0,Z.ae)(ie.size||"0")]}),ie.version_id&&"null"!==ie.version_id&&""===p&&(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"Versions:"}),(0,_.jsx)("br",{}),pe.length," version",1!==pe.length?"s":"",","," ",(0,Z.l5)(Te)]}),""===p&&(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"Last Modified:"}),(0,_.jsx)("br",{}),function(e){var n=new Date,t=new Date(e),i=n.getTime()-t.getTime(),o=(0,Z.nF)(i,"ms");return""!==o.trim()?"".concat(o," ago"):"Just now"}(ie.last_modified)]}),(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"ETAG:"}),(0,_.jsx)("br",{}),ie.etag||"N/A"]}),(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"Tags:"}),(0,_.jsx)("br",{}),0===Me.length?"N/A":Me.map((function(e,n){return(0,_.jsxs)("span",{children:[e,":",m()(ie,"tags.".concat(e),""),n div":{borderBottomColor:"#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"},versionData:{marginRight:"10px",fontSize:12,color:"#868686"},ctrItem:{position:"relative","&::before":{content:"' '",display:"block",position:"absolute",width:"2px",height:"calc(100% + 2px)",backgroundColor:"#F8F8F8",left:"24px"}}})}))((function(e){var n=e.classes,t=e.fileName,i=e.versionInfo,o=e.isSelected,a=e.onShare,s=e.onDownload,r=e.onRestore,u=e.onPreview,m=e.globalClick,f=e.index,h=i.is_delete_marker,p=[{icon:(0,_.jsx)(C.P9,{}),action:u,tooltip:"Preview"},{icon:(0,_.jsx)(C._8,{}),action:s,tooltip:"Download this version"},{icon:(0,_.jsx)(C.aA,{}),action:a,tooltip:"Share this version"},{icon:(0,_.jsx)(C.D7,{}),action:r,tooltip:"Restore this version"}],x=null;return i.is_delete_marker?x="deleted":i.is_latest?x="current":"null"===i.version_id&&(x="null"),(0,_.jsx)(d.ZP,{container:!0,flex:1,className:n.ctrItem,onClick:function(){m(i)},children:(0,_.jsx)(d.ZP,{item:!0,xs:12,className:"".concat(n.intermediateLayer," ").concat(o?"selected":""),children:(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:"".concat(n.mainFileVersionItem," ").concat(i.is_delete_marker?"deleted":""),children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,justifyContent:"space-between",children:(0,_.jsxs)(d.ZP,{container:!0,children:[(0,_.jsxs)(d.ZP,{item:!0,xs:4,className:n.versionContainer,children:[tn(t,!0)," v",f.toString(),x&&(0,_.jsx)(Fn,{type:x})]}),(0,_.jsx)(d.ZP,{item:!0,xs:8,className:n.buttonContainer,children:p.map((function(e,t){return(0,_.jsx)(c.Z,{title:e.tooltip,children:(0,_.jsx)(l.Z,{size:"small",id:"version-action-".concat(e.tooltip,"-").concat(t.toString()),className:"".concat(n.spacing," ").concat(h?n.buttonDisabled:""),disabled:h,onClick:function(n){n.stopPropagation(),h?n.preventDefault():e.action(i)},sx:{backgroundColor:"#F8F8F8",borderRadius:"100%",width:"28px",height:"28px",padding:"5px","& .min-icon":{width:"14px",height:"14px"}},children:e.icon})},"version-action-".concat(e.tooltip,"-").concat(t.toString()))}))})]})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.versionID,children:"null"!==i.version_id?i.version_id:"-"}),(0,_.jsxs)(d.ZP,{item:!0,xs:12,children:[(0,_.jsxs)("span",{className:n.versionData,children:[(0,_.jsx)("strong",{children:"Last modified:"})," ",(0,_.jsx)(Zn(),{children:i.last_modified})]}),(0,_.jsxs)("span",{className:n.versionData,children:[(0,_.jsx)("strong",{children:"Size:"})," ",(0,Z.ae)(i.size||"0")]})]})]})})})})),Pn=t(90673),On={setErrorSnackMessage:B.Ih},Dn=(0,a.$j)(null,On)((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,a=e.selectedObject,s=e.setErrorSnackMessage,r=(0,o.useState)(!1),c=(0,x.Z)(r,2),l=c[0],u=c[1],m=(0,o.useState)(""),f=(0,x.Z)(m,2),h=f[0],p=f[1];if((0,o.useEffect)((function(){l&&j.Z.invoke("DELETE","/api/v1/buckets/".concat(i,"/objects?path=").concat(a,"&non_current_versions=true")).then((function(){n(!0)})).catch((function(e){s(e),u(!1)}))}),[l,n,s,a,i]),!a)return null;return(0,_.jsx)(je.Z,{title:"Delete Non-Current versions",confirmText:"Delete",isOpen:t,titleIcon:(0,_.jsx)(C.Nv,{}),isLoading:l,onConfirm:function(){u(!0)},onClose:function(){return n(!1)},confirmButtonProps:{disabled:"YES, PROCEED"!==h||l},confirmationContent:(0,_.jsxs)(ge.Z,{children:["Are you sure you want to delete all the non-current versions for:"," ",(0,_.jsx)("b",{children:(0,Z.le)(a)}),"? ",(0,_.jsx)("br",{}),(0,_.jsx)("br",{}),"To continue please type ",(0,_.jsx)("b",{children:"YES, PROCEED"})," in the box.",(0,_.jsx)(d.ZP,{item:!0,xs:12,children:(0,_.jsx)(on.Z,{id:"type-confirm",name:"retype-tenant",onChange:function(e){p(e.target.value)},label:"",value:h})})]})})})),Bn={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:"0",tags:{},version_id:null},Mn={setErrorSnackMessage:B.Ih,setSnackBarMessage:B.y1,setNewObject:h.Mc,updateProgress:h.RO,completeObject:h.oK,setSelectedVersion:h.M3,setLoadingVersions:h.Eq,setLoadingObjectInfo:h.vH},Ln=(0,a.$j)((function(e){var n=e.system,t=e.objectBrowser;return{distributedSetup:m()(n,"distributedSetup",!1),searchVersions:t.searchVersions,loadingVersions:t.loadingVersions,selectedVersion:t.selectedVersion}}),Mn)((0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({versionsContainer:{border:"#EAEDEE 1px solid",padding:10},noBottomBorder:{borderBottom:0},versionsVirtualPanel:{flexGrow:1,height:"calc(100% - 120px)",overflow:"auto"},screenTitleContainer:{position:"relative","&::before":{content:"' '",display:"block",position:"absolute",width:"2px",backgroundColor:"#F8F8F8",left:"24px",height:"52px",bottom:0}},sortByLabel:{color:"#838383",fontWeight:"bold",whiteSpace:"nowrap",marginRight:12,fontSize:14}},f.bp),f.Si),f.OR),f.VX),f.bK),f.VI),f.cx),f.C4),(0,f.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.distributedSetup,i=e.setErrorSnackMessage,a=e.setNewObject,s=e.updateProgress,r=e.searchVersions,c=e.loadingVersions,l=e.selectedVersion,u=e.completeObject,f=e.internalPaths,h=e.bucketName,p=e.setSelectedVersion,b=e.setLoadingVersions,g=e.setLoadingObjectInfo,v=(0,o.useState)(!1),y=(0,x.Z)(v,2),S=y[0],k=y[1],w=(0,o.useState)(null),N=(0,x.Z)(w,2),E=N[0],I=N[1],F=(0,o.useState)(null),T=(0,x.Z)(F,2),P=T[0],O=T[1],B=(0,o.useState)([]),L=(0,x.Z)(B,2),R=L[0],z=L[1],A=(0,o.useState)(!1),V=(0,x.Z)(A,2),U=V[0],W=V[1],H=(0,o.useState)(""),J=(0,x.Z)(H,2),Y=J[0],$=J[1],X=(0,o.useState)("date"),Q=(0,x.Z)(X,2),ee=Q[0],ne=Q[1],te=(0,o.useState)(!1),ie=(0,x.Z)(te,2),oe=ie[0],ae=ie[1],se=(0,o.useState)(!1),re=(0,x.Z)(se,2),ce=re[0],le=re[1],de=[];E&&(de=E.name.split("/")),(0,o.useEffect)((function(){c&&""!==f&&j.Z.invoke("GET","/api/v1/buckets/".concat(h,"/objects?prefix=").concat(f).concat(t?"&with_versions=true":"")).then((function(e){var n=m()(e,"objects",[]);t?(I(n.find((function(e){return e.is_latest}))||Bn),z(n)):(I(n[0]),z([])),b(!1)})).catch((function(e){i(e),b(!1)}))}),[b,c,h,f,i,t]);var ue=function(e){O(e),k(!0)},me=function(e){O(e),ae(!0)},fe=function(e){$(e.version_id||""),W(!0)},he=function(e){!function(e){var n=(0,Z.ug)("".concat(h,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random()));a({bucketName:h,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0}),(0,D.LR)(h,f,e.version_id,parseInt(e.size||"0"),(function(e){s(n,e)}),(function(){u(n)}))}(e)},pe=function(e){p(e.version_id||"")},xe=R.filter((function(e){return!!e.version_id&&e.version_id.includes(r)})),be=R.reduce((function(e,n){return n.size?e+parseInt(n.size):e}),0);xe.sort((function(e,n){if("size"===ee)return e.size&&n.size?e.sizen.size?1:0:0;var t=new Date(e.last_modified).getTime(),i=new Date(n.last_modified).getTime();return ti?-1:0}));return(0,_.jsxs)(o.Fragment,{children:[S&&E&&(0,_.jsx)(q.default,{open:S,closeModalAndRefresh:function(){O(null),k(!1),ae(!1)},bucketName:h,dataObject:P||E}),U&&E&&(0,_.jsx)(In,{restoreOpen:U,bucketName:h,versionID:Y,objectPath:E.name,onCloseAndUpdate:function(e){W(!1),$(""),e&&(b(!0),g(!0))}}),oe&&E&&(0,_.jsx)(we.default,{open:oe,bucketName:h,object:{name:E.name,version_id:P&&P.version_id?P.version_id:"null",size:parseInt(P&&P.size?P.size:"0"),content_type:"",last_modified:new Date(E.last_modified)},onClosePreview:function(){ae(!1)}}),ce&&(0,_.jsx)(Dn,{deleteOpen:ce,closeDeleteModalAndRefresh:function(e){le(!1),e&&(b(!0),p(""),g(!0))},selectedBucket:h,selectedObject:f}),(0,_.jsxs)(d.ZP,{container:!0,className:n.versionsContainer,children:[!E&&(0,_.jsx)(d.ZP,{item:!0,xs:12,children:(0,_.jsx)(K.Z,{})}),E&&(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.screenTitleContainer,children:(0,_.jsx)(M.Z,{icon:(0,_.jsx)("span",{className:n.listIcon,children:(0,_.jsx)(C.cR,{})}),title:(0,_.jsxs)("span",{className:n.titleSpacer,children:[de.length>0?de[de.length-1]:E.name," ","Versions"]}),subTitle:(0,_.jsx)(o.Fragment,{children:(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.bucketDetails,children:[(0,_.jsx)("span",{className:n.detailsSpacer,children:(0,_.jsxs)("strong",{children:[R.length," Version",1===R.length?"":"s","\xa0\xa0\xa0"]})}),(0,_.jsx)("span",{className:n.detailsSpacer,children:(0,_.jsx)("strong",{children:(0,Z.l5)(be)})})]})}),actions:(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)(G.Z,{id:"delete-non-current",tooltip:"Delete Non Current Versions",onClick:function(){le(!0)},text:"",icon:(0,_.jsx)(C.ut,{}),color:"secondary",style:{marginRight:15},disabled:R.length<=1}),(0,_.jsx)("span",{className:n.sortByLabel,children:"Sort by"}),(0,_.jsx)(Pn.Z,{id:"sort-by",label:"",value:ee,onChange:function(e){ne(e.target.value)},name:"sort-by",options:[{label:"Date",value:"date"},{label:"Size",value:"size"}]})]}),className:n.noBottomBorder})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.versionsVirtualPanel,children:E.version_id&&"null"!==E.version_id&&(0,_.jsx)(_n.Z,{rowRenderFunction:function(e){var n=xe[e],t=R.length-R.indexOf(n);return(0,_.jsx)(Tn,{fileName:(null===E||void 0===E?void 0:E.name)||"",versionInfo:n,index:t,onDownload:he,onRestore:fe,onShare:ue,onPreview:me,globalClick:pe,isSelected:l===n.version_id})},totalItems:xe.length,defaultHeight:108})})]})]})]})}))),Rn=t(34866),zn=o.lazy((function(){return Promise.resolve().then(t.bind(t,13065))})),An=o.lazy((function(){return Promise.resolve().then(t.bind(t,28789))})),Vn=o.lazy((function(){return Promise.resolve().then(t.bind(t,74768))})),Un=(0,I.Z)(o.lazy((function(){return t.e(711).then(t.bind(t,50711))}))),Gn=(0,I.Z)(o.lazy((function(){return Promise.resolve().then(t.bind(t,34433))}))),Wn=(0,I.Z)(o.lazy((function(){return Promise.all([t.e(5561),t.e(8810),t.e(6901)]).then(t.bind(t,26901))}))),Hn=(0,I.Z)(o.lazy((function(){return Promise.resolve().then(t.bind(t,78562))}))),Kn={borderWidth:2,borderRadius:2,borderColor:"#eeeeee",outline:"none"},Jn={borderStyle:"dashed",backgroundColor:"#fafafa",borderColor:"#2196f3"},Yn={borderStyle:"dashed",backgroundColor:"#fafafa",borderColor:"#00e676"};var $n=(0,_.jsx)(y.Z,{component:"h3",children:"Loading..."}),qn={setSnackBarMessage:B.y1,setErrorSnackMessage:B.Ih,resetRewind:h._w,setBucketDetailsLoad:L.d5,setBucketInfo:L.f4,setNewObject:h.Mc,updateProgress:h.RO,completeObject:h.oK,openList:h.LD,setSearchObjects:h.G4,setVersionsModeEnabled:h.db,setShowDeletedObjects:h.mz,setLoadingVersions:h.Eq},Xn=(0,a.$j)((function(e){var n=e.objectBrowser,t=e.buckets;return{routesList:m()(n,"routesList",[]),downloadingFiles:m()(n,"downloadingFiles",[]),rewindEnabled:m()(n,"rewind.rewindEnabled",!1),rewindDate:m()(n,"rewind.dateToRewind",null),bucketToRewind:m()(n,"rewind.bucketToRewind",""),versionsMode:m()(n,"versionsMode",!1),loadingBucket:t.bucketDetails.loadingBucket,bucketInfo:t.bucketDetails.bucketInfo,searchObjects:n.searchObjects,showDeleted:n.showDeleted}}),qn),Qn=(0,g.EN)(Xn((0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({browsePaper:{height:"calc(100vh - 210px)","&.actionsPanelOpen":{minHeight:"100%"}},"@global":{".rowLine:hover .iconFileElm":{backgroundImage:"url(/images/ob_file_filled.svg)"},".rowLine:hover .iconFolderElm":{backgroundImage:"url(/images/ob_folder_filled.svg)"}},badgeOverlap:{"& .MuiBadge-badge":{top:10,right:1,width:5,height:5,minWidth:5}},screenTitle:{borderBottom:0,paddingTop:0,paddingLeft:0,paddingRight:0}},f.VX),f.OR),f.qg),{},{searchField:(0,i.Z)((0,i.Z)({},f.qg.searchField),{},{maxWidth:380}),screenTitleContainer:{border:"#EAEDEE 1px solid",borderBottom:0,padding:"0.8rem 15px 0"},labelStyle:{color:"#969FA8",fontSize:"12px"}},f.C4),f.cx),(0,f.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.match,a=e.history,s=e.rewindEnabled,r=e.rewindDate,c=e.bucketToRewind,l=e.setSnackBarMessage,u=e.setErrorSnackMessage,f=e.resetRewind,h=e.setBucketDetailsLoad,g=e.loadingBucket,k=e.setBucketInfo,w=e.bucketInfo,I=e.setNewObject,F=e.updateProgress,T=e.completeObject,P=e.setSearchObjects,B=e.searchObjects,L=e.versionsMode,z=e.openList,A=e.setVersionsModeEnabled,V=e.showDeleted,U=e.setShowDeletedObjects,K=e.setLoadingVersions,J=(0,o.useState)([]),Y=(0,x.Z)(J,2),$=Y[0],q=Y[1],X=(0,o.useState)(!0),Q=(0,x.Z)(X,2),ee=Q[0],ne=Q[1],te=(0,o.useState)([]),ie=(0,x.Z)(te,2),oe=ie[0],ae=ie[1],se=(0,o.useState)(!1),re=(0,x.Z)(se,2),ce=re[0],le=re[1],de=(0,o.useState)(!1),ue=(0,x.Z)(de,2),me=ue[0],fe=ue[1],he=(0,o.useState)(0),pe=(0,x.Z)(he,2),xe=pe[0],be=pe[1],ge=(0,o.useState)($n),je=(0,x.Z)(ge,2),ve=je[0],Ze=je[1],ye=(0,o.useState)(!0),Se=(0,x.Z)(ye,2),ke=Se[0],Ce=Se[1],we=(0,o.useState)(!1),Ne=(0,x.Z)(we,2),Ee=Ne[0],Ie=Ne[1],_e=(0,o.useState)(!0),Fe=(0,x.Z)(_e,2),Te=Fe[0],Pe=Fe[1],Oe=(0,o.useState)(!1),Be=(0,x.Z)(Oe,2),Me=Be[0],Le=Be[1],Re=(0,o.useState)(!1),ze=(0,x.Z)(Re,2),Ae=ze[0],Ve=ze[1],Ue=(0,o.useState)([]),Ge=(0,x.Z)(Ue,2),We=Ge[0],He=Ge[1],Ke=(0,o.useState)(!1),Je=(0,x.Z)(Ke,2),Ye=Je[0],$e=Je[1],qe=(0,o.useState)(null),Xe=(0,x.Z)(qe,2),Qe=Xe[0],en=Xe[1],nn=(0,o.useState)(!1),tn=(0,x.Z)(nn,2),on=tn[0],an=tn[1],sn=(0,o.useState)("ASC"),rn=(0,x.Z)(sn,2),cn=rn[0],ln=rn[1],dn=(0,o.useState)("name"),un=(0,x.Z)(dn,2),mn=un[0],fn=un[1],hn=(0,o.useState)(!1),pn=(0,x.Z)(hn,2),xn=pn[0],bn=pn[1],gn=(0,o.useState)(!1),vn=(0,x.Z)(gn,2),Zn=vn[0],yn=vn[1],Sn=(0,o.useState)(!1),wn=(0,x.Z)(Sn,2),Nn=wn[0],En=wn[1],In=(0,o.useState)(!1),_n=(0,x.Z)(In,2),Fn=_n[0],Tn=_n[1],Pn=(0,o.useState)(null),On=(0,x.Z)(Pn,2),Dn=On[0],Bn=On[1],Mn=(0,o.useState)(null),qn=(0,x.Z)(Mn,2),Xn=qn[0],Qn=qn[1],et=m()(t.params,"subpaths",""),nt=t.params.bucketName,tt=(0,o.useRef)(null),it=(0,o.useRef)(null);(0,o.useEffect)((function(){null!==it.current&&(it.current.setAttribute("directory",""),it.current.setAttribute("webkitdirectory",""))}),[it]),(0,o.useEffect)((function(){if(1===We.length){var e=We[0];"none"!==(0,D.Bg)(e)?En(!0):En(!1),e.endsWith("/")?yn(!1):yn(!0)}else yn(!1),En(!1)}),[We]),(0,o.useEffect)((function(){Xn||j.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/quota")).then((function(e){var n=null;e.quota&&(n=e),Qn(n)})).catch((function(){Qn(null)}))}),[Xn,nt]),(0,o.useEffect)((function(){We.length>0?Tn(!0):0===We.length&&null===Dn&&Tn(!1)}),[We,Dn]);var ot=(0,N.F)(nt,[E.Ft.S3_DELETE_OBJECT]),at=(0,N.F)(nt,[E.Ft.S3_LIST_BUCKET]);(0,o.useEffect)((function(){xn||(h(!0),bn(!0))}),[xn,h,bn]),function(e,n){var t=(0,o.useRef)(null);(0,o.useEffect)((function(){t.current=e}),[e]),(0,o.useEffect)((function(){if(null!==n){var e=setInterval((function(){void 0!==t&&t.current&&t.current()}),n);return function(){return clearInterval(e)}}}),[n])}((function(){ee&&function(){var e=Date.now()-xe;e/1e3>=6?Ze((0,_.jsx)(o.Fragment,{children:(0,_.jsxs)(y.Z,{component:"h3",children:["This operation is taking longer than expected... (",Math.ceil(e/1e3),"s)"]})})):e/1e3>=3&&Ze((0,_.jsx)(y.Z,{component:"h3",children:"This operation is taking longer than expected..."}))}()}),1e3),(0,o.useEffect)((function(){ke&&(at?j.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/versioning")).then((function(e){Ie(e.is_versioned),Ce(!1)})).catch((function(e){u(e),Ce(!1)})):Ce(!1))}),[nt,ke,u,at]),(0,o.useEffect)((function(){Te&&(at?j.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/object-locking")).then((function(e){Le(e.object_locking_enabled),Pe(!1)})).catch((function(e){u(e),Pe(!1)})):Pe(!1))}),[nt,Te,u,at]),(0,o.useEffect)((function(){if(s){if(c!==nt)return void f();if(r){le(!0);var e=r.toISOString(),n="";if(et){var t=(0,Z.le)(et);n=t.endsWith("/")?t:t+"/"}j.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/rewind/").concat(e).concat(n?"?prefix=".concat((0,Z.ug)(n)):"")).then((function(e){le(!1),e.objects?ae(e.objects):ae([])})).catch((function(e){le(!1),u(e)}))}}}),[s,r,c,nt,t,u,f,et]),(0,o.useEffect)((function(){ne(!0),Tn(!1),P("")}),[et,P]),(0,o.useEffect)((function(){if(ee)if(at){var e="";if(et){var n=(0,Z.le)(et);e=n.endsWith("/")?n:n+"/"}var t=Date.now();be(t),Ze($n);var i="/api/v1/buckets/".concat(nt,"/objects");if(V){var o=(new Date).toISOString();i="/api/v1/buckets/".concat(nt,"/rewind/").concat(o)}j.Z.invoke("GET","".concat(i).concat(e?"?prefix=".concat((0,Z.ug)(e)):"")).then((function(n){var t=n.objects||[],i=[],o=[];t.forEach((function(e){e.name.endsWith("/")?i.push(e):o.push(e)}));var a=[].concat(i,o);if(q(a),n.objects||""===e)ne(!1);else if(s){var c=r.toISOString(),l="";if(et){var d=(0,Z.le)(et);l=d.endsWith("/")?d:d+"/"}j.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/rewind/").concat(c).concat(l?"?prefix=".concat((0,Z.ug)(l)):"")).then((function(e){e.objects,le(!1),ne(!1)})).catch((function(e){le(!1),ne(!1),u(e)}))}else j.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/objects").concat(et?"?prefix=".concat(et):"")).then((function(n){if(n.objects){for(var t=e.slice(0,e.length-1),i=0;i1,b="An error occurred while uploading the file".concat(x?"s":"","."),g={413:"Error - File size too large"};p.withCredentials=!1,p.onload=function(e){if(p.status>=200&&p.status<300)T(h),a({status:p.status});else{if(g[p.status])b=g[p.status];else if(p.response)try{var n=JSON.parse(p.response);b=n.detailedMessage}catch(t){b="something went wrong"}s({status:p.status,message:b})}},p.upload.addEventListener("error",(function(e){s(b)})),p.upload.addEventListener("progress",(function(e){var n=Math.floor(100*e.loaded/e.total);F(h,n)})),p.onerror=function(){s(b)},p.onloadend=function(){0===e.length&&ne(!0)};var j=new FormData;void 0!==o.size&&(j.append(o.size.toString(),l,c),p.send(j))}))},a=[];z();for(var s=0;s0){var t=a.length,i=a.length-n.length,o={errorMessage:"There were some errors during file upload",detailedError:"Uploaded files ".concat(i,"/").concat(t)};console.log("upload results",e),u(o)}}))}(e,nt,t,n)}),[nt,T,et,z,I,u,F]),ct=(0,o.useCallback)((function(e){if(e&&e.length>0){var n=e[0].path;rt(e,n)}}),[rt]),lt=(0,b.uI)({noClick:!0,onDrop:ct}),dt=lt.getRootProps,ut=lt.getInputProps,mt=lt.isDragActive,ft=lt.isDragAccept,ht=(0,o.useMemo)((function(){return(0,i.Z)((0,i.Z)((0,i.Z)({},Kn),mt?Jn:{}),ft?Yn:{})}),[mt,ft]),pt=$.filter((function(e){return""===B||e.name.toLowerCase().indexOf(B.toLowerCase())>=0})),xt=(0,Z.le)(et),bt=xt.split("/").filter((function(e){return""!==e})),gt=(s?oe:pt).sort((0,D.P_)(mn)),jt=[];jt="ASC"===cn?gt:gt.reverse();var vt=[nt];bt.length>0&&(vt=vt.concat(bt));var Zt=function(e){Tn(!1),Bn(null),He([]),A(!1),e&&ne(!0)},yt=[{type:"view",label:"View",onClick:function(e){if(He([]),e.endsWith("/")){var n="/buckets/".concat(nt,"/browse").concat(e?"/".concat((0,Z.ug)(e)):"");a.push(n)}else Tn(!0),K(!0),Bn("".concat(e?"".concat((0,Z.ug)(e)):""))},sendOnlyId:!0}],St=[{action:function(){if(0!==We.length){var e=function(e){return We.includes(e.name)};(s?oe.filter(e):pt.filter(e)).forEach((function(e){!function(e){var n=(0,Z.ug)("".concat(nt,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random()));I({bucketName:nt,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0}),(0,D.LR)(nt,(0,Z.ug)(e.name),e.version_id,e.size,(function(e){F(n,e)}),(function(){T(n)}))}(e)}))}},label:"Download",disabled:0===We.length,icon:(0,_.jsx)(C._8,{}),tooltip:"Download Selected"},{action:function(){if(1===We.length){var e;(e=pt.find((function(e){return We.includes(e.name)})))&&(en(e),an(!0))}},label:"Share",disabled:1!==We.length||!Zn,icon:(0,_.jsx)(C.aA,{}),tooltip:"Share Selected File"},{action:function(){if(1===We.length){var e;(e=pt.find((function(e){return We.includes(e.name)})))&&(en(e),$e(!0))}},label:"Preview",disabled:1!==We.length||!Nn,icon:(0,_.jsx)(C.P9,{}),tooltip:"Preview Selected File"},{action:function(){fe(!0)},label:"Delete",icon:(0,_.jsx)(Vn,{}),disabled:!(0,N.F)(nt,[E.Ft.S3_DELETE_OBJECT])||0===We.length||!ot,tooltip:"Delete Selected Files"}];return(0,_.jsxs)(o.Fragment,{children:[on&&Qe&&(0,_.jsx)(Gn,{open:on,closeModalAndRefresh:function(){an(!1),en(null)},bucketName:nt,dataObject:{name:Qe.name,last_modified:"",version_id:Qe.version_id}}),me&&(0,_.jsx)(Un,{deleteOpen:me,selectedBucket:nt,selectedObjects:We,closeDeleteModalAndRefresh:function(e){fe(!1),e&&(l("Objects deleted successfully."),He([]),ne(!0))},versioning:Ee}),Ae&&(0,_.jsx)(Wn,{open:Ae,closeModalAndRefresh:function(e){Ve(!1)},bucketName:nt}),Ye&&(0,_.jsx)(Hn,{open:Ye,bucketName:nt,object:Qe,onClosePreview:function(){$e(!1),en(null)}}),(0,_.jsxs)(R.Z,{children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.screenTitleContainer,children:(0,_.jsx)(M.Z,{className:n.screenTitle,icon:(0,_.jsx)("span",{className:n.listIcon,children:(0,_.jsx)(C.wN,{})}),title:(0,_.jsx)("span",{className:n.titleSpacer,children:nt}),subTitle:(0,_.jsx)(o.Fragment,{children:(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.bucketDetails,children:[(0,_.jsxs)("span",{className:n.detailsSpacer,children:["Created:\xa0\xa0\xa0",(0,_.jsx)("strong",{children:(null===w||void 0===w?void 0:w.creation_date)||""})]}),(0,_.jsxs)("span",{className:n.detailsSpacer,children:["Access:\xa0\xa0\xa0",(0,_.jsx)("strong",{children:(null===w||void 0===w?void 0:w.access)||""})]}),w&&(0,_.jsx)(o.Fragment,{children:(0,_.jsxs)("span",{className:n.detailsSpacer,children:[w.size&&(0,_.jsx)(o.Fragment,{children:(0,Z.l5)(w.size)}),w.size&&Xn&&(0,_.jsxs)(o.Fragment,{children:[" / ",(0,Z.l5)(Xn.quota)]}),w.size&&w.objects?" - ":"",w.objects&&(0,_.jsxs)(o.Fragment,{children:[w.objects,"\xa0Object",w.objects&&1!==w.objects?"s":""]})]})})]})}),actions:(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)(G.Z,{id:"rewind-objects-list",tooltip:"Rewind Bucket",text:"Rewind",icon:(0,_.jsx)(S.Z,{badgeContent:" ",color:"secondary",variant:"dot",invisible:!s,className:n.badgeOverlap,sx:{height:12},children:(0,_.jsx)(zn,{})}),color:"primary",variant:"outlined",onClick:function(){Ve(!0)},disabled:!Ee||!(0,N.F)(nt,[E.Ft.S3_PUT_OBJECT])}),(0,_.jsx)(G.Z,{id:"refresh-objects-list",tooltip:"Reload List",text:"Refresh",icon:(0,_.jsx)(An,{}),color:"primary",variant:"outlined",onClick:function(){L?K(!0):ne(!0)},disabled:!(0,N.F)(nt,[E.Ft.S3_LIST_BUCKET])||s}),(0,_.jsx)("input",{type:"file",multiple:!0,onChange:st,style:{display:"none"},ref:tt}),(0,_.jsx)("input",{type:"file",multiple:!0,onChange:st,style:{display:"none"},ref:it}),(0,_.jsx)(W,{bucketName:nt,uploadPath:vt.join("/"),uploadFileFunction:function(e){tt&&tt.current&&tt.current.click(),e()},uploadFolderFunction:function(e){it&&it.current&&it.current.click(),e()}})]})})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,children:(0,_.jsx)(O,{bucketName:nt,internalPaths:xt,existingFiles:$||[],additionalOptions:!Ee||s?null:(0,_.jsx)("div",{children:(0,_.jsx)(Rn.Z,{name:"deleted_objects",id:"showDeletedObjects",value:"deleted_on",label:"Show deleted objects",onChange:function(){U(!V),Zt(!0)},checked:V,overrideLabelClasses:n.labelStyle,noTopMargin:!0})})})}),(0,_.jsxs)("div",(0,i.Z)((0,i.Z)({id:"object-list-wrapper"},dt({style:(0,i.Z)({},ht)})),{},{children:[(0,_.jsx)("input",(0,i.Z)({},ut())),(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.tableBlock,children:[L?(0,_.jsx)(o.Fragment,{children:null!==Dn&&(0,_.jsx)(Ln,{internalPaths:Dn,bucketName:nt})}):(0,_.jsx)(N.s,{scopes:[E.Ft.S3_LIST_BUCKET],resource:nt,errorProps:{disabled:!0},children:(0,_.jsx)(v.Z,{itemActions:yt,columns:s?Cn:kn,isLoading:s?ce:ee,loadingMessage:ve,entityName:"Objects",idField:"name",records:jt,customPaperHeight:"".concat(n.browsePaper," ").concat(Fn?"actionsPanelOpen":""),selectedItems:We,onSelect:function(e){var n=e.target,t=n.value,i=n.checked,o=(0,p.Z)(We);return i?o.push(t):o=o.filter((function(e){return e!==t})),He(o),Bn(null),o},customEmptyMessage:"This location is empty".concat(s?"":", please try uploading a new file"),sortConfig:{currentSort:mn,currentDirection:cn,triggerSort:function(e){var n=m()(e,"sortDirection","DESC");fn(e.sortBy),ln(n),ne(!0)}},onSelectAll:function(){if(Bn(null),We.length!==jt.length){var e=jt.map((function(e){return e.name}));He(e)}else He([])},rowStyle:function(e){var n,t=e.index;return null!==(n=jt[t])&&void 0!==n&&n.delete_flag?"deleted":""}})}),(0,_.jsx)(N.s,{scopes:[E.Ft.S3_LIST_BUCKET],resource:nt,errorProps:{disabled:!0},children:(0,_.jsxs)(H,{open:Fn,closePanel:function(){Zt(!1)},children:[We.length>0&&(0,_.jsx)(De,{items:St,title:"Selected Objects:"}),null!==Dn&&(0,_.jsx)(jn,{internalPaths:Dn,bucketName:nt,onClosePanel:Zt,versioning:Ee,locking:Me})]})})]})]}))]})]})})))),et=t(32291),nt=t(95792),tt=t(59114),it=t(84669),ot={setVersionsModeEnabled:h.db,setErrorSnackMessage:B.Ih,setSearchObjects:h.G4,setSearchVersions:h.Pr},at=(0,a.$j)((function(e){var n=e.objectBrowser,t=e.buckets;return{versionsMode:m()(n,"versionsMode",!1),bucketToRewind:m()(n,"rewind.bucketToRewind",""),bucketInfo:t.bucketDetails.bucketInfo,searchObjects:n.searchObjects,versionedFile:n.versionedFile,searchVersions:n.searchVersions}}),ot),st=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)({breadcrumLink:{textDecoration:"none",color:"black"},backToBuckets:{color:"#000",fontSize:14,padding:0,marginTop:-8}},(0,f.Bz)(e.spacing(4))))}))(at((function(e){var n=e.versionsMode,t=e.match,i=e.history,a=(e.classes,e.setVersionsModeEnabled),s=e.searchObjects,r=e.setSearchObjects,u=e.setSearchVersions,f=e.versionedFile,h=e.searchVersions,p=t.params.bucketName,x=m()(t.params,"subpaths","");(0,o.useEffect)((function(){a(!1)}),[x,a]);return(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)(et.Z,{label:(0,_.jsx)(it.Z,{label:"Buckets",to:E.gA.BUCKETS}),actions:(0,_.jsx)(N.s,{scopes:E.D[E.EI.BUCKET_ADMIN],resource:p,errorProps:{disabled:!0},children:(0,_.jsx)(c.Z,{title:"Configure Bucket",children:(0,_.jsx)(l.Z,{color:"primary","aria-label":"Configure Bucket",component:"span",onClick:function(){i.push("/buckets/".concat(p,"/admin"))},size:"large",children:(0,_.jsx)(nt.Z,{})})})}),middleComponent:(0,_.jsx)(o.Fragment,{children:n?(0,_.jsx)(o.Fragment,{children:(0,_.jsx)(tt.Z,{placeholder:"Start typing to filter versions of ".concat(f),onChange:function(e){u(e)},value:h})}):(0,_.jsx)(N.s,{scopes:[E.Ft.S3_LIST_BUCKET],resource:p,errorProps:{disabled:!0},children:(0,_.jsx)(tt.Z,{placeholder:"Start typing to filter objects in the bucket",onChange:function(e){r(e)},value:s})})})}),(0,_.jsx)(d.ZP,{children:(0,_.jsx)(Qn,{})})]})})))},40603:function(e,n,t){var i=t(1413),o=t(45987),a=(t(72791),t(85531)),s=t(72455),r=t(80184),c=["onClick","text","disabled","tooltip","icon"],l=(0,s.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,i=n.color,o=e.palette.primary.main;return"primary"===i&&"contained"===t?o=e.palette.primary.contrastText:"primary"===i&&"outlined"===t?o=e.palette.primary.main:"secondary"===i&&(o=e.palette.secondary.main),o}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=l(e),t=e.onClick,s=e.text,d=void 0===s?"":s,u=e.disabled,m=void 0!==u&&u,f=e.tooltip,h=e.icon,p=void 0===h?null:h,x=(0,o.Z)(e,c);return(0,r.jsxs)(a.Z,(0,i.Z)((0,i.Z)({classes:n,tooltip:f||d,variant:"outlined",onClick:t,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},x),{},{children:[(0,r.jsx)("span",{children:d})," ",p]}))}},34433:function(e,n,t){t.r(n),t.d(n,{default:function(){return _}});var i=t(70885),o=t(1413),a=t(72791),s=t(26181),r=t.n(s),c=t(60364),l=t(11135),d=t(25787),u=t(78029),m=t.n(u),f=t(61889),h=t(36151),p=t(40986),x=t(23814),b=t(42649),g=t(81207),j=t(56028),v=t(64163),Z=t(30829),y=t(72426),S=t.n(y),k=t(21435),C=t(80184),w=(0,d.Z)((function(e){return(0,l.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},x.YI),x.Hr),{},{labelContainer:{display:"flex",alignItems:"center",marginBottom:15},fieldContainer:(0,o.Z)((0,o.Z)({},x.YI.fieldContainer),{},{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:10,marginTop:11,marginBottom:6}),dateContainer:{height:20,textAlign:"right",color:"#848484"},dateInputContainer:{margin:"0 10px"},durationInputs:{display:"flex",alignItems:"center",justifyContent:"center"},validityIndicator:{display:"flex",alignItems:"center",justifyContent:"center"},invalidDurationText:{marginTop:15,display:"flex",color:"red",fontSize:11},validityText:{fontSize:14,fontWeight:600,marginTop:15,display:"flex",alignItems:"center",justifyContent:"center","@media (max-width: 900px)":{flexFlow:"column"}}}))}))((function(e){var n=e.classes,t=e.id,o=e.initialDate,s=e.label,r=e.maxDays,c=e.entity,l=e.onChange,d=(0,a.useState)(7),u=(0,i.Z)(d,2),m=u[0],h=u[1],p=(0,a.useState)(0),x=(0,i.Z)(p,2),b=x[0],g=x[1],j=(0,a.useState)(0),v=(0,i.Z)(j,2),y=v[0],w=v[1],N=(0,a.useState)(!0),E=(0,i.Z)(N,2),I=E[0],_=E[1],F=(0,a.useState)(S()()),T=(0,i.Z)(F,2),P=T[0],O=T[1];(0,a.useEffect)((function(){O(function(e,n,t,i){return S()(e).add(n,"days").add(t,"hours").add(i,"minutes")}(o,m,b,y))}),[o,m,b,y]),(0,a.useEffect)((function(){I?l(P.format("YYYY-MM-DDTHH:mm:ss"),!0):l("0000-00-00",!1)}),[P,l,I]),(0,a.useEffect)((function(){var e=!0;(m<0||r&&m>r||isNaN(m))&&(e=!1),(b<0||b>23||isNaN(b))&&(e=!1),(y<0||y>59||isNaN(y))&&(e=!1),!r||m!==r||0===b&&0===y||(e=!1),_(e)}),[P,r,l,m,b,y]);var D={style:{textAlign:"center",paddingRight:10,paddingLeft:10,width:25},className:"removeArrows"};return(0,C.jsx)(a.Fragment,{children:(0,C.jsxs)(f.ZP,{container:!0,className:n.fieldContainer,children:[(0,C.jsxs)(f.ZP,{item:!0,xs:12,alignItems:"center",justifyContent:"center",children:[(0,C.jsx)(f.ZP,{item:!0,xs:12,className:n.labelContainer,children:(0,C.jsx)(Z.Z,{htmlFor:t,className:n.inputLabel,children:(0,C.jsx)("span",{children:s})})}),(0,C.jsxs)(f.ZP,{item:!0,xs:12,className:n.durationInputs,children:[(0,C.jsx)(f.ZP,{item:!0,className:n.dateInputContainer,children:(0,C.jsx)(k.Z,{id:t,type:"number",min:"0",max:r?r.toString():"999",label:"Days",name:t,onChange:function(e){h(parseInt(e.target.value))},value:m.toString(),extraInputProps:D,noLabelMinWidth:!0})}),(0,C.jsx)(f.ZP,{item:!0,className:n.dateInputContainer,children:(0,C.jsx)(k.Z,{id:t,type:"number",min:"0",max:"23",label:"Hours",name:t,onChange:function(e){g(parseInt(e.target.value))},value:b.toString(),extraInputProps:D,noLabelMinWidth:!0})}),(0,C.jsx)(f.ZP,{item:!0,className:n.dateInputContainer,children:(0,C.jsx)(k.Z,{id:t,type:"number",min:"0",max:"59",label:"Minutes",name:t,onChange:function(e){w(parseInt(e.target.value))},value:y.toString(),extraInputProps:D,noLabelMinWidth:!0})})]})]}),(0,C.jsx)(f.ZP,{item:!0,xs:12,className:"".concat(n.validityIndicator," ").concat(n.formFieldRow),children:I?(0,C.jsxs)("div",{className:n.validityText,children:[(0,C.jsxs)("div",{className:n.validityLabel,children:[c," will be available until:"]})," ",(0,C.jsx)("div",{className:n.validTill,children:P.format("MM/DD/YYYY HH:mm:ss")})]}):(0,C.jsx)("div",{className:n.invalidDurationText,children:"Please select a valid duration."})})]})})})),N=t(45248),E=a.lazy((function(){return Promise.resolve().then(t.bind(t,79880))})),I=(0,c.$j)((function(e){var n=e.system;return{distributedSetup:r()(n,"distributedSetup",!1)}}),{setModalSnackMessage:b.MK,setModalErrorSnackMessage:b.zb}),_=(0,d.Z)((function(e){return(0,l.Z)((0,o.Z)((0,o.Z)({shareLinkInfo:{fontSize:13,fontWeight:400},copyShareLink:{display:"flex","@media (max-width: 900px)":{flexFlow:"column",alignItems:"center",justifyContent:"center"}},copyShareLinkInput:{"& div:first-child":{marginTop:0},"@media (max-width: 900px)":{minWidth:250}},copyShareLinkBtn:{display:"flex",alignItems:"center",justifyContent:"center","@media (max-width: 900px)":{marginTop:10}}},x.ID),x.DF))}))(I((function(e){var n=e.classes,t=e.open,o=e.closeModalAndRefresh,s=e.bucketName,c=e.dataObject,l=e.distributedSetup,d=e.setModalSnackMessage,u=e.setModalErrorSnackMessage,x=(0,a.useState)(""),b=(0,i.Z)(x,2),Z=b[0],y=b[1],S=(0,a.useState)(!0),k=(0,i.Z)(S,2),I=k[0],_=k[1],F=(0,a.useState)(!1),T=(0,i.Z)(F,2),P=T[0],O=T[1],D=(0,a.useState)(""),B=(0,i.Z)(D,2),M=B[0],L=B[1],R=(0,a.useState)(!0),z=(0,i.Z)(R,2),A=z[0],V=z[1],U=(0,a.useState)("null"),G=(0,i.Z)(U,2),W=G[0],H=G[1],K=new Date;return(0,a.useEffect)((function(){if(void 0===c.version_id)return l?(g.Z.invoke("GET","/api/v1/buckets/".concat(s,"/objects?prefix=").concat((0,N.ug)(c.name)).concat(l?"&with_versions=true":"")).then((function(e){var n=r()(e,"objects",[]).find((function(e){return e.is_latest}));H(n?n.version_id:"null")})).catch((function(e){u(e)})),void _(!1)):(H("null"),void _(!1));H(c.version_id||"null"),_(!1)}),[s,c,l,u]),(0,a.useEffect)((function(){if(A&&!I){O(!0),y("");var e=new Date("".concat(M)),n=new Date,t=Math.ceil((e.getTime()-n.getTime())/1e3);t>0&&g.Z.invoke("GET","/api/v1/buckets/".concat(s,"/objects/share?prefix=").concat((0,N.ug)(c.name),"&version_id=").concat(W).concat(""!==M?"&expires=".concat(t,"s"):"")).then((function(e){y(e),O(!1)})).catch((function(e){u(e),y(""),O(!1)}))}}),[c,M,s,A,y,u,l,I,W]),(0,C.jsx)(a.Fragment,{children:(0,C.jsxs)(j.Z,{title:"Share File",modalOpen:t,onClose:function(){o()},children:[I&&(0,C.jsx)(f.ZP,{item:!0,xs:12,children:(0,C.jsx)(p.Z,{})}),!I&&(0,C.jsxs)(a.Fragment,{children:[(0,C.jsxs)(f.ZP,{item:!0,xs:12,className:n.shareLinkInfo,children:["This is a temporary URL with integrated access credentials for sharing objects valid for up to 7 days.",(0,C.jsx)("br",{}),"The temporary URL expires after the configured time limit."]}),(0,C.jsx)(f.ZP,{item:!0,xs:12,className:n.dateContainer,children:(0,C.jsx)(w,{initialDate:K,id:"date",label:"Active for",maxDays:7,onChange:function(e,n){V(n),n?L(e):(L(""),y(""))},entity:"Link"})}),(0,C.jsxs)(f.ZP,{item:!0,xs:12,className:"".concat(n.copyShareLink," ").concat(n.formFieldRow," "),children:[(0,C.jsx)(f.ZP,{item:!0,xs:10,className:n.copyShareLinkInput,children:(0,C.jsx)(v.Z,{content:Z})}),(0,C.jsx)(f.ZP,{item:!0,xs:2,className:n.copyShareLinkBtn,children:(0,C.jsx)(m(),{text:Z,children:(0,C.jsx)(h.Z,{variant:"contained",color:"primary",endIcon:(0,C.jsx)(E,{}),onClick:function(){d("Share URL Copied to clipboard")},disabled:""===Z||P,children:"Copy"})})})]})]})]})})})))},78562:function(e,n,t){t.r(n),t.d(n,{default:function(){return b}});var i=t(72791),o=t(56028),a=t(4942),s=t(70885),r=t(11135),c=t(25787),l=t(61889),d=t(40986),u=t(47922),m=t(45248),f=t(28182),h=t(80184),p=(0,c.Z)((function(){return(0,r.Z)({iframeContainer:{border:"0px",flex:"1 1 auto",width:"100%",height:250,backgroundColor:"transparent",borderRadius:5,"&.image":{height:500},"&.text":{height:700},"&.audio":{height:150},"&.video":{height:350},"&.fullHeight":{height:"calc(100vh - 185px)"}},iframeBase:{backgroundColor:"#fff"},iframeHidden:{display:"none"}})}))((function(e){var n=e.bucketName,t=e.object,o=e.isFullscreen,r=void 0!==o&&o,c=e.classes,p=(0,i.useState)(!0),x=(0,s.Z)(p,2),b=x[0],g=x[1],j="";if(t){var v=(0,m.ug)(t.name),Z=document.baseURI.replace(window.location.origin,"");j="".concat(window.location.origin).concat(Z,"api/v1/buckets/").concat(n,"/objects/download?preview=true&prefix=").concat(v),t.version_id&&(j=j.concat("&version_id=".concat(t.version_id)))}var y=(0,u.Bg)((null===t||void 0===t?void 0:t.name)||""),S=function(){g(!1)};return(0,h.jsxs)(i.Fragment,{children:[b&&(0,h.jsx)(l.ZP,{item:!0,xs:12,children:(0,h.jsx)(d.Z,{})}),"video"===y&&(0,h.jsx)("video",{style:{width:"100%",height:"auto"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:S,children:(0,h.jsx)("source",{src:j,type:"video/mp4"})}),"audio"===y&&(0,h.jsx)("audio",{style:{width:"100%",height:"auto"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:S,children:(0,h.jsx)("source",{src:j,type:"audio/mpeg"})}),"image"===y&&(0,h.jsx)("img",{style:{width:"100%",height:"auto"},src:j,alt:"preview",onLoad:S}),"video"!==y&&"audio"!==y&&"image"!==y&&(0,h.jsx)("div",{className:(0,f.Z)(c.iframeBase,(0,a.Z)({},c.iframeHidden,b)),children:(0,h.jsx)("iframe",{src:j,title:"File Preview",allowTransparency:!0,className:"".concat(c.iframeContainer," ").concat(r?"fullHeight":y),onLoad:S,children:"File couldn't be loaded. Please try Download instead"})})]})})),x=t(74833),b=function(e){var n=e.open,t=e.bucketName,a=e.object,s=e.onClosePreview;return(0,h.jsx)(i.Fragment,{children:(0,h.jsx)(o.Z,{modalOpen:n,title:"Preview - ".concat(null===a||void 0===a?void 0:a.name),onClose:s,wideLimit:!1,titleIcon:(0,h.jsx)(x.$3,{}),children:(0,h.jsx)(p,{bucketName:t,object:a})})})}},47922:function(e,n,t){t.d(n,{Bg:function(){return o},LR:function(){return i},P_:function(){return a}});var i=function(e,n,t,i,o,a){var s=document.createElement("a");document.body.appendChild(s);var r="/api/v1/buckets/".concat(e,"/objects/download?prefix=").concat(n);t&&(r=r.concat("&version_id=".concat(t)));var c=new XMLHttpRequest;c.open("GET",r,!0),c.addEventListener("progress",(function(e){var n=Math.round(e.loaded/i*100);o&&o(n)}),!1),c.responseType="blob",c.onreadystatechange=function(){if(4===c.readyState&&200===c.status){var e=c.getResponseHeader("Content-Disposition"),n="download";if(e)n=decodeURIComponent(e).split('"')[1];a&&a();var t=document.createElement("a");t.href=window.URL.createObjectURL(c.response),t.download=n,document.body.appendChild(t),t.click(),document.body.removeChild(t)}},c.send()},o=function(e){var n=e.split(".").pop();return n?(n=n.toLowerCase(),["jif","jfif","apng","avif","svg","webp","bmp","ico","jpg","jpe","jpeg","gif","png","heic"].includes(n)?"image":["pdf","txt","json"].includes(n)?"text":["wav","mp3","alac","aiff","dsd","pcm"].includes(n)?"audio":["mp4","avi","mpg","webm","mov","flv","mkv","wmv","avchd","mpeg-4"].includes(n)?"video":"none"):"none"},a=function(e){switch(e){case"name":return function(e,n){return e.name.localeCompare(n.name)};case"last_modified":return function(e,n){return new Date(e.last_modified).getTime()-new Date(n.last_modified).getTime()};case"size":return function(e,n){return(e.size||-1)-(n.size||-1)}}}},85531:function(e,n,t){var i=t(1413),o=t(4942),a=t(45987),s=(t(72791),t(11135)),r=t(25787),c=t(13400),l=t(20068),d=t(28182),u=t(80184),m=["classes","children","variant","tooltip"];n.Z=(0,r.Z)((function(e){return(0,s.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,t=e.children,s=e.variant,r=void 0===s?"outlined":s,f=e.tooltip,h=(0,a.Z)(e,m),p=(0,u.jsx)(c.Z,(0,i.Z)((0,i.Z)({},h),{},{className:(0,d.Z)(n.root,(0,o.Z)({},n.contained,"contained"===r)),children:t}));return f&&""!==f?(0,u.jsx)(l.Z,{title:f,children:(0,u.jsx)("span",{children:p})}):p}))},75578:function(e,n,t){var i=t(1413),o=t(72791),a=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,a.jsx)(o.Suspense,{fallback:n,children:(0,a.jsx)(e,(0,i.Z)({},t))})}return t}},64163:function(e,n,t){var i=t(1413),o=t(72791),a=t(61889),s=t(11135),r=t(25787),c=t(23814),l=t(80184);n.Z=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)({},c.xx))}))((function(e){var n=e.classes,t=e.label,i=void 0===t?"":t,s=e.content,r=e.multiLine,c=void 0!==r&&r;return(0,l.jsx)(o.Fragment,{children:(0,l.jsxs)(a.ZP,{className:n.prefinedContainer,children:[""!==i&&(0,l.jsx)(a.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:i}),(0,l.jsx)(a.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,l.jsx)(a.ZP,{item:!0,xs:12,className:c?n.innerContentMultiline:n.innerContent,children:s})})]})})}))},83679:function(e,n,t){var i=t(4942),o=t(1413),a=(t(72791),t(28182)),s=t(61889),r=t(10765),c=t(85523),l=t(61419),d=t(30829),u=t(20068),m=t(11135),f=t(25787),h=t(72455),p=t(23814),x=t(84570),b=t(80184),g=(0,h.Z)((0,o.Z)({root:{"&:hover":{backgroundColor:"transparent"}}},p.FU)),j=function(e){var n=g();return(0,b.jsx)(l.Z,(0,o.Z)({className:n.root,disableRipple:!0,color:"default",checkedIcon:(0,b.jsx)("span",{className:n.radioSelectedIcon}),icon:(0,b.jsx)("span",{className:n.radioUnselectedIcon})},e))};n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},p.YI),p.Hr),{},{optionLabel:{"&.Mui-disabled":{"& .MuiFormControlLabel-label":{color:"#9c9c9c"}},"&:last-child":{marginRight:0},"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E"}},checkedOption:{"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E",fontWeight:700}}}))}))((function(e){var n=e.selectorOptions,t=void 0===n?[]:n,o=e.currentSelection,l=e.label,m=e.id,f=e.name,h=e.onChange,p=e.tooltip,g=void 0===p?"":p,v=e.disableOptions,Z=void 0!==v&&v,y=e.classes,S=e.displayInColumn,k=void 0!==S&&S;return(0,b.jsxs)(s.ZP,{container:!0,alignItems:"center",children:[(0,b.jsx)(s.ZP,{item:!0,xs:!0,children:(0,b.jsxs)(d.Z,{htmlFor:m,className:y.inputLabel,children:[(0,b.jsx)("span",{children:l}),""!==g&&(0,b.jsx)("div",{className:y.tooltipContainer,children:(0,b.jsx)(u.Z,{title:g,placement:"top-start",children:(0,b.jsx)("div",{children:(0,b.jsx)(x.Z,{})})})})]})}),(0,b.jsx)(s.ZP,{item:!0,xs:!0,className:y.radioOptionsLayout,children:(0,b.jsx)(r.Z,{"aria-label":m,id:m,name:f,value:o,onChange:h,row:!k,style:{display:"block",textAlign:"right"},children:t.map((function(e){return(0,b.jsx)(c.Z,{value:e.value,control:(0,b.jsx)(j,{}),label:e.label,disabled:Z,className:(0,a.Z)(y.optionLabel,(0,i.Z)({},y.checkedOption,e.value===o))},"rd-".concat(f,"-").concat(e.value))}))})})]})}))},9505:function(e,n,t){var i=t(70885),o=t(72791),a=t(81207);n.Z=function(e,n){var t=(0,o.useState)(!1),s=(0,i.Z)(t,2),r=s[0],c=s[1];return[r,function(t,i,o){c(!0),a.Z.invoke(t,i,o).then((function(n){c(!1),e(n)})).catch((function(e){c(!1),n(e)}))}]}},23508:function(e,n,t){var i=t(1413),o=t(72791),a=t(5574),s=t(65661),r=t(39157),c=t(97123),l=t(36151),d=t(59860),u=t(13400),m=t(29823),f=t(11135),h=t(25787),p=t(23814),x=t(80184);n.Z=(0,h.Z)((function(e){return(0,f.Z)((0,i.Z)({},p.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,f=e.onClose,h=e.onCancel,p=e.onConfirm,b=e.classes,g=void 0===b?{}:b,j=e.title,v=void 0===j?"":j,Z=e.isLoading,y=e.confirmationContent,S=e.cancelText,k=void 0===S?"Cancel":S,C=e.confirmText,w=void 0===C?"Confirm":C,N=e.confirmButtonProps,E=void 0===N?{}:N,I=e.cancelButtonProps,_=void 0===I?{}:I,F=e.titleIcon,T=void 0===F?null:F;return(0,x.jsxs)(a.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&f()},className:g.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,x.jsxs)(s.Z,{className:g.title,children:[(0,x.jsxs)("div",{className:g.titleText,children:[T," ",v]}),(0,x.jsx)("div",{className:g.closeContainer,children:(0,x.jsx)(u.Z,{"aria-label":"close",className:g.closeButton,onClick:f,disableRipple:!0,size:"small",children:(0,x.jsx)(m.Z,{})})})]}),(0,x.jsx)(r.Z,{className:g.content,children:y}),(0,x.jsxs)(c.Z,{className:g.actions,children:[(0,x.jsx)(l.Z,(0,i.Z)((0,i.Z)({className:g.cancelButton,onClick:h||f,disabled:Z,type:"button"},_),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:k})),(0,x.jsx)(d.Z,(0,i.Z)((0,i.Z)({className:g.confirmButton,type:"button",onClick:p,loading:Z,disabled:Z,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,x.jsx)(o.Fragment,{}),autoFocus:!0,id:"confirm-ok"},E),{},{children:w}))]})]})}))},56028:function(e,n,t){var i=t(70885),o=t(1413),a=t(72791),s=t(60364),r=t(13400),c=t(55646),l=t(5574),d=t(65661),u=t(39157),m=t(11135),f=t(25787),h=t(23814),p=t(42649),x=t(29823),b=t(28057),g=t(80184),j=(0,s.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:p.MK});n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,o.Z)((0,o.Z)({},h.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},h.sN))}))(j((function(e){var n=e.onClose,t=e.modalOpen,s=e.title,m=e.children,f=e.classes,h=e.wideLimit,p=void 0===h||h,j=e.modalSnackMessage,v=e.noContentPadding,Z=e.setModalSnackMessage,y=e.titleIcon,S=void 0===y?null:y,k=(0,a.useState)(!1),C=(0,i.Z)(k,2),w=C[0],N=C[1];(0,a.useEffect)((function(){Z("")}),[Z]),(0,a.useEffect)((function(){if(j){if(""===j.message)return void N(!1);"error"!==j.type&&N(!0)}}),[j]);var E=p?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},I="";return j&&(I=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(I=j.message)),(0,g.jsxs)(l.Z,(0,o.Z)((0,o.Z)({open:t,classes:f},E),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:f.root,children:[(0,g.jsxs)(d.Z,{className:f.title,children:[(0,g.jsxs)("div",{className:f.titleText,children:[S," ",s]}),(0,g.jsx)("div",{className:f.closeContainer,children:(0,g.jsx)(r.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,g.jsx)(x.Z,{})})})]}),(0,g.jsx)(b.Z,{isModal:!0}),(0,g.jsx)(c.Z,{open:w,className:f.snackBarModal,onClose:function(){N(!1),Z("")},message:I,ContentProps:{className:"".concat(f.snackBar," ").concat(j&&"error"===j.type?f.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,g.jsx)(u.Z,{className:v?"":f.content,children:m})]}))})))},32291:function(e,n,t){var i=t(72791),o=t(60364),a=t(61889),s=t(11135),r=t(25787),c=t(20890),l=t(13400),d=t(95466),u=t(84683),m=t(3925),f=t(74833),h=t(80184),p={toggleList:m.kQ},x=(0,o.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),p);n.Z=x((0,r.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,o=e.actions,s=e.sidebarOpen,r=e.operatorMode,m=e.managerObjects,p=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,h.jsx)(i.Fragment,{}):(0,h.jsxs)(a.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,h.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,h.jsx)("div",{className:n.logo,children:r?(0,h.jsx)(d.Z,{}):(0,h.jsx)(u.Z,{})}),(0,h.jsx)(c.Z,{variant:"h4",className:n.labelStyle,children:t})]}),x&&(0,h.jsx)(a.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,h.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.rightMenu,children:[o&&o,m&&m.length>0&&(0,h.jsx)(l.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){p()},id:"object-manager-toggle",size:"large",children:(0,h.jsx)(f.gx,{})})]})]})})))},14917:function(e,n,t){t(72791);var i=t(61889),o=t(11135),a=t(25787),s=t(80184);n.Z=(0,a.Z)((function(e){return(0,o.Z)({headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},screenTitle:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem",borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column"}},rightItems:{display:"flex",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.icon,o=e.title,a=e.subTitle,r=e.actions,c=e.className;return(0,s.jsx)(i.ZP,{container:!0,children:(0,s.jsxs)(i.ZP,{item:!0,xs:12,className:"".concat(n.screenTitle," ").concat(c||""),children:[(0,s.jsxs)("div",{className:n.leftItems,children:[t?(0,s.jsx)("div",{className:n.headerBarIcon,children:t}):null,(0,s.jsxs)("div",{className:n.titleColumn,children:[(0,s.jsx)("h1",{style:{margin:0},children:o}),(0,s.jsx)("span",{className:n.headerBarSubheader,children:a})]})]}),(0,s.jsx)("div",{className:n.rightItems,children:r})]})})}))},59114:function(e,n,t){var i=t(4942),o=t(1413),a=(t(72791),t(63466)),s=t(74900),r=t(27391),c=t(25787),l=t(11135),d=t(23814),u=t(80184);n.Z=(0,c.Z)((function(e){return(0,l.Z)({searchField:(0,o.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,o=e.classes,c=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,m=e.overrideClass,f=e.value,h=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(a.Z,{position:d,className:o.adornment,children:(0,u.jsx)(s.Z,{})}));return(0,u.jsx)(r.Z,{placeholder:t,className:m||o.searchField,id:"search-resource",label:"",InputProps:h,onChange:function(e){c(e.target.value)},variant:"standard",value:f})}))},98994:function(e,n,t){var i=t(72791),o=t(22338),a=t(79762),s=t(5171),r=t(80184),c={};n.Z=function(e){var n=e.rowRenderFunction,t=e.totalItems,l=e.defaultHeight,d=function(e){var t=e.index,i=e.style;return(0,r.jsx)("div",{style:i,children:n(t)})};return(0,r.jsx)(i.Fragment,{children:(0,r.jsx)(a.Z,{isItemLoaded:function(e){return!!c[e]},loadMoreItems:function(e,n){for(var t=e;t<=n;t++)c[t]=1;for(var i=e;i<=n;i++)c[i]=2},itemCount:t,children:function(e){var n=e.onItemsRendered,i=e.ref;return(0,r.jsx)(s.qj,{children:function(e){var a=e.width,s=e.height;return(0,r.jsx)(o.t7,{itemSize:l||220,height:s,itemCount:t,width:a,ref:i,onItemsRendered:n,children:d})}})}})})}},73669:function(e,n,t){var i=t(70885),o=t(64554),a=t(36151),s=t(21435),r=t(74833),c=t(72791),l=t(80184);n.Z=function(e){var n=e.value,t=(0,c.useState)(!1),d=(0,i.Z)(t,2),u=d[0],m=d[1];return(0,l.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",flexFlow:{sm:"row",xs:"column"}},children:[(0,l.jsx)(s.Z,{id:"inspect-dec-key",name:"inspect-dec-key",placeholder:"",label:"",type:u?"text":"password",onChange:function(){},value:n,overlayIcon:(0,l.jsx)(r.TI,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(n)}}),(0,l.jsx)(a.Z,{sx:{marginLeft:"10px"},variant:"contained",onClick:function(){return m(!u)},children:"Show/Hide"})]})}}}]); -//# sourceMappingURL=6233.7866b56a.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6233.7866b56a.chunk.js.map b/portal-ui/build/static/js/6233.7866b56a.chunk.js.map deleted file mode 100644 index 2a3bd9d18..000000000 --- a/portal-ui/build/static/js/6233.7866b56a.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/6233.7866b56a.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/ObjectBrowser/BrowserBreadcrumbs.tsx","screens/Console/Buckets/ListBuckets/UploadFilesButton.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/DetailsListPanel.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/ObjectMetaData.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ObjectActionButton.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ActionsListSection.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/IconWithLabel.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/utils.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/TagsModal.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/InspectObject.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ObjectDetailPanel.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjectsHelpers.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/VersionsNavigator.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx","screens/Console/Buckets/BucketDetails/BrowserHandler.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.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/Buckets/ListBuckets/Objects/utils.ts","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/FormComponents/RadioGroupSelector/RadioGroupSelector.tsx","screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/ScreenTitle/ScreenTitle.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Common/VirtualizedList/VirtualizedList.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 from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\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 get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport { connect } from \"react-redux\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { ObjectBrowserState } from \"./reducers\";\nimport { objectBrowserCommon } from \"../Common/FormComponents/common/styleLibrary\";\nimport { Link } from \"react-router-dom\";\nimport { encodeFileName } from \"../../../common/utils\";\nimport { BackCaretIcon, NewPathIcon } from \"../../../icons\";\nimport { IconButton, Tooltip } from \"@mui/material\";\nimport history from \"../../../history\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../common/SecureComponent/permissions\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { BucketObject } from \"../Buckets/ListBuckets/Objects/ListObjects/types\";\nimport { setVersionsModeEnabled } from \"./actions\";\n\nconst CreateFolderModal = withSuspense(\n React.lazy(\n () => import(\"../Buckets/ListBuckets/Objects/ListObjects/CreateFolderModal\")\n )\n);\n\ninterface ObjectBrowserReducer {\n objectBrowser: ObjectBrowserState;\n}\n\ninterface IObjectBrowser {\n classes: any;\n bucketName: string;\n internalPaths: string;\n rewindEnabled?: boolean;\n versionsMode: boolean;\n versionedFile: string;\n existingFiles: BucketObject[];\n additionalOptions?: React.ReactNode;\n setVersionsModeEnabled: typeof setVersionsModeEnabled;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...objectBrowserCommon,\n });\n\nconst BrowserBreadcrumbs = ({\n classes,\n bucketName,\n internalPaths,\n rewindEnabled,\n existingFiles,\n versionsMode,\n versionedFile,\n setVersionsModeEnabled,\n additionalOptions,\n}: IObjectBrowser) => {\n const [createFolderOpen, setCreateFolderOpen] = useState(false);\n\n let paths = internalPaths;\n\n if (internalPaths !== \"\") {\n paths = `/${internalPaths}`;\n }\n\n const splitPaths = paths.split(\"/\").filter((path) => path !== \"\");\n let breadcrumbsMap = splitPaths.map((objectItem: string, index: number) => {\n const subSplit = splitPaths.slice(0, index + 1).join(\"/\");\n const route = `/buckets/${bucketName}/browse/${\n subSplit ? `${encodeFileName(subSplit)}` : ``\n }`;\n return (\n \n / \n {\n setVersionsModeEnabled(false);\n }}\n >\n {objectItem}\n \n \n );\n });\n\n let versionsItem: any[] = [];\n\n if (versionsMode) {\n versionsItem = [\n \n / {versionedFile} - Versions\n ,\n ];\n }\n\n const listBreadcrumbs: any[] = [\n \n {\n setVersionsModeEnabled(false);\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 setVersionsModeEnabled(false);\n } else {\n history.goBack();\n }\n };\n\n return (\n \n {createFolderOpen && (\n \n )}\n \n \n \n \n \n {\n setCreateFolderOpen(true);\n }}\n disabled={\n rewindEnabled ||\n !hasPermission(bucketName, [IAM_SCOPES.S3_PUT_OBJECT])\n }\n disableTouchRipple\n disableRipple\n focusRipple={false}\n sx={{\n padding: 0,\n paddingLeft: \"6px\",\n }}\n >\n \n \n \n
    \n {listBreadcrumbs}\n
    \n {additionalOptions && (\n
    {additionalOptions}
    \n )}\n
    \n
    \n );\n};\n\nconst mapStateToProps = ({ objectBrowser }: ObjectBrowserReducer) => ({\n rewindEnabled: get(objectBrowser, \"rewind.rewindEnabled\", false),\n versionsMode: get(objectBrowser, \"versionsMode\", false),\n versionedFile: get(objectBrowser, \"versionedFile\", \"\"),\n});\n\nconst mapDispatchToProps = {\n setVersionsModeEnabled,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(BrowserBreadcrumbs));\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 { Theme } from \"@mui/material/styles\";\nimport { Menu, MenuItem } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport { UploadFolderIcon, UploadIcon } from \"../../../../icons\";\nimport RBIconButton from \"../BucketDetails/SummaryItems/RBIconButton\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport { hasPermission } from \"../../../../common/SecureComponent\";\n\ninterface IUploadFilesButton {\n uploadPath: string;\n bucketName: string;\n forceDisable?: boolean;\n uploadFileFunction: (closeFunction: () => void) => void;\n uploadFolderFunction: (closeFunction: () => void) => void;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n listUploadIcons: {\n height: 20,\n \"& .min-icon\": {\n width: 18,\n fill: \"rgba(0,0,0,0.87)\",\n },\n },\n });\n\nconst UploadFilesButton = ({\n uploadPath,\n bucketName,\n forceDisable = false,\n uploadFileFunction,\n uploadFolderFunction,\n classes,\n}: IUploadFilesButton) => {\n const [anchorEl, setAnchorEl] = React.useState(null);\n const openUploadMenu = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n const handleCloseUpload = () => {\n setAnchorEl(null);\n };\n\n const uploadObjectAllowed = hasPermission(uploadPath, [\n IAM_SCOPES.S3_PUT_OBJECT,\n ]);\n const uploadFolderAllowed = hasPermission(\n bucketName,\n [IAM_SCOPES.S3_PUT_OBJECT],\n false,\n true\n );\n\n const uploadEnabled: boolean = uploadObjectAllowed || uploadFolderAllowed;\n\n return (\n \n }\n color=\"primary\"\n variant={\"contained\"}\n disabled={forceDisable || !uploadEnabled}\n />\n {\n handleCloseUpload();\n }}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"center\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"center\",\n }}\n >\n {\n uploadFileFunction(handleCloseUpload);\n }}\n disabled={!uploadObjectAllowed || forceDisable}\n >\n \n \n \n Upload File\n \n {\n uploadFolderFunction(handleCloseUpload);\n }}\n disabled={!uploadFolderAllowed || forceDisable}\n >\n \n \n \n Upload Folder\n \n \n \n );\n};\n\nexport default withStyles(styles)(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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton } from \"@mui/material\";\nimport { ClosePanelIcon } from \"../../../../../../icons\";\n\ninterface IDetailsListPanel {\n classes: any;\n open: boolean;\n closePanel: () => void;\n children: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n detailsList: {\n borderColor: \"#EAEDEE\",\n backgroundColor: \"#fff\",\n borderWidth: 0,\n borderStyle: \"solid\",\n borderRadius: 3,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n width: 0,\n transitionDuration: \"0.3s\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n position: \"relative\",\n opacity: 0,\n marginLeft: -1,\n \"&.open\": {\n width: 300,\n minWidth: 300,\n borderTopWidth: 1,\n borderBottomWidth: 1,\n borderRightWidth: 1,\n borderLeftWidth: 1,\n opacity: 1,\n },\n },\n closePanel: {\n position: \"absolute\",\n right: 0,\n top: 8,\n \"& .min-icon\": {\n width: 14,\n },\n },\n });\n\nconst DetailsListPanel = ({\n classes,\n open,\n closePanel,\n children,\n}: IDetailsListPanel) => {\n return (\n \n \n \n \n {children}\n \n );\n};\n\nexport default withStyles(styles)(DetailsListPanel);\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) => num + 1);\n\nconst currentYear = new Date().getFullYear();\n\nexport const years = Array.from(\n Array(25),\n (_, numYear) => numYear + currentYear\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 useState,\n forwardRef,\n useImperativeHandle,\n useEffect,\n} from \"react\";\nimport clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport { SelectChangeEvent } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport FormControl from \"@mui/material/FormControl\";\nimport Select from \"@mui/material/Select\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport InputBase from \"@mui/material/InputBase\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport FormSwitchWrapper from \"../FormSwitchWrapper/FormSwitchWrapper\";\nimport { days, months, validDate, years } from \"./utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateInput: {\n \"&:not(:last-child)\": {\n marginRight: 22,\n },\n },\n ...fieldBasic,\n ...tooltipHelper,\n labelContainer: {\n flex: 1,\n },\n fieldContainer: {\n ...fieldBasic.fieldContainer,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingBottom: 10,\n marginTop: 11,\n marginBottom: 6,\n },\n fieldContainerBorder: {\n borderBottom: \"#9c9c9c 1px solid\",\n marginBottom: 20,\n },\n });\n\nconst SelectStyled = withStyles((theme: Theme) =>\n createStyles({\n root: {\n \"& .MuiSelect-icon\": {\n color: \"#000\",\n \"&.Mui-disabled\": {\n color: \"#9c9c9c\",\n },\n },\n },\n input: {\n borderBottom: 0,\n fontSize: 12,\n },\n })\n)(InputBase);\n\ninterface IDateSelectorProps {\n classes: any;\n id: string;\n label: string;\n disableOptions?: boolean;\n addSwitch?: 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 classes,\n id,\n label,\n disableOptions = false,\n addSwitch = false,\n tooltip = \"\",\n borderBottom = false,\n onDateChange,\n value = \"\",\n }: IDateSelectorProps,\n ref: any\n ) => {\n useImperativeHandle(ref, () => ({ resetDate }));\n\n const [dateEnabled, setDateEnabled] = useState(false);\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 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 if (addSwitch) {\n return !dateEnabled;\n } else {\n return false;\n }\n };\n\n const onMonthChange = (e: SelectChangeEvent) => {\n setMonth(e.target.value as string);\n };\n\n const onDayChange = (e: SelectChangeEvent) => {\n setDay(e.target.value as string);\n };\n\n const onYearChange = (e: SelectChangeEvent) => {\n setYear(e.target.value as string);\n };\n\n return (\n \n
    \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n {addSwitch && (\n {\n setDateEnabled(e.target.checked);\n if (!e.target.checked) {\n onDateChange(\"\", true);\n }\n }}\n switchOnly\n />\n )}\n
    \n
    \n
    \n \n }\n >\n \n {\"\"}\n \n {months.map((option) => (\n \n {option.label}\n \n ))}\n \n \n \n }\n >\n \n {\"\"}\n \n {days.map((dayNumber) => (\n \n {dayNumber}\n \n ))}\n \n \n \n }\n >\n \n {\"\"}\n \n {years.map((year) => (\n \n {year}\n \n ))}\n \n \n
    \n \n );\n }\n);\n\nexport default withStyles(styles)(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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport Button from \"@mui/material/Button\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { IFileInfo } from \"./types\";\nimport { setModalErrorSnackMessage } from \"../../../../../../actions\";\nimport { twoDigitDate } from \"../../../../Common/FormComponents/DateSelector/utils\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport RadioGroupSelector from \"../../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport DateSelector from \"../../../../Common/FormComponents/DateSelector/DateSelector\";\nimport api from \"../../../../../../common/api\";\nimport { encodeFileName } from \"../../../../../../common/utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n dateSelector: {\n \"& div\": {\n borderBottom: 0,\n marginBottom: 0,\n\n \"& div:nth-child(2)\": {\n border: \"1px solid #EAEAEA\",\n paddingLeft: 5,\n\n \"& div\": {\n border: 0,\n },\n },\n },\n },\n });\n\ninterface ISetRetentionProps {\n classes: any;\n open: boolean;\n closeModalAndRefresh: (updateInfo: boolean) => void;\n objectName: string;\n bucketName: string;\n objectInfo: IFileInfo;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\ninterface IRefObject {\n resetDate: () => void;\n}\n\nconst SetRetention = ({\n classes,\n open,\n closeModalAndRefresh,\n objectName,\n objectInfo,\n bucketName,\n setModalErrorSnackMessage,\n}: ISetRetentionProps) => {\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(objectInfo.retention_mode.toLowerCase());\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]);\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(\"\");\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\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/retention?prefix=${encodeFileName(\n selectedObject\n )}&version_id=${versionId}`,\n {\n expires: expireDate,\n mode: type,\n }\n )\n .then((res: any) => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(error);\n setIsSaving(false);\n });\n };\n\n const disableRetention = (\n selectedObject: string,\n versionId: string | null\n ) => {\n api\n .invoke(\n \"DELETE\",\n `/api/v1/buckets/${bucketName}/objects/retention?prefix=${encodeFileName(\n selectedObject\n )}&version_id=${versionId}`\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(error);\n setIsSaving(false);\n });\n };\n\n const saveNewRetentionPolicy = () => {\n setIsSaving(true);\n const selectedObject = objectInfo.name;\n const versionId = objectInfo.version_id;\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 Selected Object: {objectName}\n
    \n ) => {\n onSubmit(e);\n }}\n >\n {showSwitcher && (\n \n ) => {\n setStatusEnabled(!statusEnabled);\n }}\n label={\"Status\"}\n indicatorLabels={[\"Enabled\", \"Disabled\"]}\n />\n \n )}\n \n {\n setType(e.target.value);\n }}\n selectorOptions={[\n { label: \"Governance\", value: \"governance\" },\n { label: \"Compliance\", value: \"compliance\" },\n ]}\n />\n \n \n {\n setIsDateValid(isValid);\n if (isValid) {\n setDate(date);\n }\n }}\n />\n \n \n \n Reset\n \n \n Save\n \n \n \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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, { useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { decodeFileName } from \"../../../../../../common/utils\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport { ConfirmDeleteIcon } from \"../../../../../../icons\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IDeleteObjectProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObject: string;\n selectedBucket: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n versioning: boolean;\n selectedVersion?: string;\n}\n\nconst DeleteObject = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObject,\n setErrorSnackMessage,\n versioning,\n selectedVersion = \"\",\n}: IDeleteObjectProps) => {\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n const [deleteVersions, setDeleteVersions] = useState(false);\n\n if (!selectedObject) {\n return null;\n }\n const onConfirmDelete = () => {\n const decodedSelectedObject = decodeFileName(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 }`\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 {decodeFileName(selectedObject)}{\" \"}\n {selectedVersion !== \"\" ? (\n \n
    \n
    \n Version ID:\n
    \n {selectedVersion}\n
    \n ) : (\n \"\"\n )}\n ?
    \n
    \n {versioning && selectedVersion === \"\" && (\n {\n setDeleteVersions(!deleteVersions);\n }}\n description=\"\"\n />\n )}\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(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, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport Button from \"@mui/material/Button\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../../../actions\";\nimport { IFileInfo } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../../common/api\";\nimport { encodeFileName } from \"../../../../../../common/utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\ninterface ISetRetentionProps {\n classes: any;\n open: boolean;\n closeModalAndRefresh: (reload: boolean) => void;\n objectName: string;\n bucketName: string;\n actualInfo: IFileInfo;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst SetLegalHoldModal = ({\n classes,\n open,\n closeModalAndRefresh,\n objectName,\n bucketName,\n actualInfo,\n setModalErrorSnackMessage,\n}: ISetRetentionProps) => {\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\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/legalhold?prefix=${encodeFileName(\n objectName\n )}&version_id=${versionId}`,\n { status: legalHoldEnabled ? \"enabled\" : \"disabled\" }\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(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 Object: {bucketName}\n \n\n ) => {\n onSubmit(e);\n }}\n >\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 Clear\n \n \n Save\n \n \n \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(SetLegalHoldModal));\n","import React, { useCallback, useEffect, useState, Fragment } from \"react\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { MetadataResponse } from \"./types\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, Table, TableBody, TableCell, TableRow } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n detailsPanel,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { withStyles } from \"@mui/styles\";\n\ninterface IObjectMetadata {\n bucketName: string;\n internalPaths: string;\n classes?: any;\n actualInfo: any;\n linear?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n propertiesIcon: {\n marginLeft: 5,\n \"& .min-icon\": {\n height: 12,\n },\n },\n\n capitalizeFirst: {\n textTransform: \"capitalize\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n },\n titleCol: {\n width: \"25%\",\n },\n titleItem: {\n width: \"35%\",\n },\n ...spacingUtils,\n ...detailsPanel,\n });\n\nconst ObjectMetaData = ({\n bucketName,\n internalPaths,\n classes,\n actualInfo,\n linear = false,\n}: IObjectMetadata) => {\n const [metaData, setMetaData] = useState({});\n\n const onMetaDataSuccess = (res: MetadataResponse) => {\n let metadata = get(res, \"objectMetadata\", {});\n\n setMetaData(metadata);\n };\n const onMetaDataError = (err: ErrorResponseHandler) => false;\n\n const [, invokeMetaDataApi] = useApi(onMetaDataSuccess, onMetaDataError);\n\n const metaKeys = Object.keys(metaData);\n const loadMetaData = useCallback(() => {\n invokeMetaDataApi(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects/metadata?prefix=${internalPaths}`\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [bucketName, internalPaths, actualInfo]);\n\n useEffect(() => {\n if (actualInfo) {\n loadMetaData();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [actualInfo, loadMetaData]);\n\n if (linear) {\n return (\n \n {metaKeys.map((element: string, index: number) => {\n const renderItem = Array.isArray(metaData[element])\n ? metaData[element].map(decodeURIComponent).join(\", \")\n : decodeURIComponent(metaData[element]);\n\n return (\n \n {element}\n
    \n {renderItem}\n \n );\n })}\n
    \n );\n }\n\n return (\n \n \n \n Object Metadata\n \n \n\n \n \n \n {metaKeys.map((element: string, index: number) => {\n const renderItem = Array.isArray(metaData[element])\n ? metaData[element].map(decodeURIComponent).join(\", \")\n : decodeURIComponent(metaData[element]);\n\n return (\n \n \n {element}\n \n {renderItem}\n \n );\n })}\n \n
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ObjectMetaData);\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 { Button } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ntype ObjectActionButtonProps = {\n disabled?: boolean;\n onClick: () => void | any;\n icon: React.ReactNode;\n label: string;\n [x: string]: any;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: \"0 15px\",\n height: 22,\n margin: 0,\n color: \"#5E5E5E\",\n fontWeight: \"normal\",\n fontSize: 14,\n whiteSpace: \"nowrap\",\n width: \"100%\",\n justifyContent: \"flex-start\",\n \"&:hover\": {\n backgroundColor: \"transparent\",\n color: \"#000\",\n },\n \"& .min-icon\": {\n width: 11,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n });\n\nconst ObjectActionButton = ({\n disabled,\n onClick,\n icon,\n label,\n classes,\n ...restProps\n}: ObjectActionButtonProps) => {\n return (\n \n {label}\n \n );\n};\n\nexport default withStyles(styles)(ObjectActionButton);\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 ObjectActionButton from \"./ObjectActionButton\";\nimport { withStyles } from \"@mui/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { detailsPanel } from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nconst styles = () =>\n createStyles({\n ...detailsPanel,\n });\n\nexport interface MultiSelectionItem {\n action: () => void;\n label: string;\n disabled: boolean;\n icon: React.ReactNode;\n tooltip: string;\n}\n\ninterface IActionsListSectionProps {\n items: MultiSelectionItem[];\n title: string | React.ReactNode;\n classes: any;\n}\n\nconst ActionsListSection = ({\n items,\n classes,\n title,\n}: IActionsListSectionProps) => {\n return (\n \n
    {title}
    \n
      \n
    • Actions:
    • \n {items.map((actionItem, index) => {\n return (\n
    • \n \n
    • \n );\n })}\n
    \n
    \n );\n};\n\nexport default withStyles(styles)(ActionsListSection);\n","import React from \"react\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n fileName: {\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n fileNameText: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n });\n\nconst IconWithLabel = (props: {\n classes: any;\n icon: JSX.Element;\n strings: string[];\n}) => {\n return (\n
    \n {props.icon}\n \n {props.strings[props.strings.length - 1]}\n \n
    \n );\n};\n\nexport default withStyles(styles)(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 ObjectBrowserIcon from \"../../../../../../icons/ObjectBrowserIcon\";\nimport ObjectBrowserFolderIcon from \"../../../../../../icons/ObjectBrowserFolderIcon\";\nimport IconWithLabel from \"./IconWithLabel\";\n\nconst FileBookIcon = React.lazy(\n () => import(\"../../../../../../icons/FileBookIcon\")\n);\nconst FileCodeIcon = React.lazy(\n () => import(\"../../../../../../icons/FileCodeIcon\")\n);\nconst FileConfigIcon = React.lazy(\n () => import(\"../../../../../../icons/FileConfigIcon\")\n);\nconst FileDbIcon = React.lazy(\n () => import(\"../../../../../../icons/FileDbIcon\")\n);\nconst FileFontIcon = React.lazy(\n () => import(\"../../../../../../icons/FileFontIcon\")\n);\nconst FileImageIcon = React.lazy(\n () => import(\"../../../../../../icons/FileImageIcon\")\n);\nconst FileLockIcon = React.lazy(\n () => import(\"../../../../../../icons/FileLockIcon\")\n);\nconst FileMissingIcon = React.lazy(\n () => import(\"../../../../../../icons/FileMissingIcon\")\n);\nconst FileMusicIcon = React.lazy(\n () => import(\"../../../../../../icons/FileMusicIcon\")\n);\nconst FilePdfIcon = React.lazy(\n () => import(\"../../../../../../icons/FilePdfIcon\")\n);\nconst FilePptIcon = React.lazy(\n () => import(\"../../../../../../icons/FilePptIcon\")\n);\nconst FileTxtIcon = React.lazy(\n () => import(\"../../../../../../icons/FileTxtIcon\")\n);\nconst FileVideoIcon = React.lazy(\n () => import(\"../../../../../../icons/FileVideoIcon\")\n);\nconst FileXlsIcon = React.lazy(\n () => import(\"../../../../../../icons/FileXlsIcon\")\n);\nconst FileZipIcon = React.lazy(\n () => import(\"../../../../../../icons/FileZipIcon\")\n);\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: [\"txt\"],\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.substr(0, element.length - 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, { useState, Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { Box, Button, Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { setModalErrorSnackMessage } from \"../../../../../../actions\";\nimport { AppState } from \"../../../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../../../../common/api\";\nimport { encodeFileName } from \"../../../../../../common/utils\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { TagsIcon } from \"../../../../../../icons\";\nimport { IFileInfo } from \"./types\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../../../common/SecureComponent\";\nimport Chip from \"@mui/material/Chip\";\nimport CloseIcon from \"@mui/icons-material/Close\";\n\ninterface ITagModal {\n modalOpen: boolean;\n bucketName: string;\n actualInfo: IFileInfo;\n onCloseAndUpdate: (refresh: boolean) => void;\n distributedSetup: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n pathLabel: {\n marginTop: 0,\n marginBottom: 32,\n },\n newTileHeader: {\n fontSize: 18,\n fontWeight: \"bold\",\n color: \"#000\",\n margin: \"20px 0\",\n paddingBottom: 15,\n borderBottom: \"#E2E2E2 2px solid\",\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\nconst AddTagModal = ({\n modalOpen,\n onCloseAndUpdate,\n bucketName,\n distributedSetup,\n actualInfo,\n setModalErrorSnackMessage,\n classes,\n}: ITagModal) => {\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 = encodeFileName(actualInfo.name);\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\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/tags?prefix=${selectedObject}&version_id=${verID}`,\n { tags: newTagList }\n )\n .then((res: any) => {\n onCloseAndUpdate(true);\n setIsSending(false);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(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\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/tags?prefix=${selectedObject}&version_id=${verID}`,\n { tags: cleanObject }\n )\n .then((res: any) => {\n onCloseAndUpdate(true);\n setIsSending(false);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(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 return (\n \n {\n onCloseAndUpdate(true);\n }}\n titleIcon={}\n >\n {deleteEnabled ? (\n \n \n Are you sure you want to delete the tag{\" \"}\n \n {deleteKey} : {deleteLabel}\n {\" \"}\n from {currentItem}?\n \n \n No\n \n \n Yes\n \n \n \n \n ) : (\n \n \n \n Current Tags:\n {currTagKeys.length === 0 ? \"No Tags for this object\" : \"\"}\n \n {currTagKeys.map((tagKey: string, index: number) => {\n const tag = get(currentTags, `${tagKey}`, \"\");\n if (tag !== \"\") {\n return (\n \n }\n onDelete={() => {\n onDeleteTag(tagKey, tag);\n }}\n />\n \n );\n }\n return null;\n })}\n \n \n \n \n \n \n Add New Tag\n \n \n {\n setNewKey(e.target.value);\n }}\n />\n \n \n {\n setNewLabel(e.target.value);\n }}\n />\n \n \n \n Clear\n \n \n Save new Tag\n \n \n \n \n \n )}\n \n \n );\n};\n\nconst mapStateToProps = ({ system }: AppState) => ({\n distributedSetup: get(system, \"distributedSetup\", false),\n});\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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 { connect } from \"react-redux\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport {\n decodeFileName,\n deleteCookie,\n getCookieValue,\n performDownload,\n} from \"../../../../../../common/utils\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { InspectMenuIcon } from \"../../../../../../icons/SidebarMenus\";\nimport Button from \"@mui/material/Button\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { PasswordKeyIcon } from \"../../../../../../icons\";\nimport { Box, DialogContentText } from \"@mui/material\";\nimport KeyRevealer from \"../../../../Tools/KeyRevealer\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\ninterface IInspectObjectProps {\n classes: any;\n closeInspectModalAndRefresh: (refresh: boolean) => void;\n inspectOpen: boolean;\n inspectPath: string;\n volumeName: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst InspectObject = ({\n classes,\n closeInspectModalAndRefresh,\n inspectOpen,\n inspectPath,\n volumeName,\n setErrorSnackMessage,\n}: IInspectObjectProps) => {\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 = encodeURIComponent(inspectPath + \"/xl.meta\");\n const volume = encodeURIComponent(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 setErrorSnackMessage({\n errorMessage: resErr.message,\n detailedError: resErr.code,\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 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 {decodeFileName(inspectPath)}?{\" \"}\n
    \n {\n setIsEncrypt(!isEncrypt);\n }}\n description=\"\"\n />\n \n \n Inspect\n \n \n \n \n )}\n {decryptionKey ? (\n }\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 \n ) : null}\n
    \n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(InspectObject));\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 { connect } from \"react-redux\";\nimport { Box, Button, LinearProgress } from \"@mui/material\";\nimport { withStyles } from \"@mui/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n actionsTray,\n buttonsStyles,\n spacingUtils,\n textStyleUtils,\n detailsPanel,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { IFileInfo } from \"../ObjectDetails/types\";\nimport { download, extensionPreview } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../../../actions\";\nimport {\n decodeFileName,\n encodeFileName,\n niceBytes,\n niceBytesInt,\n niceDaysInt,\n} from \"../../../../../../common/utils\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport {\n completeObject,\n setLoadingObjectInfo,\n setLoadingVersions,\n setNewObject,\n setSelectedVersion,\n setVersionsModeEnabled,\n updateProgress,\n} from \"../../../../ObjectBrowser/actions\";\nimport { AppState } from \"../../../../../../store\";\nimport {\n LegalHoldIcon,\n MetadataIcon,\n ObjectInfoIcon,\n PreviewIcon,\n RetentionIcon,\n TagsIcon,\n VersionsIcon,\n} from \"../../../../../../icons\";\nimport { InspectMenuIcon } from \"../../../../../../icons/SidebarMenus\";\nimport { ShareIcon, DownloadIcon, DeleteIcon } from \"../../../../../../icons\";\nimport api from \"../../../../../../common/api\";\nimport ShareFile from \"../ObjectDetails/ShareFile\";\nimport SetRetention from \"../ObjectDetails/SetRetention\";\nimport DeleteObject from \"../ListObjects/DeleteObject\";\nimport SetLegalHoldModal from \"../ObjectDetails/SetLegalHoldModal\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../../../../common/SecureComponent\";\nimport PreviewFileModal from \"../Preview/PreviewFileModal\";\nimport ObjectMetaData from \"../ObjectDetails/ObjectMetaData\";\nimport ActionsListSection from \"./ActionsListSection\";\nimport { displayFileIconName } from \"./utils\";\nimport TagsModal from \"../ObjectDetails/TagsModal\";\nimport InspectObject from \"./InspectObject\";\n\nconst styles = () =>\n createStyles({\n ObjectDetailsTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n objectNameContainer: {\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n alignItems: \"center\",\n marginLeft: 10,\n },\n headerForSection: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n paddingBottom: 15,\n borderBottom: \"#E2E2E2 2px solid\",\n fontWeight: \"bold\",\n fontSize: 18,\n color: \"#000\",\n margin: \"20px 22px\",\n },\n capitalizeFirst: {\n textTransform: \"capitalize\",\n },\n ...buttonsStyles,\n ...actionsTray,\n ...spacingUtils,\n ...textStyleUtils,\n ...detailsPanel,\n });\n\ninterface IObjectDetailPanelProps {\n classes: any;\n internalPaths: string;\n bucketName: string;\n rewindEnabled: boolean;\n rewindDate: any;\n bucketToRewind: string;\n distributedSetup: boolean;\n versioning: boolean;\n locking: boolean;\n versionsMode: boolean;\n selectedVersion: string;\n loadingObjectInfo: boolean;\n onClosePanel: (hardRefresh: boolean) => void;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setSnackBarMessage: typeof setSnackBarMessage;\n setNewObject: typeof setNewObject;\n updateProgress: typeof updateProgress;\n completeObject: typeof completeObject;\n setVersionsModeEnabled: typeof setVersionsModeEnabled;\n setLoadingObjectInfo: typeof setLoadingObjectInfo;\n setLoadingVersions: typeof setLoadingVersions;\n setSelectedVersion: typeof setSelectedVersion;\n}\n\nconst emptyFile: IFileInfo = {\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: null,\n};\n\nconst ObjectDetailPanel = ({\n classes,\n internalPaths,\n bucketName,\n distributedSetup,\n versioning,\n locking,\n setErrorSnackMessage,\n setNewObject,\n updateProgress,\n completeObject,\n versionsMode,\n selectedVersion,\n onClosePanel,\n setVersionsModeEnabled,\n loadingObjectInfo,\n setLoadingObjectInfo,\n setLoadingVersions,\n setSelectedVersion,\n}: IObjectDetailPanelProps) => {\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\n const internalPathsDecoded = decodeFileName(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) {\n objectNameArray = actualInfo.name.split(\"/\");\n }\n\n useEffect(() => {\n if (bucketName !== \"\" && internalPaths) {\n setLoadingObjectInfo(true);\n }\n }, [internalPaths, bucketName, setLoadingObjectInfo]);\n\n useEffect(() => {\n if (distributedSetup && allInfoElements.length >= 1) {\n let infoElement =\n allInfoElements.find((el: IFileInfo) => el.is_latest) || emptyFile;\n\n if (selectedVersion !== \"\") {\n infoElement =\n allInfoElements.find(\n (el: IFileInfo) => el.version_id === selectedVersion\n ) || emptyFile;\n }\n\n setActualInfo(infoElement);\n }\n }, [selectedVersion, distributedSetup, allInfoElements]);\n\n useEffect(() => {\n if (loadingObjectInfo && internalPaths !== \"\") {\n api\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects?prefix=${internalPaths}${\n distributedSetup ? \"&with_versions=true\" : \"\"\n }`\n )\n .then((res: IFileInfo[]) => {\n const result = get(res, \"objects\", []);\n if (distributedSetup) {\n setAllInfoElements(result);\n setVersions(result);\n const tVersionSize = result.reduce(\n (acc: number, currValue: IFileInfo) => {\n if (currValue?.size) {\n return acc + currValue.size;\n }\n return acc;\n },\n 0\n );\n\n setTotalVersionsSize(tVersionSize);\n } else {\n setActualInfo(result[0]);\n setVersions([]);\n }\n\n setLoadingObjectInfo(false);\n })\n .catch((error: ErrorResponseHandler) => {\n setErrorSnackMessage(error);\n setLoadingObjectInfo(false);\n });\n }\n }, [\n loadingObjectInfo,\n bucketName,\n internalPaths,\n setErrorSnackMessage,\n distributedSetup,\n selectedVersion,\n setLoadingObjectInfo,\n ]);\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 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 downloadObject = (object: IFileInfo) => {\n const identityDownload = encodeFileName(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`\n );\n\n setNewObject({\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: object.name,\n type: \"download\",\n waitingForFile: true,\n });\n\n download(\n bucketName,\n internalPaths,\n object.version_id,\n parseInt(object.size || \"0\"),\n (progress) => {\n updateProgress(identityDownload, progress);\n },\n () => {\n completeObject(identityDownload);\n }\n );\n };\n\n const closeDeleteModal = (closeAndReload: boolean) => {\n setDeleteOpen(false);\n\n if (closeAndReload && selectedVersion === \"\") {\n onClosePanel(true);\n } else {\n setLoadingVersions(true);\n setSelectedVersion(\"\");\n setLoadingObjectInfo(true);\n }\n };\n\n const closeAddTagModal = (reloadObjectData: boolean) => {\n setTagModalOpen(false);\n if (reloadObjectData) {\n setLoadingObjectInfo(true);\n }\n };\n\n const closeInspectModal = (reloadObjectData: boolean) => {\n setInspectModalOpen(false);\n if (reloadObjectData) {\n setLoadingObjectInfo(true);\n }\n };\n\n const closeLegalholdModal = (reload: boolean) => {\n setLegalholdOpen(false);\n if (reload) {\n setLoadingObjectInfo(true);\n }\n };\n\n if (!actualInfo) {\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\n const multiActionButtons = [\n {\n action: () => {\n downloadObject(actualInfo);\n },\n label: \"Download\",\n disabled:\n !!actualInfo.is_delete_marker ||\n !hasPermission(objectResources, [IAM_SCOPES.S3_GET_OBJECT]),\n icon: ,\n tooltip: \"Download this Object\",\n },\n {\n action: () => {\n shareObject();\n },\n label: \"Share\",\n disabled:\n !!actualInfo.is_delete_marker ||\n !hasPermission(objectResources, [IAM_SCOPES.S3_GET_OBJECT]),\n icon: ,\n tooltip: \"Share this File\",\n },\n {\n action: () => {\n setPreviewOpen(true);\n },\n label: \"Preview\",\n disabled:\n !!actualInfo.is_delete_marker ||\n extensionPreview(currentItem) === \"none\" ||\n !hasPermission(objectResources, [IAM_SCOPES.S3_GET_OBJECT]),\n icon: ,\n tooltip: \"Preview this File\",\n },\n {\n action: () => {\n setLegalholdOpen(true);\n },\n label: \"Legal Hold\",\n disabled:\n !locking ||\n !distributedSetup ||\n !!actualInfo.is_delete_marker ||\n !hasPermission(bucketName, [IAM_SCOPES.S3_PUT_OBJECT_LEGAL_HOLD]) ||\n selectedVersion !== \"\",\n icon: ,\n tooltip: \"Change Legal Hold rules for this File\",\n },\n {\n action: openRetentionModal,\n label: \"Retention\",\n disabled:\n !distributedSetup ||\n !!actualInfo.is_delete_marker ||\n !hasPermission(objectResources, [IAM_SCOPES.S3_GET_OBJECT_RETENTION]) ||\n selectedVersion !== \"\",\n icon: ,\n tooltip: \"Change Retention rules for this File\",\n },\n {\n action: () => {\n setTagModalOpen(true);\n },\n label: \"Tags\",\n disabled:\n !!actualInfo.is_delete_marker ||\n selectedVersion !== \"\" ||\n !hasPermission(objectResources, [IAM_SCOPES.S3_PUT_OBJECT_TAGGING]),\n icon: ,\n tooltip: \"Change Tags for this File\",\n },\n {\n action: () => {\n setInspectModalOpen(true);\n },\n label: \"Inspect\",\n disabled:\n !distributedSetup ||\n !!actualInfo.is_delete_marker ||\n selectedVersion !== \"\" ||\n !hasPermission(objectResources, [IAM_SCOPES.ADMIN_INSPECT_DATA]),\n icon: ,\n tooltip: \"Inspect this file\",\n },\n {\n action: () => {\n setVersionsModeEnabled(!versionsMode, objectName);\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 !hasPermission(objectResources, [\n IAM_SCOPES.S3_GET_BUCKET_VERSIONING,\n IAM_SCOPES.S3_PUT_BUCKET_VERSIONING,\n IAM_SCOPES.S3_GET_OBJECT_VERSION,\n ]),\n tooltip: \"Display Versions for this file\",\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\n {!actualInfo && (\n \n \n \n )}\n\n \n {displayFileIconName(objectName, true)}\n {objectName}\n \n }\n items={multiActionButtons}\n />\n\n \n \n }\n color=\"secondary\"\n variant={\"outlined\"}\n onClick={() => {\n setDeleteOpen(true);\n }}\n disabled={selectedVersion === \"\" && actualInfo.is_delete_marker}\n sx={{\n width: \"calc(100% - 44px)\",\n margin: \"8px 0\",\n \"& svg.min-icon\": {\n width: 14,\n height: 14,\n },\n }}\n >\n Delete{selectedVersion !== \"\" ? \" version\" : \"\"}\n \n \n \n \n Object Info\n \n \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 \n Metadata\n \n \n \n {actualInfo ? (\n \n ) : null}\n \n
    \n );\n};\n\nconst mapStateToProps = ({ objectBrowser, system }: AppState) => ({\n rewindEnabled: get(objectBrowser, \"rewind.rewindEnabled\", false),\n rewindDate: get(objectBrowser, \"rewind.dateToRewind\", null),\n bucketToRewind: get(objectBrowser, \"rewind.bucketToRewind\", \"\"),\n distributedSetup: get(system, \"distributedSetup\", false),\n versionsMode: get(objectBrowser, \"versionsMode\", false),\n selectedVersion: get(objectBrowser, \"selectedVersion\", \"\"),\n loadingObjectInfo: get(objectBrowser, \"loadingObjectInfo\", false),\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n setSnackBarMessage,\n setNewObject,\n updateProgress,\n completeObject,\n setVersionsModeEnabled,\n setLoadingObjectInfo,\n setLoadingVersions,\n setSelectedVersion,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(ObjectDetailPanel));\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 * as reactMoment from \"react-moment\";\nimport { BucketObject } from \"./types\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport { displayFileIconName } from \"./utils\";\n\n// Functions\n\nexport const displayParsedDate = (object: BucketObject) => {\n if (object.name.endsWith(\"/\")) {\n return \"\";\n }\n return {object.last_modified};\n};\n\nexport const displayNiceBytes = (object: BucketObject) => {\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: 60,\n contentTextAlign: \"center\",\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: 60,\n contentTextAlign: \"center\",\n enableSort: true,\n },\n {\n label: \"Deleted\",\n elementKey: \"delete_flag\",\n renderFunction: displayDeleteFlag,\n width: 60,\n contentTextAlign: \"center\",\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, { useState } from \"react\";\nimport { DialogContentText } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { modalBasic } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { encodeFileName } from \"../../../../../../common/utils\";\nimport api from \"../../../../../../common/api\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport RecoverIcon from \"../../../../../../icons/RecoverIcon\";\n\ninterface IRestoreFileVersion {\n classes: any;\n restoreOpen: boolean;\n bucketName: string;\n versionID: string;\n objectPath: string;\n onCloseAndUpdate: (refresh: boolean) => void;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n });\n\nconst RestoreFileVersion = ({\n classes,\n versionID,\n bucketName,\n objectPath,\n restoreOpen,\n onCloseAndUpdate,\n}: IRestoreFileVersion) => {\n const [restoreLoading, setRestoreLoading] = useState(false);\n\n const restoreVersion = () => {\n setRestoreLoading(true);\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/restore?prefix=${encodeFileName(\n objectPath\n )}&version_id=${versionID}`\n )\n .then((res: any) => {\n setRestoreLoading(false);\n onCloseAndUpdate(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setErrorSnackMessage(error);\n setRestoreLoading(false);\n });\n };\n\n return (\n }\n onConfirm={restoreVersion}\n confirmButtonProps={{\n color: \"secondary\",\n variant: \"outlined\",\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 {versionID}?\n
    \n }\n />\n );\n};\n\nconst mapStateToProps = null;\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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 * as reactMoment from \"react-moment\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { withStyles } from \"@mui/styles\";\nimport { displayFileIconName } from \"../ListObjects/utils\";\nimport { IFileInfo } from \"./types\";\nimport { IconButton, Tooltip } from \"@mui/material\";\nimport {\n DownloadIcon,\n PreviewIcon,\n RecoverIcon,\n ShareIcon,\n} from \"../../../../../../icons\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport SpecificVersionPill from \"./SpecificVersionPill\";\n\ninterface IFileVersionItem {\n fileName: string;\n versionInfo: IFileInfo;\n index: number;\n isSelected?: boolean;\n onShare: (versionInfo: IFileInfo) => void;\n onDownload: (versionInfo: IFileInfo) => void;\n onRestore: (versionInfo: IFileInfo) => void;\n onPreview: (versionInfo: IFileInfo) => void;\n globalClick: (versionInfo: IFileInfo) => void;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n mainFileVersionItem: {\n borderBottom: \"#E2E2E2 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: \"#F8F8F8\",\n \"& > div\": {\n borderBottomColor: \"#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 },\n versionData: {\n marginRight: \"10px\",\n fontSize: 12,\n color: \"#868686\",\n },\n ctrItem: {\n position: \"relative\",\n \"&::before\": {\n content: \"' '\",\n display: \"block\",\n position: \"absolute\",\n width: \"2px\",\n height: \"calc(100% + 2px)\",\n backgroundColor: \"#F8F8F8\",\n left: \"24px\",\n },\n },\n });\n\nconst FileVersionItem = ({\n classes,\n fileName,\n versionInfo,\n isSelected,\n onShare,\n onDownload,\n onRestore,\n onPreview,\n globalClick,\n index,\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 return (\n {\n globalClick(versionInfo);\n }}\n >\n \n \n \n \n \n {displayFileIconName(fileName, true)} v{index.toString()}\n {pill && }\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 \n {versionInfo.last_modified}\n \n \n \n Size: {niceBytes(versionInfo.size || \"0\")}\n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(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, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { decodeFileName } from \"../../../../../../common/utils\";\nimport { ConfirmDeleteIcon } from \"../../../../../../icons\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport api from \"../../../../../../common/api\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\n\ninterface IDeleteNonCurrentProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObject: string;\n selectedBucket: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteNonCurrentVersions = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObject,\n setErrorSnackMessage,\n}: IDeleteNonCurrentProps) => {\n const [deleteLoading, setDeleteLoading] = useState(false);\n const [typeConfirm, setTypeConfirm] = useState(\"\");\n\n useEffect(() => {\n if (deleteLoading) {\n api\n .invoke(\n \"DELETE\",\n `/api/v1/buckets/${selectedBucket}/objects?path=${selectedObject}&non_current_versions=true`\n )\n .then(() => {\n closeDeleteModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setErrorSnackMessage(error);\n setDeleteLoading(false);\n });\n }\n }, [\n deleteLoading,\n closeDeleteModalAndRefresh,\n setErrorSnackMessage,\n selectedObject,\n selectedBucket,\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 {decodeFileName(selectedObject)}?
    \n
    \n To continue please type YES, PROCEED in the box.\n \n ) => {\n setTypeConfirm(event.target.value);\n }}\n label=\"\"\n value={typeConfirm}\n />\n \n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(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 get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { withStyles } from \"@mui/styles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { LinearProgress, SelectChangeEvent } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport ShareFile from \"./ShareFile\";\nimport {\n actionsTray,\n buttonsStyles,\n containerForHeader,\n hrClass,\n tableStyles,\n spacingUtils,\n textStyleUtils,\n objectBrowserExtras,\n objectBrowserCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { IFileInfo } from \"./types\";\nimport { download } from \"../utils\";\nimport api from \"../../../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../../../actions\";\nimport { encodeFileName, niceBytesInt } from \"../../../../../../common/utils\";\nimport ScreenTitle from \"../../../../Common/ScreenTitle/ScreenTitle\";\nimport RestoreFileVersion from \"./RestoreFileVersion\";\nimport {\n completeObject,\n setLoadingObjectInfo,\n setLoadingVersions,\n setNewObject,\n setSelectedVersion,\n updateProgress,\n} from \"../../../../ObjectBrowser/actions\";\n\nimport { AppState } from \"../../../../../../store\";\nimport { DeleteNonCurrentIcon, VersionsIcon } from \"../../../../../../icons\";\nimport VirtualizedList from \"../../../../Common/VirtualizedList/VirtualizedList\";\nimport FileVersionItem from \"./FileVersionItem\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport PreviewFileModal from \"../Preview/PreviewFileModal\";\nimport RBIconButton from \"../../../BucketDetails/SummaryItems/RBIconButton\";\nimport DeleteNonCurrent from \"../ListObjects/DeleteNonCurrent\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n versionsContainer: {\n border: \"#EAEDEE 1px solid\",\n padding: 10,\n },\n noBottomBorder: {\n borderBottom: 0,\n },\n versionsVirtualPanel: {\n flexGrow: 1,\n height: \"calc(100% - 120px)\",\n overflow: \"auto\",\n },\n screenTitleContainer: {\n position: \"relative\",\n \"&::before\": {\n content: \"' '\",\n display: \"block\",\n position: \"absolute\",\n width: \"2px\",\n backgroundColor: \"#F8F8F8\",\n left: \"24px\",\n height: \"52px\",\n bottom: 0,\n },\n },\n sortByLabel: {\n color: \"#838383\",\n fontWeight: \"bold\",\n whiteSpace: \"nowrap\",\n marginRight: 12,\n fontSize: 14,\n },\n ...hrClass,\n ...buttonsStyles,\n ...actionsTray,\n ...tableStyles,\n ...spacingUtils,\n ...textStyleUtils,\n ...objectBrowserCommon,\n ...objectBrowserExtras,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IVersionsNavigatorProps {\n classes: any;\n distributedSetup: boolean;\n internalPaths: string;\n bucketName: string;\n searchVersions: string;\n loadingVersions: boolean;\n selectedVersion: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setSnackBarMessage: typeof setSnackBarMessage;\n setNewObject: typeof setNewObject;\n updateProgress: typeof updateProgress;\n completeObject: typeof completeObject;\n setSelectedVersion: typeof setSelectedVersion;\n setLoadingVersions: typeof setLoadingVersions;\n setLoadingObjectInfo: typeof setLoadingObjectInfo;\n}\n\nconst emptyFile: IFileInfo = {\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: null,\n};\n\nconst VersionsNavigator = ({\n classes,\n distributedSetup,\n setErrorSnackMessage,\n setNewObject,\n updateProgress,\n searchVersions,\n loadingVersions,\n selectedVersion,\n completeObject,\n internalPaths,\n bucketName,\n setSelectedVersion,\n setLoadingVersions,\n setLoadingObjectInfo,\n}: IVersionsNavigatorProps) => {\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 const [sortValue, setSortValue] = useState(\"date\");\n const [previewOpen, setPreviewOpen] = useState(false);\n const [deleteNonCurrentOpen, setDeleteNonCurrentOpen] =\n useState(false);\n\n // calculate object name to display\n let objectNameArray: string[] = [];\n if (actualInfo) {\n objectNameArray = actualInfo.name.split(\"/\");\n }\n\n useEffect(() => {\n if (loadingVersions && internalPaths !== \"\") {\n api\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects?prefix=${internalPaths}${\n distributedSetup ? \"&with_versions=true\" : \"\"\n }`\n )\n .then((res: IFileInfo[]) => {\n const result = get(res, \"objects\", []);\n if (distributedSetup) {\n setActualInfo(\n result.find((el: IFileInfo) => el.is_latest) || emptyFile\n );\n setVersions(result);\n } else {\n setActualInfo(result[0]);\n setVersions([]);\n }\n\n setLoadingVersions(false);\n })\n .catch((error: ErrorResponseHandler) => {\n setErrorSnackMessage(error);\n setLoadingVersions(false);\n });\n }\n }, [\n setLoadingVersions,\n loadingVersions,\n bucketName,\n internalPaths,\n setErrorSnackMessage,\n distributedSetup,\n ]);\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 downloadObject = (object: IFileInfo) => {\n const identityDownload = encodeFileName(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`\n );\n\n setNewObject({\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: object.name,\n type: \"download\",\n waitingForFile: true,\n });\n\n download(\n bucketName,\n internalPaths,\n object.version_id,\n parseInt(object.size || \"0\"),\n (progress) => {\n updateProgress(identityDownload, progress);\n },\n () => {\n completeObject(identityDownload);\n }\n );\n };\n\n const onShareItem = (item: IFileInfo) => {\n setObjectToShare(item);\n shareObject();\n };\n\n const onPreviewItem = (item: IFileInfo) => {\n setObjectToShare(item);\n setPreviewOpen(true);\n };\n\n const onRestoreItem = (item: IFileInfo) => {\n setRestoreVersion(item.version_id || \"\");\n setRestoreVersionOpen(true);\n };\n\n const onDownloadItem = (item: IFileInfo) => {\n downloadObject(item);\n };\n\n const onGlobalClick = (item: IFileInfo) => {\n 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(\"\");\n\n if (reloadObjectData) {\n setLoadingVersions(true);\n setLoadingObjectInfo(true);\n }\n };\n\n const closeDeleteNonCurrent = (reloadAfterDelete: boolean) => {\n setDeleteNonCurrentOpen(false);\n\n if (reloadAfterDelete) {\n setLoadingVersions(true);\n setSelectedVersion(\"\");\n setLoadingObjectInfo(true);\n }\n };\n\n const totalSpace = versions.reduce((acc: number, currValue: IFileInfo) => {\n if (currValue.size) {\n return acc + parseInt(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 renderVersion = (elementIndex: number) => {\n const item = filteredRecords[elementIndex];\n const versOrd = versions.length - versions.indexOf(item);\n\n return (\n \n );\n };\n\n return (\n \n {shareFileModalOpen && actualInfo && (\n \n )}\n {restoreVersionOpen && actualInfo && (\n \n )}\n {previewOpen && actualInfo && (\n {\n setPreviewOpen(false);\n }}\n />\n )}\n {deleteNonCurrentOpen && (\n \n )}\n \n {!actualInfo && (\n \n \n \n )}\n\n {actualInfo && (\n \n \n \n \n
    \n }\n title={\n \n {objectNameArray.length > 0\n ? objectNameArray[objectNameArray.length - 1]\n : actualInfo.name}{\" \"}\n Versions\n \n }\n subTitle={\n \n \n \n \n {versions.length} Version\n {versions.length === 1 ? \"\" : \"s\"}   \n \n \n \n {niceBytesInt(totalSpace)}\n \n \n \n }\n actions={\n \n {\n setDeleteNonCurrentOpen(true);\n }}\n text={\"\"}\n icon={}\n color=\"secondary\"\n style={{ marginRight: 15 }}\n disabled={versions.length <= 1}\n />\n Sort by\n ) => {\n setSortValue(e.target.value as string);\n }}\n name={\"sort-by\"}\n options={[\n { label: \"Date\", value: \"date\" },\n {\n label: \"Size\",\n value: \"size\",\n },\n ]}\n />\n \n }\n className={classes.noBottomBorder}\n />\n \n \n {actualInfo.version_id && actualInfo.version_id !== \"null\" && (\n \n )}\n \n
    \n )}\n \n
    \n );\n};\n\nconst mapStateToProps = ({ system, objectBrowser }: AppState) => ({\n distributedSetup: get(system, \"distributedSetup\", false),\n searchVersions: objectBrowser.searchVersions,\n loadingVersions: objectBrowser.loadingVersions,\n selectedVersion: objectBrowser.selectedVersion,\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n setSnackBarMessage,\n setNewObject,\n updateProgress,\n completeObject,\n setSelectedVersion,\n setLoadingVersions,\n setLoadingObjectInfo,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(VersionsNavigator));\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 Fragment,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { connect } from \"react-redux\";\nimport { useDropzone } from \"react-dropzone\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { withRouter } from \"react-router-dom\";\nimport Grid from \"@mui/material/Grid\";\nimport get from \"lodash/get\";\nimport {\n BucketObject,\n BucketObjectsList,\n RewindObject,\n RewindObjectList,\n} from \"./types\";\nimport api from \"../../../../../../common/api\";\nimport TableWrapper, {\n ItemActions,\n} from \"../../../../Common/TableWrapper/TableWrapper\";\nimport {\n decodeFileName,\n encodeFileName,\n niceBytesInt,\n} from \"../../../../../../common/utils\";\n\nimport {\n actionsTray,\n containerForHeader,\n objectBrowserCommon,\n objectBrowserExtras,\n searchField,\n tableStyles,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { Badge, Typography } from \"@mui/material\";\nimport BrowserBreadcrumbs from \"../../../../ObjectBrowser/BrowserBreadcrumbs\";\nimport {\n completeObject,\n openList,\n resetRewind,\n setLoadingVersions,\n setNewObject,\n setSearchObjects,\n setShowDeletedObjects,\n setVersionsModeEnabled,\n updateProgress,\n} from \"../../../../ObjectBrowser/actions\";\nimport { Route } from \"../../../../ObjectBrowser/reducers\";\n\nimport { download, extensionPreview, sortListObjects } from \"../utils\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../../../actions\";\nimport {\n BucketInfo,\n BucketObjectLocking,\n BucketQuota,\n BucketVersioning,\n} from \"../../../types\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\n\nimport ScreenTitle from \"../../../../Common/ScreenTitle/ScreenTitle\";\n\nimport { setBucketDetailsLoad, setBucketInfo } from \"../../../actions\";\nimport { AppState } from \"../../../../../../store\";\nimport PageLayout from \"../../../../Common/Layout/PageLayout\";\n\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../../../../common/SecureComponent\";\n\nimport withSuspense from \"../../../../Common/Components/withSuspense\";\nimport {\n BucketsIcon,\n DownloadIcon,\n PreviewIcon,\n ShareIcon,\n} from \"../../../../../../icons\";\nimport UploadFilesButton from \"../../UploadFilesButton\";\nimport DetailsListPanel from \"./DetailsListPanel\";\nimport ObjectDetailPanel from \"./ObjectDetailPanel\";\nimport RBIconButton from \"../../../BucketDetails/SummaryItems/RBIconButton\";\nimport ActionsListSection from \"./ActionsListSection\";\nimport { listModeColumns, rewindModeColumns } from \"./ListObjectsHelpers\";\nimport VersionsNavigator from \"../ObjectDetails/VersionsNavigator\";\nimport CheckboxWrapper from \"../../../../Common/FormComponents/CheckboxWrapper/CheckboxWrapper\";\n\nconst HistoryIcon = React.lazy(\n () => import(\"../../../../../../icons/HistoryIcon\")\n);\nconst RefreshIcon = React.lazy(\n () => import(\"../../../../../../icons/RefreshIcon\")\n);\n\nconst DeleteIcon = React.lazy(\n () => import(\"../../../../../../icons/DeleteIcon\")\n);\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 styles = (theme: Theme) =>\n createStyles({\n browsePaper: {\n height: \"calc(100vh - 210px)\",\n \"&.actionsPanelOpen\": {\n minHeight: \"100%\",\n },\n },\n \"@global\": {\n \".rowLine:hover .iconFileElm\": {\n backgroundImage: \"url(/images/ob_file_filled.svg)\",\n },\n \".rowLine:hover .iconFolderElm\": {\n backgroundImage: \"url(/images/ob_folder_filled.svg)\",\n },\n },\n\n badgeOverlap: {\n \"& .MuiBadge-badge\": {\n top: 10,\n right: 1,\n width: 5,\n height: 5,\n minWidth: 5,\n },\n },\n screenTitle: {\n borderBottom: 0,\n paddingTop: 0,\n paddingLeft: 0,\n paddingRight: 0,\n },\n ...tableStyles,\n ...actionsTray,\n ...searchField,\n\n searchField: {\n ...searchField.searchField,\n maxWidth: 380,\n },\n screenTitleContainer: {\n border: \"#EAEDEE 1px solid\",\n borderBottom: 0,\n padding: \"0.8rem 15px 0\",\n },\n labelStyle: {\n color: \"#969FA8\",\n fontSize: \"12px\",\n },\n ...objectBrowserExtras,\n ...objectBrowserCommon,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst baseDnDStyle = {\n borderWidth: 2,\n borderRadius: 2,\n borderColor: \"#eeeeee\",\n outline: \"none\",\n};\n\nconst activeDnDStyle = {\n borderStyle: \"dashed\",\n backgroundColor: \"#fafafa\",\n borderColor: \"#2196f3\",\n};\n\nconst acceptDnDStyle = {\n borderStyle: \"dashed\",\n backgroundColor: \"#fafafa\",\n borderColor: \"#00e676\",\n};\n\ninterface IListObjectsProps {\n classes: any;\n match: any;\n history: any;\n routesList: Route[];\n downloadingFiles: string[];\n rewindEnabled: boolean;\n rewindDate: any;\n bucketToRewind: string;\n searchObjects: string;\n showDeleted: boolean;\n setSnackBarMessage: typeof setSnackBarMessage;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n resetRewind: typeof resetRewind;\n loadingBucket: boolean;\n setBucketInfo: typeof setBucketInfo;\n bucketInfo: BucketInfo | null;\n versionsMode: boolean;\n setBucketDetailsLoad: typeof setBucketDetailsLoad;\n setNewObject: typeof setNewObject;\n updateProgress: typeof updateProgress;\n completeObject: typeof completeObject;\n openList: typeof openList;\n setSearchObjects: typeof setSearchObjects;\n setVersionsModeEnabled: typeof setVersionsModeEnabled;\n setShowDeletedObjects: typeof setShowDeletedObjects;\n setLoadingVersions: typeof setLoadingVersions;\n}\n\nfunction useInterval(callback: any, delay: number) {\n const savedCallback = useRef(null);\n\n // Remember the latest callback.\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // Set up the interval.\n useEffect(() => {\n function tick() {\n if (savedCallback !== undefined && savedCallback.current) {\n savedCallback.current();\n }\n }\n\n if (delay !== null) {\n let id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n\nconst defLoading = Loading...;\n\nconst ListObjects = ({\n classes,\n match,\n history,\n rewindEnabled,\n rewindDate,\n bucketToRewind,\n setSnackBarMessage,\n setErrorSnackMessage,\n resetRewind,\n setBucketDetailsLoad,\n loadingBucket,\n setBucketInfo,\n bucketInfo,\n setNewObject,\n updateProgress,\n completeObject,\n setSearchObjects,\n searchObjects,\n versionsMode,\n openList,\n setVersionsModeEnabled,\n showDeleted,\n setShowDeletedObjects,\n setLoadingVersions,\n}: IListObjectsProps) => {\n const [records, setRecords] = useState([]);\n const [loading, setLoading] = useState(true);\n const [rewind, setRewind] = useState([]);\n const [loadingRewind, setLoadingRewind] = useState(false);\n const [deleteMultipleOpen, setDeleteMultipleOpen] = useState(false);\n const [loadingStartTime, setLoadingStartTime] = useState(0);\n const [loadingMessage, setLoadingMessage] =\n useState(defLoading);\n const [loadingVersioning, setLoadingVersioning] = useState(true);\n const [isVersioned, setIsVersioned] = useState(false);\n const [loadingLocking, setLoadingLocking] = useState(true);\n const [lockingEnabled, setLockingEnabled] = useState(false);\n const [rewindSelect, setRewindSelect] = useState(false);\n const [selectedObjects, setSelectedObjects] = useState([]);\n const [previewOpen, setPreviewOpen] = useState(false);\n const [selectedPreview, setSelectedPreview] = useState(\n null\n );\n const [shareFileModalOpen, setShareFileModalOpen] = useState(false);\n const [sortDirection, setSortDirection] = useState<\n \"ASC\" | \"DESC\" | undefined\n >(\"ASC\");\n const [currentSortField, setCurrentSortField] = useState(\"name\");\n const [iniLoad, setIniLoad] = useState(false);\n const [canShareFile, setCanShareFile] = useState(false);\n const [canPreviewFile, setCanPreviewFile] = useState(false);\n const [detailsOpen, setDetailsOpen] = useState(false);\n const [selectedInternalPaths, setSelectedInternalPaths] = useState<\n string | null\n >(null);\n const [quota, setQuota] = useState(null);\n\n const internalPaths = get(match.params, \"subpaths\", \"\");\n const bucketName = match.params[\"bucketName\"];\n\n const fileUpload = useRef(null);\n const folderUpload = useRef(null);\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\n if (extensionPreview(objectName) !== \"none\") {\n setCanPreviewFile(true);\n } else {\n setCanPreviewFile(false);\n }\n\n if (objectName.endsWith(\"/\")) {\n setCanShareFile(false);\n } else {\n setCanShareFile(true);\n }\n } else {\n setCanShareFile(false);\n setCanPreviewFile(false);\n }\n }, [selectedObjects]);\n\n useEffect(() => {\n if (!quota) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/quota`)\n .then((res: BucketQuota) => {\n let quotaVals = null;\n\n if (res.quota) {\n quotaVals = res;\n }\n\n setQuota(quotaVals);\n })\n .catch(() => {\n setQuota(null);\n });\n }\n }, [quota, bucketName]);\n\n useEffect(() => {\n if (selectedObjects.length > 0) {\n setDetailsOpen(true);\n return;\n }\n\n if (selectedObjects.length === 0 && selectedInternalPaths === null) {\n setDetailsOpen(false);\n }\n }, [selectedObjects, selectedInternalPaths]);\n\n const displayDeleteObject = hasPermission(bucketName, [\n IAM_SCOPES.S3_DELETE_OBJECT,\n ]);\n\n const displayListObjects = hasPermission(bucketName, [\n IAM_SCOPES.S3_LIST_BUCKET,\n ]);\n\n const updateMessage = () => {\n let timeDelta = Date.now() - loadingStartTime;\n\n if (timeDelta / 1000 >= 6) {\n setLoadingMessage(\n \n \n This operation is taking longer than expected... (\n {Math.ceil(timeDelta / 1000)}s)\n \n \n );\n } else if (timeDelta / 1000 >= 3) {\n setLoadingMessage(\n \n This operation is taking longer than expected...\n \n );\n }\n };\n\n useEffect(() => {\n if (!iniLoad) {\n setBucketDetailsLoad(true);\n setIniLoad(true);\n }\n }, [iniLoad, setBucketDetailsLoad, setIniLoad]);\n\n useInterval(() => {\n // Your custom logic here\n if (loading) {\n updateMessage();\n }\n }, 1000);\n\n useEffect(() => {\n if (loadingVersioning) {\n if (displayListObjects) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/versioning`)\n .then((res: BucketVersioning) => {\n setIsVersioned(res.is_versioned);\n setLoadingVersioning(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingVersioning(false);\n });\n } else {\n setLoadingVersioning(false);\n }\n }\n }, [bucketName, loadingVersioning, setErrorSnackMessage, displayListObjects]);\n\n useEffect(() => {\n if (loadingLocking) {\n if (displayListObjects) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/object-locking`)\n .then((res: BucketObjectLocking) => {\n setLockingEnabled(res.object_locking_enabled);\n setLoadingLocking(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingLocking(false);\n });\n } else {\n setLoadingLocking(false);\n }\n }\n }, [bucketName, loadingLocking, setErrorSnackMessage, displayListObjects]);\n\n // Rewind\n useEffect(() => {\n if (rewindEnabled) {\n if (bucketToRewind !== bucketName) {\n resetRewind();\n return;\n }\n\n if (rewindDate) {\n setLoadingRewind(true);\n const rewindParsed = rewindDate.toISOString();\n let pathPrefix = \"\";\n if (internalPaths) {\n const decodedPath = decodeFileName(internalPaths);\n pathPrefix = decodedPath.endsWith(\"/\")\n ? decodedPath\n : decodedPath + \"/\";\n }\n api\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/rewind/${rewindParsed}${\n pathPrefix ? `?prefix=${encodeFileName(pathPrefix)}` : ``\n }`\n )\n .then((res: RewindObjectList) => {\n setLoadingRewind(false);\n if (res.objects) {\n setRewind(res.objects);\n } else {\n setRewind([]);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingRewind(false);\n setErrorSnackMessage(err);\n });\n }\n }\n }, [\n rewindEnabled,\n rewindDate,\n bucketToRewind,\n bucketName,\n match,\n setErrorSnackMessage,\n resetRewind,\n internalPaths,\n ]);\n\n useEffect(() => {\n setLoading(true);\n setDetailsOpen(false);\n setSearchObjects(\"\");\n }, [internalPaths, setSearchObjects]);\n\n useEffect(() => {\n if (loading) {\n if (displayListObjects) {\n let pathPrefix = \"\";\n if (internalPaths) {\n const decodedPath = decodeFileName(internalPaths);\n pathPrefix = decodedPath.endsWith(\"/\")\n ? decodedPath\n : decodedPath + \"/\";\n }\n\n let currentTimestamp = Date.now();\n setLoadingStartTime(currentTimestamp);\n setLoadingMessage(defLoading);\n\n let urlTake = `/api/v1/buckets/${bucketName}/objects`;\n\n if (showDeleted) {\n const currDate = new Date();\n const currDateISO = currDate.toISOString();\n\n urlTake = `/api/v1/buckets/${bucketName}/rewind/${currDateISO}`;\n }\n\n api\n .invoke(\n \"GET\",\n `${urlTake}${\n pathPrefix ? `?prefix=${encodeFileName(pathPrefix)}` : ``\n }`\n )\n .then((res: BucketObjectsList) => {\n const records: BucketObject[] = res.objects || [];\n const folders: BucketObject[] = [];\n const files: BucketObject[] = [];\n\n records.forEach((record) => {\n // this is a folder\n if (record.name.endsWith(\"/\")) {\n folders.push(record);\n } else {\n // this is a file\n files.push(record);\n }\n });\n const recordsInElement = [...folders, ...files];\n setRecords(recordsInElement);\n // In case no objects were retrieved, We check if item is a file\n if (!res.objects && pathPrefix !== \"\") {\n if (rewindEnabled) {\n const rewindParsed = rewindDate.toISOString();\n\n let pathPrefix = \"\";\n if (internalPaths) {\n const decodedPath = decodeFileName(internalPaths);\n pathPrefix = decodedPath.endsWith(\"/\")\n ? decodedPath\n : decodedPath + \"/\";\n }\n api\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/rewind/${rewindParsed}${\n pathPrefix ? `?prefix=${encodeFileName(pathPrefix)}` : ``\n }`\n )\n .then((res: RewindObjectList) => {\n //It is a file since it has elements in the object, setting file flag and waiting for component mount\n if (res.objects === null) {\n //setFileModeEnabled(true);\n setLoadingRewind(false);\n setLoading(false);\n } else {\n // It is a folder, we remove loader\n setLoadingRewind(false);\n setLoading(false);\n //setFileModeEnabled(false);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingRewind(false);\n setLoading(false);\n setErrorSnackMessage(err);\n });\n } else {\n api\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects${\n internalPaths ? `?prefix=${internalPaths}` : ``\n }`\n )\n .then((res: BucketObjectsList) => {\n //It is a file since it has elements in the object, setting file flag and waiting for component mount\n if (!res.objects) {\n // It is a folder, we remove loader\n //setFileModeEnabled(false);\n setLoading(false);\n } else {\n // This code prevents the program from opening a file when a substring of that file is entered as a new folder.\n // Previously, if there was a file test1.txt and the folder test was created with the same prefix, the program\n // would open test1.txt instead\n let found = false;\n let pathPrefixChopped = pathPrefix.slice(\n 0,\n pathPrefix.length - 1\n );\n for (let i = 0; i < res.objects.length; i++) {\n if (res.objects[i].name === pathPrefixChopped) {\n found = true;\n }\n }\n if (\n (res.objects.length === 1 &&\n res.objects[0].name.endsWith(\"/\")) ||\n !found\n ) {\n //setFileModeEnabled(false);\n } else {\n //setFileModeEnabled(true);\n }\n\n setLoading(false);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setErrorSnackMessage(err);\n });\n }\n } else {\n //setFileModeEnabled(false);\n setLoading(false);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setErrorSnackMessage(err);\n });\n } else {\n setLoadingRewind(false);\n setLoading(false);\n }\n }\n }, [\n loading,\n match,\n setErrorSnackMessage,\n bucketName,\n rewindEnabled,\n rewindDate,\n internalPaths,\n bucketInfo,\n showDeleted,\n displayListObjects,\n ]);\n\n // bucket info\n useEffect(() => {\n if (loadingBucket) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}`)\n .then((res: BucketInfo) => {\n setBucketDetailsLoad(false);\n setBucketInfo(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setBucketDetailsLoad(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n bucketName,\n loadingBucket,\n setBucketDetailsLoad,\n setBucketInfo,\n setErrorSnackMessage,\n ]);\n\n const closeDeleteMultipleModalAndRefresh = (refresh: boolean) => {\n setDeleteMultipleOpen(false);\n\n if (refresh) {\n setSnackBarMessage(`Objects deleted successfully.`);\n setSelectedObjects([]);\n setLoading(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 (var 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 downloadObject = (object: BucketObject | RewindObject) => {\n const identityDownload = encodeFileName(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`\n );\n\n setNewObject({\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: object.name,\n type: \"download\",\n waitingForFile: true,\n });\n\n download(\n bucketName,\n encodeFileName(object.name),\n object.version_id,\n object.size,\n (progress) => {\n updateProgress(identityDownload, progress);\n },\n () => {\n completeObject(identityDownload);\n }\n );\n };\n\n const openPath = (idElement: string) => {\n setSelectedObjects([]);\n if (idElement.endsWith(\"/\")) {\n const newPath = `/buckets/${bucketName}/browse${\n idElement ? `/${encodeFileName(idElement)}` : ``\n }`;\n history.push(newPath);\n return;\n }\n\n setDetailsOpen(true);\n setLoadingVersions(true);\n setSelectedInternalPaths(\n `${idElement ? `${encodeFileName(idElement)}` : ``}`\n );\n };\n\n const uploadObject = useCallback(\n (files: File[], folderPath: string): void => {\n let pathPrefix = \"\";\n if (internalPaths) {\n const decodedPath = decodeFileName(internalPaths);\n pathPrefix = decodedPath.endsWith(\"/\")\n ? decodedPath\n : decodedPath + \"/\";\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 const blobFile = new Blob([file], { type: file.type });\n\n let encodedPath = \"\";\n const relativeFolderPath =\n get(file, \"webkitRelativePath\", \"\") !== \"\"\n ? get(file, \"webkitRelativePath\", \"\")\n : folderPath;\n\n if (path !== \"\" || relativeFolderPath !== \"\") {\n const finalFolderPath = relativeFolderPath\n .split(\"/\")\n .slice(0, -1)\n .join(\"/\");\n\n encodedPath = encodeFileName(\n `${path}${finalFolderPath}${\n !finalFolderPath.endsWith(\"/\") ? \"/\" : \"\"\n }`\n );\n }\n\n if (encodedPath !== \"\") {\n uploadUrl = `${uploadUrl}?prefix=${encodedPath}`;\n }\n\n const identity = encodeFileName(\n `${bucketName}-${encodedPath}-${new Date().getTime()}-${Math.random()}`\n );\n\n setNewObject({\n bucketName,\n done: false,\n instanceID: identity,\n percentage: 0,\n prefix: `${decodeFileName(encodedPath)}${fileName}`,\n type: \"upload\",\n waitingForFile: false,\n });\n\n let xhr = new XMLHttpRequest();\n xhr.open(\"POST\", uploadUrl, true);\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 (event) {\n // resolve promise only when HTTP code is ok\n if (xhr.status >= 200 && xhr.status < 300) {\n completeObject(identity);\n resolve({ status: xhr.status });\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 reject({ status: xhr.status, message: errorMessage });\n }\n };\n\n xhr.upload.addEventListener(\"error\", (event) => {\n reject(errorMessage);\n return;\n });\n\n xhr.upload.addEventListener(\"progress\", (event) => {\n const progress = Math.floor((event.loaded * 100) / event.total);\n\n updateProgress(identity, progress);\n });\n\n xhr.onerror = () => {\n reject(errorMessage);\n return;\n };\n xhr.onloadend = () => {\n if (files.length === 0) {\n setLoading(true);\n }\n };\n\n const formData = new FormData();\n if (file.size !== undefined) {\n formData.append(file.size.toString(), blobFile, fileName);\n xhr.send(formData);\n }\n });\n };\n\n const uploadFilePromises: any = [];\n // open object manager\n 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 console.log(\"upload results\", results);\n setErrorSnackMessage(err);\n }\n });\n };\n\n upload(files, bucketName, pathPrefix, folderPath);\n },\n [\n bucketName,\n completeObject,\n internalPaths,\n openList,\n setNewObject,\n setErrorSnackMessage,\n updateProgress,\n ]\n );\n\n const onDrop = useCallback(\n (acceptedFiles) => {\n if (acceptedFiles && acceptedFiles.length > 0) {\n let newFolderPath: string = acceptedFiles[0].path;\n uploadObject(acceptedFiles, newFolderPath);\n }\n },\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 openPreview = () => {\n if (selectedObjects.length === 1) {\n let fileObject: BucketObject | undefined;\n\n const findFunction = (currValue: BucketObject | RewindObject) =>\n selectedObjects.includes(currValue.name);\n\n fileObject = filteredRecords.find(findFunction);\n\n if (fileObject) {\n setSelectedPreview(fileObject);\n setPreviewOpen(true);\n }\n }\n };\n\n const openShare = () => {\n if (selectedObjects.length === 1) {\n let fileObject: BucketObject | undefined;\n\n const findFunction = (currValue: BucketObject | RewindObject) =>\n selectedObjects.includes(currValue.name);\n\n fileObject = filteredRecords.find(findFunction);\n\n if (fileObject) {\n setSelectedPreview(fileObject);\n setShareFileModalOpen(true);\n }\n }\n };\n\n const closeShareModal = () => {\n setShareFileModalOpen(false);\n setSelectedPreview(null);\n };\n\n const filteredRecords = records.filter((b: BucketObject) => {\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 rewindCloseModal = (refresh: boolean) => {\n setRewindSelect(false);\n };\n\n const closePreviewWindow = () => {\n setPreviewOpen(false);\n setSelectedPreview(null);\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 setSelectedObjects(elements);\n setSelectedInternalPaths(null);\n\n return elements;\n };\n\n const sortChange = (sortData: any) => {\n const newSortDirection = get(sortData, \"sortDirection\", \"DESC\");\n setCurrentSortField(sortData.sortBy);\n setSortDirection(newSortDirection);\n setLoading(true);\n };\n\n const pageTitle = decodeFileName(internalPaths);\n const currentPath = pageTitle.split(\"/\").filter((i: string) => i !== \"\");\n\n const plSelect = rewindEnabled ? rewind : filteredRecords;\n\n const sortASC = plSelect.sort(sortListObjects(currentSortField));\n\n let payload: BucketObject[] | RewindObject[] = [];\n\n if (sortDirection === \"ASC\") {\n payload = sortASC;\n } else {\n payload = sortASC.reverse();\n }\n\n const selectAllItems = () => {\n setSelectedInternalPaths(null);\n\n if (selectedObjects.length === payload.length) {\n setSelectedObjects([]);\n return;\n }\n\n const elements = payload.map((item) => item.name);\n setSelectedObjects(elements);\n };\n\n const downloadSelected = () => {\n if (selectedObjects.length !== 0) {\n let itemsToDownload: BucketObject[] | RewindObject[] = [];\n\n const filterFunction = (currValue: BucketObject | RewindObject) =>\n selectedObjects.includes(currValue.name);\n\n if (rewindEnabled) {\n itemsToDownload = rewind.filter(filterFunction);\n } else {\n itemsToDownload = filteredRecords.filter(filterFunction);\n }\n\n itemsToDownload.forEach((filteredItem) => {\n downloadObject(filteredItem);\n });\n }\n };\n let uploadPath = [bucketName];\n if (currentPath.length > 0) {\n uploadPath = uploadPath.concat(currentPath);\n }\n\n const onClosePanel = (forceRefresh: boolean) => {\n setDetailsOpen(false);\n setSelectedInternalPaths(null);\n setSelectedObjects([]);\n setVersionsModeEnabled(false);\n\n if (forceRefresh) {\n setLoading(true);\n }\n };\n\n const setDeletedAction = () => {\n setShowDeletedObjects(!showDeleted);\n onClosePanel(true);\n };\n\n const tableActions: ItemActions[] = [\n {\n type: \"view\",\n label: \"View\",\n onClick: openPath,\n sendOnlyId: true,\n },\n ];\n\n const multiActionButtons = [\n {\n action: downloadSelected,\n label: \"Download\",\n disabled: selectedObjects.length === 0,\n icon: ,\n tooltip: \"Download Selected\",\n },\n {\n action: openShare,\n label: \"Share\",\n disabled: selectedObjects.length !== 1 || !canShareFile,\n icon: ,\n tooltip: \"Share Selected File\",\n },\n {\n action: openPreview,\n label: \"Preview\",\n disabled: selectedObjects.length !== 1 || !canPreviewFile,\n icon: ,\n tooltip: \"Preview Selected File\",\n },\n {\n action: () => {\n setDeleteMultipleOpen(true);\n },\n label: \"Delete\",\n icon: ,\n disabled:\n !hasPermission(bucketName, [IAM_SCOPES.S3_DELETE_OBJECT]) ||\n selectedObjects.length === 0 ||\n !displayDeleteObject,\n tooltip: \"Delete Selected Files\",\n },\n ];\n\n return (\n \n {shareFileModalOpen && selectedPreview && (\n \n )}\n {deleteMultipleOpen && (\n \n )}\n {rewindSelect && (\n \n )}\n {previewOpen && (\n \n )}\n \n \n \n \n \n }\n title={{bucketName}}\n subTitle={\n \n \n \n Created:   \n {bucketInfo?.creation_date || \"\"}\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 / {niceBytesInt(quota.quota)}\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 \n }\n actions={\n \n \n \n \n }\n color=\"primary\"\n variant={\"outlined\"}\n onClick={() => {\n setRewindSelect(true);\n }}\n disabled={\n !isVersioned ||\n !hasPermission(bucketName, [IAM_SCOPES.S3_PUT_OBJECT])\n }\n />\n }\n color=\"primary\"\n variant={\"outlined\"}\n onClick={() => {\n if (versionsMode) {\n setLoadingVersions(true);\n } else {\n setLoading(true);\n }\n }}\n disabled={\n !hasPermission(bucketName, [IAM_SCOPES.S3_LIST_BUCKET]) ||\n rewindEnabled\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 />\n \n \n \n \n \n )\n }\n />\n \n \n \n \n {versionsMode ? (\n \n {selectedInternalPaths !== null && (\n \n )}\n \n ) : (\n \n {\n if (payload[index]?.delete_flag) {\n return \"deleted\";\n }\n\n return \"\";\n }}\n />\n \n )}\n \n {\n onClosePanel(false);\n }}\n >\n {selectedObjects.length > 0 && (\n \n )}\n {selectedInternalPaths !== null && (\n \n )}\n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = ({ objectBrowser, buckets }: AppState) => ({\n routesList: get(objectBrowser, \"routesList\", []),\n downloadingFiles: get(objectBrowser, \"downloadingFiles\", []),\n rewindEnabled: get(objectBrowser, \"rewind.rewindEnabled\", false),\n rewindDate: get(objectBrowser, \"rewind.dateToRewind\", null),\n bucketToRewind: get(objectBrowser, \"rewind.bucketToRewind\", \"\"),\n versionsMode: get(objectBrowser, \"versionsMode\", false),\n loadingBucket: buckets.bucketDetails.loadingBucket,\n bucketInfo: buckets.bucketDetails.bucketInfo,\n searchObjects: objectBrowser.searchObjects,\n showDeleted: objectBrowser.showDeleted,\n});\n\nconst mapDispatchToProps = {\n setSnackBarMessage,\n setErrorSnackMessage,\n resetRewind,\n setBucketDetailsLoad,\n setBucketInfo,\n setNewObject,\n updateProgress,\n completeObject,\n openList,\n setSearchObjects,\n setVersionsModeEnabled,\n setShowDeletedObjects,\n setLoadingVersions,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withRouter(connector(withStyles(styles)(ListObjects)));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Tooltip } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport { AppState } from \"../../../../store\";\nimport { containerForHeader } from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n setSearchObjects,\n setVersionsModeEnabled,\n setSearchVersions,\n} from \"../../ObjectBrowser/actions\";\nimport ListObjects from \"../ListBuckets/Objects/ListObjects/ListObjects\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport SettingsIcon from \"../../../../icons/SettingsIcon\";\nimport { BucketInfo } from \"../types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { SecureComponent } from \"../../../../common/SecureComponent\";\nimport {\n IAM_PERMISSIONS,\n IAM_ROLES,\n IAM_SCOPES,\n IAM_PAGES,\n} from \"../../../../common/SecureComponent/permissions\";\nimport SearchBox from \"../../Common/SearchBox\";\nimport BackLink from \"../../../../common/BackLink\";\n\ninterface IBrowserHandlerProps {\n versionsMode: boolean;\n match: any;\n history: any;\n classes: any;\n setVersionsModeEnabled: typeof setVersionsModeEnabled;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n bucketInfo: BucketInfo | null;\n searchObjects: string;\n versionedFile: string;\n searchVersions: string;\n setSearchObjects: typeof setSearchObjects;\n setSearchVersions: typeof setSearchVersions;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n backToBuckets: {\n color: \"#000\",\n fontSize: 14,\n padding: 0,\n marginTop: -8,\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst BrowserHandler = ({\n versionsMode,\n match,\n history,\n classes,\n setVersionsModeEnabled,\n searchObjects,\n setSearchObjects,\n setSearchVersions,\n versionedFile,\n searchVersions,\n}: IBrowserHandlerProps) => {\n const bucketName = match.params[\"bucketName\"];\n const internalPaths = get(match.params, \"subpaths\", \"\");\n\n useEffect(() => {\n setVersionsModeEnabled(false);\n }, [internalPaths, setVersionsModeEnabled]);\n\n const openBucketConfiguration = () => {\n history.push(`/buckets/${bucketName}/admin`);\n };\n\n return (\n \n }\n actions={\n \n \n \n \n \n \n \n }\n middleComponent={\n \n {!versionsMode ? (\n \n {\n setSearchObjects(value);\n }}\n value={searchObjects}\n />\n \n ) : (\n \n {\n setSearchVersions(value);\n }}\n value={searchVersions}\n />\n \n )}\n \n }\n />\n \n \n \n \n );\n};\n\nconst mapStateToProps = ({ objectBrowser, buckets }: AppState) => ({\n versionsMode: get(objectBrowser, \"versionsMode\", false),\n bucketToRewind: get(objectBrowser, \"rewind.bucketToRewind\", \"\"),\n bucketInfo: buckets.bucketDetails.bucketInfo,\n searchObjects: objectBrowser.searchObjects,\n versionedFile: objectBrowser.versionedFile,\n searchVersions: objectBrowser.searchVersions,\n});\n\nconst mapDispatchToProps = {\n setVersionsModeEnabled,\n setErrorSnackMessage,\n setSearchObjects,\n setSearchVersions,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(BrowserHandler));\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 BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\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 Grid from \"@mui/material/Grid\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport moment from \"moment/moment\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport InputBoxWrapper from \"../InputBoxWrapper/InputBoxWrapper\";\n\ninterface IDaysSelector {\n classes: any;\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 styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n labelContainer: {\n display: \"flex\",\n alignItems: \"center\",\n marginBottom: 15,\n },\n fieldContainer: {\n ...fieldBasic.fieldContainer,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingBottom: 10,\n marginTop: 11,\n marginBottom: 6,\n },\n dateContainer: {\n height: 20,\n textAlign: \"right\",\n color: \"#848484\",\n },\n dateInputContainer: {\n margin: \"0 10px\",\n },\n durationInputs: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n\n validityIndicator: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n invalidDurationText: {\n marginTop: 15,\n display: \"flex\",\n color: \"red\",\n fontSize: 11,\n },\n validityText: {\n fontSize: 14,\n fontWeight: 600,\n marginTop: 15,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n });\n\nconst calculateNewTime = (\n initialDate: Date,\n days: number,\n hours: number,\n minutes: number\n) => {\n return moment(initialDate)\n .add(days, \"days\")\n .add(hours, \"hours\")\n .add(minutes, \"minutes\");\n};\n\nconst DaysSelector = ({\n classes,\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(moment());\n\n useEffect(() => {\n setDateSelected(\n calculateNewTime(\n initialDate,\n selectedDays,\n selectedHours,\n selectedMinutes\n )\n );\n }, [initialDate, selectedDays, selectedHours, selectedMinutes]);\n\n useEffect(() => {\n if (validDate) {\n onChange(dateSelected.format(\"YYYY-MM-DDTHH:mm:ss\"), 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 setValidDate(valid);\n }, [\n dateSelected,\n maxDays,\n onChange,\n selectedDays,\n selectedHours,\n selectedMinutes,\n ]);\n\n const extraInputProps = {\n style: {\n textAlign: \"center\" as const,\n paddingRight: 10,\n paddingLeft: 10,\n width: 25,\n },\n className: \"removeArrows\" as const,\n };\n\n return (\n \n \n \n \n \n {label}\n \n \n \n \n {\n setSelectedDays(parseInt(e.target.value));\n }}\n value={selectedDays.toString()}\n extraInputProps={extraInputProps}\n noLabelMinWidth\n />\n \n \n {\n setSelectedHours(parseInt(e.target.value));\n }}\n value={selectedHours.toString()}\n extraInputProps={extraInputProps}\n noLabelMinWidth\n />\n \n \n {\n setSelectedMinutes(parseInt(e.target.value));\n }}\n value={selectedMinutes.toString()}\n extraInputProps={extraInputProps}\n noLabelMinWidth\n />\n \n \n \n \n {validDate ? (\n
    \n
    \n {entity} will be available until:\n
    {\" \"}\n
    \n {dateSelected.format(\"MM/DD/YYYY HH:mm:ss\")}\n
    \n
    \n ) : (\n
    \n Please select a valid duration.\n
    \n )}\n
    \n \n
    \n );\n};\n\nexport default withStyles(styles)(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 get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport Grid from \"@mui/material/Grid\";\nimport Button from \"@mui/material/Button\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nimport { IFileInfo } from \"./types\";\nimport {\n setModalErrorSnackMessage,\n setModalSnackMessage,\n} from \"../../../../../../actions\";\nimport { AppState } from \"../../../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport api from \"../../../../../../common/api\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport PredefinedList from \"../../../../Common/FormComponents/PredefinedList/PredefinedList\";\nimport DaysSelector from \"../../../../Common/FormComponents/DaysSelector/DaysSelector\";\nimport { encodeFileName } from \"../../../../../../common/utils\";\n\nconst CopyIcon = React.lazy(() => import(\"../../../../../../icons/CopyIcon\"));\n\nconst styles = (theme: Theme) =>\n createStyles({\n shareLinkInfo: {\n fontSize: 13,\n fontWeight: 400,\n },\n copyShareLink: {\n display: \"flex\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n },\n copyShareLinkInput: {\n \"& div:first-child\": {\n marginTop: 0,\n },\n \"@media (max-width: 900px)\": {\n minWidth: 250,\n },\n },\n copyShareLinkBtn: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \"@media (max-width: 900px)\": {\n marginTop: 10,\n },\n },\n ...modalStyleUtils,\n ...formFieldStyles,\n });\n\ninterface IShareFileProps {\n classes: any;\n open: boolean;\n bucketName: string;\n dataObject: IFileInfo;\n distributedSetup: boolean;\n closeModalAndRefresh: () => void;\n setModalSnackMessage: typeof setModalSnackMessage;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst ShareFile = ({\n classes,\n open,\n closeModalAndRefresh,\n bucketName,\n dataObject,\n distributedSetup,\n setModalSnackMessage,\n setModalErrorSnackMessage,\n}: IShareFileProps) => {\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\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects?prefix=${encodeFileName(\n dataObject.name\n )}${distributedSetup ? \"&with_versions=true\" : \"\"}`\n )\n .then((res: IFileInfo[]) => {\n const result = get(res, \"objects\", []);\n\n const latestVersion = result.find(\n (elem: IFileInfo) => elem.is_latest\n );\n\n if (latestVersion) {\n setVersionID(latestVersion.version_id);\n return;\n }\n\n // Version couldn't ve retrieved, we default\n setVersionID(\"null\");\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(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, setModalErrorSnackMessage]);\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\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects/share?prefix=${encodeFileName(\n dataObject.name\n )}&version_id=${versionID}${\n selectedDate !== \"\" ? `&expires=${diffDate}s` : \"\"\n }`\n )\n .then((res: string) => {\n setShareURL(res);\n setIsLoadingFile(false);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(error);\n setShareURL(\"\");\n setIsLoadingFile(false);\n });\n }\n }\n }, [\n dataObject,\n selectedDate,\n bucketName,\n dateValid,\n setShareURL,\n setModalErrorSnackMessage,\n distributedSetup,\n isLoadingVersion,\n versionID,\n ]);\n\n return (\n \n {\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 The temporary URL expires after the configured time limit.\n
    \n \n \n \n \n \n \n \n\n \n \n }\n onClick={() => {\n setModalSnackMessage(\"Share URL Copied to clipboard\");\n }}\n disabled={shareURL === \"\" || isLoadingFile}\n >\n Copy\n \n \n \n \n
    \n )}\n \n
    \n );\n};\n\nconst mapStateToProps = ({ system }: AppState) => ({\n distributedSetup: get(system, \"distributedSetup\", false),\n});\n\nconst connector = connect(mapStateToProps, {\n setModalSnackMessage,\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(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, useState } from \"react\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, LinearProgress } from \"@mui/material\";\nimport { BucketObject } from \"../ListObjects/types\";\nimport { extensionPreview } from \"../utils\";\nimport { encodeFileName } from \"../../../../../../common/utils\";\nimport clsx from \"clsx\";\n\nconst styles = () =>\n createStyles({\n iframeContainer: {\n border: \"0px\",\n flex: \"1 1 auto\",\n width: \"100%\",\n height: 250,\n backgroundColor: \"transparent\",\n borderRadius: 5,\n\n \"&.image\": {\n height: 500,\n },\n \"&.text\": {\n height: 700,\n },\n \"&.audio\": {\n height: 150,\n },\n \"&.video\": {\n height: 350,\n },\n \"&.fullHeight\": {\n height: \"calc(100vh - 185px)\",\n },\n },\n iframeBase: {\n backgroundColor: \"#fff\",\n },\n iframeHidden: {\n display: \"none\",\n },\n });\n\ninterface IPreviewFileProps {\n bucketName: string;\n object: BucketObject | null;\n isFullscreen?: boolean;\n classes: any;\n}\n\nconst PreviewFile = ({\n bucketName,\n object,\n isFullscreen = false,\n classes,\n}: IPreviewFileProps) => {\n const [loading, setLoading] = useState(true);\n\n let path = \"\";\n\n if (object) {\n const encodedPath = encodeFileName(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 const objectType = extensionPreview(object?.name || \"\");\n\n const iframeLoaded = () => {\n setLoading(false);\n };\n\n return (\n \n {loading && (\n \n \n \n )}\n {objectType === \"video\" && (\n \n \n \n )}\n {objectType === \"audio\" && (\n \n \n \n )}\n {objectType === \"image\" && (\n \n )}\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 );\n};\nexport default withStyles(styles)(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 { BucketObject } from \"../ListObjects/types\";\nimport { ObjectPreviewIcon } from \"../../../../../../icons\";\n\ninterface IPreviewFileProps {\n open: boolean;\n bucketName: string;\n object: BucketObject | 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 { BucketObject, RewindObject } from \"./ListObjects/types\";\n\nexport const download = (\n bucketName: string,\n objectPath: string,\n versionID: any,\n fileSize: number,\n progressCallback: (progress: number) => void,\n completeCallback: () => void\n) => {\n const anchor = document.createElement(\"a\");\n document.body.appendChild(anchor);\n let path = `/api/v1/buckets/${bucketName}/objects/download?prefix=${objectPath}`;\n if (versionID) {\n path = path.concat(`&version_id=${versionID}`);\n }\n\n var req = new XMLHttpRequest();\n req.open(\"GET\", path, true);\n req.addEventListener(\n \"progress\",\n function (evt) {\n var percentComplete = Math.round((evt.loaded / fileSize) * 100);\n\n if (progressCallback) {\n progressCallback(percentComplete);\n }\n },\n false\n );\n\n req.responseType = \"blob\";\n req.onreadystatechange = () => {\n if (req.readyState === 4 && req.status === 200) {\n const rspHeader = req.getResponseHeader(\"Content-Disposition\");\n\n let filename = \"download\";\n if (rspHeader) {\n let rspHeaderDecoded = decodeURIComponent(rspHeader);\n filename = rspHeaderDecoded.split('\"')[1];\n }\n\n if (completeCallback) {\n completeCallback();\n }\n\n var link = document.createElement(\"a\");\n link.href = window.URL.createObjectURL(req.response);\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n };\n req.send();\n};\n\n// Review file extension by name & returns the type of preview browser that can be used\nexport const extensionPreview = (\n fileName: string\n): \"image\" | \"text\" | \"audio\" | \"video\" | \"none\" => {\n const imageExtensions = [\n \"jif\",\n \"jfif\",\n \"apng\",\n \"avif\",\n \"svg\",\n \"webp\",\n \"bmp\",\n \"ico\",\n \"jpg\",\n \"jpe\",\n \"jpeg\",\n \"gif\",\n \"png\",\n \"heic\",\n ];\n const textExtensions = [\"pdf\", \"txt\", \"json\"];\n const audioExtensions = [\"wav\", \"mp3\", \"alac\", \"aiff\", \"dsd\", \"pcm\"];\n const videoExtensions = [\n \"mp4\",\n \"avi\",\n \"mpg\",\n \"webm\",\n \"mov\",\n \"flv\",\n \"mkv\",\n \"wmv\",\n \"avchd\",\n \"mpeg-4\",\n ];\n\n let fileExtension = fileName.split(\".\").pop();\n\n if (!fileExtension) {\n return \"none\";\n }\n\n fileExtension = fileExtension.toLowerCase();\n\n if (imageExtensions.includes(fileExtension)) {\n return \"image\";\n }\n\n if (textExtensions.includes(fileExtension)) {\n return \"text\";\n }\n\n if (audioExtensions.includes(fileExtension)) {\n return \"audio\";\n }\n\n if (videoExtensions.includes(fileExtension)) {\n return \"video\";\n }\n\n return \"none\";\n};\n\nexport const sortListObjects = (fieldSort: string) => {\n switch (fieldSort) {\n case \"name\":\n return (a: BucketObject | RewindObject, b: BucketObject | RewindObject) =>\n a.name.localeCompare(b.name);\n case \"last_modified\":\n return (a: BucketObject | RewindObject, b: BucketObject | RewindObject) =>\n new Date(a.last_modified).getTime() -\n new Date(b.last_modified).getTime();\n case \"size\":\n return (a: BucketObject | RewindObject, b: BucketObject | RewindObject) =>\n (a.size || -1) - (b.size || -1);\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 from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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","import React, { Fragment } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { predefinedList } from \"../common/styleLibrary\";\n\ninterface IPredefinedList {\n classes: any;\n label?: string;\n content: any;\n multiLine?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...predefinedList,\n });\n\nconst PredefinedList = ({\n classes,\n label = \"\",\n content,\n multiLine = false,\n}: IPredefinedList) => {\n return (\n \n \n {label !== \"\" && (\n \n {label}\n \n )}\n \n \n {content}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(PredefinedList);\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 clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Radio, { RadioProps } from \"@mui/material/Radio\";\nimport { InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { fieldBasic, radioIcons, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\n\nexport interface SelectorTypes {\n label: string;\n value: string;\n}\n\ninterface RadioGroupProps {\n selectorOptions: SelectorTypes[];\n currentSelection: string;\n label: string;\n id: string;\n name: string;\n tooltip?: string;\n disableOptions?: boolean;\n onChange: (e: React.ChangeEvent) => void;\n classes: any;\n displayInColumn?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n optionLabel: {\n \"&.Mui-disabled\": {\n \"& .MuiFormControlLabel-label\": {\n color: \"#9c9c9c\",\n },\n },\n \"&:last-child\": {\n marginRight: 0,\n },\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n },\n },\n checkedOption: {\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n fontWeight: 700,\n },\n },\n });\n\nconst radioStyles = makeStyles({\n root: {\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n ...radioIcons,\n});\n\nconst RadioButton = (props: RadioProps) => {\n const classes = radioStyles();\n\n return (\n }\n icon={}\n {...props}\n />\n );\n};\n\nexport const RadioGroupSelector = ({\n selectorOptions = [],\n currentSelection,\n label,\n id,\n name,\n onChange,\n tooltip = \"\",\n disableOptions = false,\n classes,\n displayInColumn = false,\n}: RadioGroupProps) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n

    \n \n
    \n \n
    \n
    \n
    \n )}\n \n \n \n \n {selectorOptions.map((selectorOption) => {\n return (\n }\n label={selectorOption.label}\n disabled={disableOptions}\n className={clsx(classes.optionLabel, {\n [classes.checkedOption]:\n selectorOption.value === currentSelection,\n })}\n />\n );\n })}\n \n \n \n );\n};\n\nexport default withStyles(styles)(RadioGroupSelector);\n","import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IScreenTitle {\n classes: any;\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n screenTitle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n },\n });\n\nconst ScreenTitle = ({\n classes,\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n return (\n \n \n
    \n {icon ?
    {icon}
    : null}\n
    \n

    {title}

    \n {subTitle}\n
    \n
    \n\n
    {actions}
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ScreenTitle);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// 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, ReactElement } from \"react\";\nimport { FixedSizeList as List } from \"react-window\";\nimport InfiniteLoader from \"react-window-infinite-loader\";\nimport { AutoSizer } from \"react-virtualized\";\n\ninterface IVirtualizedList {\n rowRenderFunction: (index: number) => ReactElement | null;\n totalItems: number;\n defaultHeight?: number;\n}\n\nlet itemStatusMap: any = {};\nconst LOADING = 1;\nconst LOADED = 2;\n\nconst VirtualizedList = ({\n rowRenderFunction,\n totalItems,\n defaultHeight,\n}: IVirtualizedList) => {\n const isItemLoaded = (index: any) => !!itemStatusMap[index];\n\n const loadMoreItems = (startIndex: number, stopIndex: number) => {\n for (let index = startIndex; index <= stopIndex; index++) {\n itemStatusMap[index] = LOADING;\n }\n\n for (let index = startIndex; index <= stopIndex; index++) {\n itemStatusMap[index] = LOADED;\n }\n };\n\n const RenderItemLine = ({ index, style }: any) => {\n return
    {rowRenderFunction(index)}
    ;\n };\n\n return (\n \n \n {({ onItemsRendered, ref }) => (\n \n {({ width, height }) => {\n return (\n \n {RenderItemLine}\n \n );\n }}\n \n )}\n \n \n );\n};\n\nexport default VirtualizedList;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box, Button } from \"@mui/material\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { CopyIcon } from \"../../../icons\";\nimport { useState } from \"react\";\nconst KeyRevealer = ({ value }: { value: string }) => {\n const [shown, setShown] = useState(false);\n\n return (\n \n {}}\n value={value}\n overlayIcon={}\n extraInputProps={{\n readOnly: true,\n }}\n overlayAction={() => navigator.clipboard.writeText(value)}\n />\n\n setShown(!shown)}\n >\n Show/Hide\n \n \n );\n};\n\nexport default KeyRevealer;\n"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","CreateFolderModal","withSuspense","React","mapDispatchToProps","setVersionsModeEnabled","connector","connect","objectBrowser","rewindEnabled","get","versionsMode","versionedFile","objectBrowserCommon","bucketName","internalPaths","existingFiles","additionalOptions","useState","createFolderOpen","setCreateFolderOpen","paths","splitPaths","split","filter","path","breadcrumbsMap","map","objectItem","index","subSplit","slice","join","route","encodeFileName","Fragment","toString","versionsItem","listBreadcrumbs","modalOpen","folderName","onClose","Grid","item","xs","breadcrumbs","IconButton","history","border","backgroundColor","borderLeft","Tooltip","title","id","disabled","hasPermission","IAM_SCOPES","disableTouchRipple","disableRipple","focusRipple","padding","breadcrumbsList","dir","listUploadIcons","fill","uploadPath","forceDisable","uploadFileFunction","uploadFolderFunction","anchorEl","setAnchorEl","openUploadMenu","Boolean","handleCloseUpload","uploadObjectAllowed","uploadFolderAllowed","uploadEnabled","RBIconButton","tooltip","undefined","event","currentTarget","text","variant","Menu","open","anchorOrigin","vertical","horizontal","transformOrigin","MenuItem","ListItemIcon","ListItemText","detailsList","borderColor","borderWidth","borderStyle","borderBottomLeftRadius","borderBottomRightRadius","transitionDuration","overflowX","overflowY","position","opacity","marginLeft","minWidth","borderTopWidth","borderBottomWidth","borderRightWidth","borderLeftWidth","closePanel","right","top","children","months","value","days","Array","from","_","num","currentYear","Date","getFullYear","years","numYear","SelectStyled","root","input","borderBottom","InputBase","DateSelector","forwardRef","ref","disableOptions","addSwitch","onDateChange","useImperativeHandle","resetDate","dateEnabled","setDateEnabled","month","setMonth","day","setDay","year","setYear","useEffect","valueSplit","parseInt","currentDate","parse","isNaN","parsedMonth","parsedDay","monthForString","dayForString","parsedDate","toISOString","dateString","validDate","isValid","isDateDisabled","clsx","fieldContainer","fieldContainerBorder","labelContainer","container","InputLabel","htmlFor","inputLabel","tooltipContainer","placement","HelpIcon","FormSwitchWrapper","indicatorLabels","checked","name","onChange","e","target","switchOnly","FormControl","dateInput","Select","displayEmpty","option","dayNumber","fieldBasic","tooltipHelper","flex","justifyContent","marginTop","marginBottom","setModalErrorSnackMessage","formFieldStyles","modalStyleUtils","spacingUtils","dateSelector","closeModalAndRefresh","objectName","objectInfo","statusEnabled","setStatusEnabled","type","setType","date","setDate","isDateValid","setIsDateValid","isSaving","setIsSaving","alreadyConfigured","setAlreadyConfigured","retention_mode","toLowerCase","retention_until_date","valueDate","getMonth","getDate","dateElement","useRef","resetForm","current","showSwitcher","ModalWrapper","spacerBottom","noValidate","autoComplete","onSubmit","preventDefault","formFieldRow","RadioGroupSelector","currentSelection","selectorOptions","modalButtonBar","Button","selectedObject","versionId","version_id","expireDate","api","expires","mode","then","res","catch","error","addRetention","disableRetention","setErrorSnackMessage","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","versioning","selectedVersion","useApi","err","deleteLoading","invokeDeleteApi","deleteVersions","setDeleteVersions","ConfirmDialog","confirmText","isOpen","titleIcon","isLoading","onConfirm","recursive","decodeFileName","endsWith","confirmationContent","DialogContentText","description","actualInfo","legalHoldEnabled","setLegalHoldEnabled","status","propertiesIcon","capitalizeFirst","textTransform","titleCol","titleItem","detailsPanel","linear","metaData","setMetaData","metadata","invokeMetaDataApi","metaKeys","Object","keys","loadMetaData","useCallback","element","renderItem","isArray","decodeURIComponent","Box","metadataLinear","style","Table","table","TableBody","TableRow","TableCell","component","scope","align","margin","whiteSpace","restProps","startIcon","items","titleLabel","objectActions","actionItem","action","fileName","fileNameText","overflow","textOverflow","props","strings","length","FileBookIcon","FileCodeIcon","FileConfigIcon","FileDbIcon","FileFontIcon","FileImageIcon","FileLockIcon","FileMissingIcon","FileMusicIcon","FilePdfIcon","FilePptIcon","FileTxtIcon","FileVideoIcon","FileXlsIcon","FileZipIcon","extensionToIcon","extensions","displayFileIconName","returnOnlyIcon","elementString","ObjectBrowserIcon","ObjectBrowserFolderIcon","substr","lowercaseElement","etc","ext","indexOf","splitItem","system","distributedSetup","pathLabel","newTileHeader","onCloseAndUpdate","newKey","setNewKey","newLabel","setNewLabel","isSending","setIsSending","deleteEnabled","setDeleteEnabled","deleteKey","setDeleteKey","deleteLabel","setDeleteLabel","currentTags","tags","currTagKeys","currentItem","pop","wrapText","cleanObject","verID","SecureComponent","scopes","resource","flexFlow","tagKey","tag","matchAll","errorProps","deleteIcon","onDelete","Chip","size","Close","onDeleteTag","InputBoxWrapper","placeholder","trim","newTag","newTagList","closeInspectModalAndRefresh","inspectOpen","inspectPath","volumeName","isEncrypt","setIsEncrypt","decryptionKey","setDecryptionKey","insFileName","setInsFileName","makeRequest","url","fetch","method","performInspect","file","encodeURIComponent","volume","urlOfInspectApi","ok","json","resErr","errorMessage","message","detailedError","code","blob","filename","headers","decryptKey","getCookieValue","performDownload","deleteCookie","KeyRevealer","emptyFile","is_latest","last_modified","legal_hold_status","setSnackBarMessage","setNewObject","updateProgress","completeObject","setLoadingObjectInfo","setLoadingVersions","setSelectedVersion","rewindDate","bucketToRewind","loadingObjectInfo","ObjectDetailsTitle","objectNameContainer","headerForSection","buttonsStyles","actionsTray","textStyleUtils","locking","onClosePanel","shareFileModalOpen","setShareFileModalOpen","retentionModalOpen","setRetentionModalOpen","tagModalOpen","setTagModalOpen","legalholdOpen","setLegalholdOpen","inspectModalOpen","setInspectModalOpen","setActualInfo","allInfoElements","setAllInfoElements","objectToShare","setObjectToShare","versions","setVersions","setDeleteOpen","previewOpen","setPreviewOpen","totalVersionsSize","setTotalVersionsSize","objectNameArray","infoElement","find","el","result","tVersionSize","reduce","acc","currValue","tagKeys","objectResources","multiActionButtons","object","identityDownload","getTime","Math","random","done","instanceID","percentage","prefix","waitingForFile","download","progress","downloadObject","is_delete_marker","extensionPreview","ShareFile","dataObject","updateInfo","closeAndReload","reload","PreviewFileModal","content_type","onClosePreview","TagsModal","reloadObjectData","LinearProgress","textAlign","detailContainer","niceBytes","niceBytesInt","lastModified","currentTime","modifiedTime","difTime","formatTime","niceDaysInt","calculateLastModifyTime","etag","displayParsedDate","displayNiceBytes","String","listModeColumns","elementKey","renderFunction","enableSort","renderFullObject","contentTextAlign","rewindModeColumns","state","modalBasic","versionID","objectPath","restoreOpen","restoreLoading","setRestoreLoading","RecoverIcon","confirmButtonProps","bgColor","mainFileVersionItem","cursor","intermediateLayer","borderBottomColor","versionContainer","minHeight","buttonContainer","versionData","ctrItem","content","left","versionInfo","isSelected","onShare","onDownload","onRestore","onPreview","globalClick","disableButtons","versionItemButtons","pill","button","spacing","buttonDisabled","stopPropagation","setDeleteLoading","typeConfirm","setTypeConfirm","searchVersions","loadingVersions","versionsContainer","noBottomBorder","versionsVirtualPanel","flexGrow","screenTitleContainer","bottom","sortByLabel","hrClass","tableStyles","objectBrowserExtras","containerForHeader","restoreVersionOpen","setRestoreVersionOpen","restoreVersion","setRestoreVersion","sortValue","setSortValue","deleteNonCurrentOpen","setDeleteNonCurrentOpen","onShareItem","onPreviewItem","onRestoreItem","onDownloadItem","onGlobalClick","filteredRecords","version","includes","totalSpace","sort","a","b","dateA","dateB","DeleteNonCurrent","reloadAfterDelete","ScreenTitle","listIcon","titleSpacer","subTitle","bucketDetails","detailsSpacer","actions","SelectWrapper","options","VirtualizedList","rowRenderFunction","elementIndex","versOrd","totalItems","defaultHeight","HistoryIcon","RefreshIcon","DeleteIcon","DeleteMultipleObjects","RewindEnable","baseDnDStyle","outline","activeDnDStyle","acceptDnDStyle","defLoading","Typography","resetRewind","setBucketDetailsLoad","setBucketInfo","openList","setSearchObjects","setShowDeletedObjects","buckets","routesList","downloadingFiles","loadingBucket","bucketInfo","searchObjects","showDeleted","withRouter","browsePaper","backgroundImage","badgeOverlap","screenTitle","searchField","maxWidth","labelStyle","match","records","setRecords","loading","setLoading","rewind","setRewind","loadingRewind","setLoadingRewind","deleteMultipleOpen","setDeleteMultipleOpen","loadingStartTime","setLoadingStartTime","loadingMessage","setLoadingMessage","loadingVersioning","setLoadingVersioning","isVersioned","setIsVersioned","loadingLocking","setLoadingLocking","lockingEnabled","setLockingEnabled","rewindSelect","setRewindSelect","selectedObjects","setSelectedObjects","selectedPreview","setSelectedPreview","sortDirection","setSortDirection","currentSortField","setCurrentSortField","iniLoad","setIniLoad","canShareFile","setCanShareFile","canPreviewFile","setCanPreviewFile","detailsOpen","setDetailsOpen","selectedInternalPaths","setSelectedInternalPaths","quota","setQuota","params","fileUpload","folderUpload","setAttribute","quotaVals","displayDeleteObject","displayListObjects","callback","delay","savedCallback","setInterval","clearInterval","useInterval","timeDelta","now","ceil","updateMessage","is_versioned","object_locking_enabled","rewindParsed","pathPrefix","decodedPath","objects","currentTimestamp","urlTake","currDateISO","folders","files","forEach","record","push","recordsInElement","pathPrefixChopped","i","handleUploadButton","newFiles","uploadObject","folderPath","uploadPromise","Promise","resolve","reject","uploadUrl","blobFile","Blob","encodedPath","relativeFolderPath","finalFolderPath","identity","xhr","XMLHttpRequest","areMultipleFiles","errorMessages","withCredentials","onload","response","JSON","detailedMessage","upload","addEventListener","floor","loaded","total","onerror","onloadend","formData","FormData","append","send","uploadFilePromises","allSettled","results","errors","totalFiles","successUploadedFiles","console","log","onDrop","acceptedFiles","newFolderPath","useDropzone","noClick","getRootProps","getInputProps","isDragActive","isDragAccept","dndStyles","useMemo","pageTitle","currentPath","sortASC","sortListObjects","payload","reverse","concat","forceRefresh","tableActions","idElement","newPath","sendOnlyId","filterFunction","filteredItem","fileObject","refresh","PageLayout","creation_date","access","Badge","badgeContent","invisible","multiple","closeMenu","click","CheckboxWrapper","overrideLabelClasses","noTopMargin","tableBlock","TableWrapper","itemActions","columns","entityName","idField","customPaperHeight","selectedItems","onSelect","targetD","elements","customEmptyMessage","sortConfig","currentSort","currentDirection","triggerSort","sortData","newSortDirection","sortBy","onSelectAll","rowStyle","delete_flag","setSearchVersions","breadcrumLink","backToBuckets","PageHeader","BackLink","IAM_PAGES","IAM_PERMISSIONS","IAM_ROLES","SettingsIcon","middleComponent","SearchBox","useStyles","makeStyles","tgtColor","main","contrastText","secondary","getButtonColor","dateContainer","dateInputContainer","durationInputs","validityIndicator","invalidDurationText","validityText","initialDate","maxDays","entity","selectedDays","setSelectedDays","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","setValidDate","moment","dateSelected","setDateSelected","hours","minutes","add","calculateNewTime","format","valid","extraInputProps","min","max","noLabelMinWidth","validityLabel","validTill","CopyIcon","setModalSnackMessage","shareLinkInfo","copyShareLink","copyShareLinkInput","copyShareLinkBtn","shareURL","setShareURL","isLoadingVersion","setIsLoadingVersion","isLoadingFile","setIsLoadingFile","selectedDate","setSelectedDate","dateValid","setDateValid","setVersionID","latestVersion","elem","slDate","currDate","diffDate","newDate","PredefinedList","endIcon","iframeContainer","iframeBase","iframeHidden","isFullscreen","basename","document","baseURI","replace","window","location","origin","objectType","iframeLoaded","autoPlay","controls","muted","playsInline","onPlay","src","alt","onLoad","allowTransparency","wideLimit","PreviewFileContent","fileSize","progressCallback","completeCallback","anchor","createElement","body","appendChild","req","evt","percentComplete","round","responseType","onreadystatechange","readyState","rspHeader","getResponseHeader","href","URL","createObjectURL","removeChild","fileExtension","fieldSort","localeCompare","contained","dark","rest","WrappedComponent","fallback","ComponentWithSuspense","Suspense","predefinedList","multiLine","prefinedContainer","predefinedTitle","innerContentMultiline","innerContent","radioStyles","radioIcons","RadioButton","checkedIcon","radioSelectedIcon","radioUnselectedIcon","optionLabel","checkedOption","displayInColumn","radioOptionsLayout","row","selectorOption","control","onSuccess","onError","setIsLoading","data","deleteDialogStyles","onCancel","cancelText","cancelButtonProps","reason","titleText","closeContainer","closeButton","cancelButton","confirmButton","loadingPosition","autoFocus","modalSnackMessage","modalSnackBar","customDialogSize","snackBarCommon","noContentPadding","openSnackbar","setOpenSnackbar","customSize","paper","fullWidth","detailedErrorMsg","scroll","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","toggleList","sidebarOpen","operatorMode","managerObjects","objectManager","objectsToManage","features","session","headerContainer","boxShadow","rightMenu","logo","direction","sm","md","headerBarIcon","headerBarSubheader","titleColumn","leftItems","rightItems","adornment","adornmentPosition","overrideClass","inputProps","disableUnderline","InputProps","itemStatusMap","RenderItemLine","isItemLoaded","loadMoreItems","startIndex","stopIndex","itemCount","onItemsRendered","itemSize","shown","setShown","overlayIcon","readOnly","overlayAction","navigator","clipboard","writeText"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/6233.d36db740.chunk.js b/portal-ui/build/static/js/6233.d36db740.chunk.js new file mode 100644 index 000000000..b4220ece5 --- /dev/null +++ b/portal-ui/build/static/js/6233.d36db740.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6233],{84669:function(e,n,t){t(72791);var i=t(91523),o=t(11135),a=t(25787),s=t(13048),r=t(64554),c=t(80184);n.Z=(0,a.Z)((function(e){return(0,o.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var n=e.to,t=e.label,o=e.classes,a=e.className,l=e.executeOnClick;return(0,c.jsx)(r.Z,{sx:{display:"flex",alignItems:"center"},children:(0,c.jsx)(i.rU,{to:n,className:"".concat(o.link," ").concat(a||""),onClick:function(){l&&l()},children:(0,c.jsxs)("div",{className:o.iconBox,children:[(0,c.jsx)("div",{className:o.icon,children:(0,c.jsx)(s.xN,{})}),(0,c.jsx)("div",{className:o.label,children:t})]})})})}))},56233:function(e,n,t){t.r(n),t.d(n,{default:function(){return st}});var i=t(1413),o=t(72791),a=t(60364),s=t(11135),r=t(25787),c=t(20068),l=t(13400),d=t(61889),u=t(26181),m=t.n(u),h=t(23814),f=t(3925),p=t(42982),x=t(70885),b=t(57831),g=t(79271),j=t(81207),v=t(92983),Z=t(45248),y=t(20890),S=t(82422),k=t(91523),C=t(13048),w=t(36151),N=t(62666),E=t(38442),I=t(56087),F=t(75578),_=t(80184),P=(0,F.Z)(o.lazy((function(){return t.e(3678).then(t.bind(t,83678))}))),T={setVersionsModeEnabled:f.db},O=(0,a.$j)((function(e){var n=e.objectBrowser;return{rewindEnabled:m()(n,"rewind.rewindEnabled",!1),versionsMode:m()(n,"versionsMode",!1),versionedFile:m()(n,"versionedFile","")}}),T),D=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)({},h.cx))}))(O((function(e){var n=e.classes,t=e.bucketName,i=e.internalPaths,a=e.rewindEnabled,s=e.existingFiles,r=e.versionsMode,u=e.versionedFile,m=e.hidePathButton,h=e.setVersionsModeEnabled,f=e.additionalOptions,b=(0,o.useState)(!1),g=(0,x.Z)(b,2),j=g[0],v=g[1],y=i;""!==i&&(y="/".concat(i));var S=y.split("/").filter((function(e){return""!==e})),F=S.map((function(e,n){var i=S.slice(0,n+1).join("/"),a="/buckets/".concat(t,"/browse/").concat(i?"".concat((0,Z.ug)(i)):"");return(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)("span",{children:" / "}),(0,_.jsx)(k.rU,{to:a,onClick:function(){h(!1)},children:e})]},"breadcrumbs-".concat(n.toString()))})),T=[];r&&(T=[(0,_.jsx)(o.Fragment,{children:(0,_.jsxs)("span",{children:[" / ",u," - Versions"]})},"breadcrumbs-versionedItem")]);var O=[(0,_.jsx)(o.Fragment,{children:(0,_.jsx)(k.rU,{to:"/buckets/".concat(t,"/browse"),onClick:function(){h(!1)},children:t})},"breadcrumbs-root-path")].concat((0,p.Z)(F),(0,p.Z)(T));return(0,_.jsxs)("div",{className:n.breadcrumbsMain,children:[j&&(0,_.jsx)(P,{modalOpen:j,bucketName:t,folderName:i,onClose:function(){v(!1)},existingFiles:s}),(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:"".concat(n.breadcrumbs),children:[(0,_.jsx)(l.Z,{onClick:function(){r?h(!1):N.Z.goBack()},sx:{border:"#EAEDEE 1px solid",backgroundColor:"#fff",borderLeft:0,borderRadius:0,width:38,height:38,marginRight:"10px"},children:(0,_.jsx)(C.ub,{})}),(0,_.jsx)("div",{className:n.breadcrumbsList,dir:"rtl",children:O}),(0,_.jsx)("div",{className:n.additionalOptions,children:f})]}),!m&&(0,_.jsx)(c.Z,{title:"Choose or create a new path",children:(0,_.jsx)(w.Z,{id:"new-path",onClick:function(){v(!0)},disabled:a||!(0,E.F)(t,[I.Ft.S3_PUT_OBJECT]),endIcon:(0,_.jsx)(C.N$,{}),disableTouchRipple:!0,disableRipple:!0,focusRipple:!1,sx:{color:"#969FA8",border:"#969FA8 1px solid",whiteSpace:"nowrap",minWidth:"160px"},variant:"outlined",children:"Create new path"})})]})}))),B=t(47922),M=t(42649),L=t(14917),R=t(42209),z=t(74794),A=t(71715),V=t(23786),U=t(49900),G=t(57064),W=t(40603),H=(0,r.Z)((function(e){return(0,s.Z)({listUploadIcons:{height:20,"& .min-icon":{width:18,fill:"rgba(0,0,0,0.87)"}}})}))((function(e){var n=e.uploadPath,t=e.bucketName,i=e.forceDisable,a=void 0!==i&&i,s=e.uploadFileFunction,r=e.uploadFolderFunction,c=e.classes,l=o.useState(null),d=(0,x.Z)(l,2),u=d[0],m=d[1],h=Boolean(u),f=function(){m(null)},p=(0,E.F)(n,[I.Ft.S3_PUT_OBJECT]),b=(0,E.F)(t,[I.Ft.S3_PUT_OBJECT],!1,!0),g=p||b;return(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)(W.Z,{id:"upload-main",tooltip:"Upload Files","aria-controls":"upload-main-menu","aria-haspopup":"true","aria-expanded":h?"true":void 0,onClick:function(e){m(e.currentTarget)},text:"Upload",icon:(0,_.jsx)(C.rG,{}),color:"primary",variant:"contained",disabled:a||!g}),(0,_.jsxs)(A.Z,{id:"upload-main-menu","aria-labelledby":"upload-main",anchorEl:u,open:h,onClose:function(){f()},anchorOrigin:{vertical:"bottom",horizontal:"center"},transformOrigin:{vertical:"top",horizontal:"center"},children:[(0,_.jsxs)(V.Z,{onClick:function(){s(f)},disabled:!p||a,children:[(0,_.jsx)(G.Z,{className:c.listUploadIcons,children:(0,_.jsx)(C.rG,{})}),(0,_.jsx)(U.Z,{children:"Upload File"})]}),(0,_.jsxs)(V.Z,{onClick:function(){r(f)},disabled:!b||a,children:[(0,_.jsx)(G.Z,{className:c.listUploadIcons,children:(0,_.jsx)(C.oX,{})}),(0,_.jsx)(U.Z,{children:"Upload Folder"})]})]})]})})),K=(0,r.Z)((function(e){return(0,s.Z)({detailsList:{borderColor:"#EAEDEE",backgroundColor:"#fff",borderWidth:0,borderStyle:"solid",borderRadius:3,borderBottomLeftRadius:0,borderBottomRightRadius:0,width:0,transitionDuration:"0.3s",overflowX:"hidden",overflowY:"auto",position:"relative",opacity:0,marginLeft:-1,"&.open":{width:300,minWidth:300,borderLeftWidth:1,opacity:1}},closePanel:{position:"absolute",right:0,top:8,"& .min-icon":{width:14}}})}))((function(e){var n=e.classes,t=e.open,i=e.closePanel,o=e.children;return(0,_.jsxs)(d.ZP,{item:!0,className:"".concat(n.detailsList," ").concat(t?"open":""),children:[(0,_.jsx)(l.Z,{onClick:i,className:n.closePanel,children:(0,_.jsx)(C.ot,{})}),o]})})),J=t(40986),Y=t(64554),$=t(25183),q=t(34433),X=[{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),(function(e,n){return n+1})),ee=(new Date).getFullYear(),ne=Array.from(Array(25),(function(e,n){return n+ee})),te=t(56028),ie=t(37516),oe=t(83679),ae=t(4942),se=t(28182),re=t(30829),ce=t(68096),le=t(58406),de=t(4834),ue=t(84570),me=(0,r.Z)((function(e){return(0,s.Z)({root:{"& .MuiSelect-icon":{color:"#000","&.Mui-disabled":{color:"#9c9c9c"}}},input:{borderBottom:0,fontSize:12}})}))(de.ZP),he=(0,o.forwardRef)((function(e,n){var t=e.classes,i=e.id,a=e.label,s=e.disableOptions,r=void 0!==s&&s,l=e.addSwitch,u=void 0!==l&&l,m=e.tooltip,h=void 0===m?"":m,f=e.borderBottom,p=void 0!==f&&f,b=e.onDateChange,g=e.value,j=void 0===g?"":g;(0,o.useImperativeHandle)(n,(function(){return{resetDate:M}}));var v=(0,o.useState)(!1),Z=(0,x.Z)(v,2),y=Z[0],S=Z[1],k=(0,o.useState)(""),C=(0,x.Z)(k,2),w=C[0],N=C[1],E=(0,o.useState)(""),I=(0,x.Z)(E,2),F=I[0],P=I[1],T=(0,o.useState)(""),O=(0,x.Z)(T,2),D=O[0],B=O[1];(0,o.useEffect)((function(){if(""!==j){var e=j.split("-");B(e[0]),N(e[1]),P("".concat(parseInt(e[2])))}}),[j]),(0,o.useEffect)((function(){var e=function(e,n,t){var i=Date.parse("".concat(e,"-").concat(n,"-").concat(t));if(isNaN(i))return[!1,""];var o=parseInt(n),a=parseInt(t),s=o<10?"0".concat(o):o,r=a<10?"0".concat(a):a,c=new Date(i).toISOString().split("T")[0],l="".concat(e,"-").concat(s,"-").concat(r);return[c===l,l]}(D,w,F),n=(0,x.Z)(e,2),t=n[0],i=n[1];b(i,t)}),[w,F,D,b]);var M=function(){N(""),P(""),B("")},L=function(){return r||!!u&&!y};return(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:(0,se.Z)(t.fieldContainer,(0,ae.Z)({},t.fieldContainerBorder,p)),children:[(0,_.jsx)("div",{className:t.labelContainer,children:(0,_.jsxs)(d.ZP,{container:!0,children:[(0,_.jsxs)(re.Z,{htmlFor:i,className:t.inputLabel,children:[(0,_.jsx)("span",{children:a}),""!==h&&(0,_.jsx)("div",{className:t.tooltipContainer,children:(0,_.jsx)(c.Z,{title:h,placement:"top-start",children:(0,_.jsx)("div",{className:t.tooltip,children:(0,_.jsx)(ue.Z,{})})})})]}),u&&(0,_.jsx)(ie.Z,{indicatorLabels:["Specific Date","Default (7 Days)"],checked:y,value:"date_enabled",id:"date-status",name:"date-status",onChange:function(e){S(e.target.checked),e.target.checked||b("",!0)},switchOnly:!0})]})}),(0,_.jsxs)("div",{children:[(0,_.jsx)(ce.Z,{disabled:L(),className:t.dateInput,children:(0,_.jsxs)(le.Z,{id:"".concat(i,"-month"),name:"".concat(i,"-month"),value:w,displayEmpty:!0,onChange:function(e){N(e.target.value)},input:(0,_.jsx)(me,{}),children:[(0,_.jsx)(V.Z,{value:"",disabled:!0,children:""}),X.map((function(e){return(0,_.jsx)(V.Z,{value:e.value,children:e.label},"select-".concat(i,"-monthOP-").concat(e.label))}))]})}),(0,_.jsx)(ce.Z,{disabled:L(),className:t.dateInput,children:(0,_.jsxs)(le.Z,{id:"".concat(i,"-day"),name:"".concat(i,"-day"),value:F,displayEmpty:!0,onChange:function(e){P(e.target.value)},input:(0,_.jsx)(me,{}),children:[(0,_.jsx)(V.Z,{value:"",disabled:!0,children:""}),Q.map((function(e){return(0,_.jsx)(V.Z,{value:e,children:e},"select-".concat(i,"-dayOP-").concat(e))}))]})}),(0,_.jsx)(ce.Z,{disabled:L(),className:t.dateInput,children:(0,_.jsxs)(le.Z,{id:"".concat(i,"-year"),name:"".concat(i,"-year"),value:D,displayEmpty:!0,onChange:function(e){B(e.target.value)},input:(0,_.jsx)(me,{}),children:[(0,_.jsx)(V.Z,{value:"",disabled:!0,children:""}),ne.map((function(e){return(0,_.jsx)(V.Z,{value:e,children:e},"select-".concat(i,"-yearOP-").concat(e))}))]})})]})]})})),fe=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)({dateInput:{"&:not(:last-child)":{marginRight:22}}},h.YI),h.Hr),{},{labelContainer:{flex:1},fieldContainer:(0,i.Z)((0,i.Z)({},h.YI.fieldContainer),{},{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:10,marginTop:11,marginBottom:6}),fieldContainerBorder:{borderBottom:"#9c9c9c 1px solid",marginBottom:20}}))}))(he),pe={setModalErrorSnackMessage:M.zb},xe=(0,a.$j)(null,pe),be=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},h.DF),h.ID),h.bK),{},{dateSelector:{"& div":{borderBottom:0,marginBottom:0,"& div:nth-child(2)":{border:"1px solid #EAEAEA",paddingLeft:5,"& div":{border:0}}}}}))}))(xe((function(e){var n=e.classes,t=e.open,i=e.closeModalAndRefresh,a=e.objectName,s=e.objectInfo,r=e.bucketName,c=e.setModalErrorSnackMessage,l=(0,o.useState)(!0),u=(0,x.Z)(l,2),m=u[0],h=u[1],f=(0,o.useState)(""),p=(0,x.Z)(f,2),b=p[0],g=p[1],v=(0,o.useState)(""),y=(0,x.Z)(v,2),S=y[0],k=y[1],C=(0,o.useState)(!1),N=(0,x.Z)(C,2),E=N[0],I=N[1],F=(0,o.useState)(!1),P=(0,x.Z)(F,2),T=P[0],O=P[1],D=(0,o.useState)(!1),B=(0,x.Z)(D,2),M=B[0],L=B[1];(0,o.useEffect)((function(){if(s.retention_mode&&(g(s.retention_mode.toLowerCase()),L(!0)),s.retention_until_date){var e=new Date(s.retention_until_date);if("Invalid Date"!==e.toString()){var n=e.getFullYear(),t=(o=e.getMonth()+1)<10?"0".concat(o):"".concat(o),i=e.getDate();isNaN(i)||"NaN"===t||isNaN(n)||k("".concat(n,"-").concat(t,"-").concat(i))}L(!0)}var o}),[s]);var R=(0,o.useRef)(null),z=function(){h(!1),g(""),R.current&&R.current.resetDate()},A=M&&("governance"===b||""===b);return(0,_.jsxs)(te.Z,{title:"Set Retention Policy",modalOpen:t,onClose:function(){z(),i(!1)},children:[(0,_.jsxs)("div",{className:n.spacerBottom,children:[(0,_.jsx)("strong",{children:"Selected Object"}),": ",a]}),(0,_.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:[A&&(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,_.jsx)(ie.Z,{value:"status",id:"status",name:"status",checked:m,onChange:function(e){h(!m)},label:"Status",indicatorLabels:["Enabled","Disabled"]})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,_.jsx)(oe.Z,{currentSelection:b,id:"type",name:"type",label:"Type",disableOptions:!m||M&&""!==b,onChange:function(e){g(e.target.value)},selectorOptions:[{label:"Governance",value:"governance"},{label:"Compliance",value:"compliance"}]})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:"".concat(n.dateSelector," "),children:(0,_.jsx)(fe,{id:"date",label:"Date",disableOptions:!(m&&("governance"===b||"compliance"===b)),ref:R,value:S,borderBottom:!0,onDateChange:function(e,n){I(n),n&&k(e)}})}),(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,_.jsx)(w.Z,{type:"button",variant:"outlined",color:"primary",onClick:z,children:"Reset"}),(0,_.jsx)(w.Z,{type:"submit",variant:"contained",color:"primary",disabled:m&&""===b||m&&!E||T,onClick:function(){O(!0);var e=s.name,n=s.version_id,t=m||"governance"!==b?"".concat(S,"T23:59:59Z"):"";m||"governance"!==b?function(e,n,t){j.Z.invoke("PUT","/api/v1/buckets/".concat(r,"/objects/retention?prefix=").concat((0,Z.ug)(e),"&version_id=").concat(n),{expires:t,mode:b}).then((function(e){O(!1),i(!0)})).catch((function(e){c(e),O(!1)}))}(e,n,t):function(e,n){j.Z.invoke("DELETE","/api/v1/buckets/".concat(r,"/objects/retention?prefix=").concat((0,Z.ug)(e),"&version_id=").concat(n)).then((function(){O(!1),i(!0)})).catch((function(e){c(e),O(!1)}))}(e,n)},children:"Save"})]})]})]})}))),ge=t(51691),je=t(23508),ve=t(9505),Ze={setErrorSnackMessage:M.Ih},ye=(0,a.$j)(null,Ze)((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,a=e.selectedObject,s=e.setErrorSnackMessage,r=e.versioning,c=e.selectedVersion,l=void 0===c?"":c,d=(0,ve.Z)((function(){return n(!0)}),(function(e){return s(e)})),u=(0,x.Z)(d,2),m=u[0],h=u[1],f=(0,o.useState)(!1),p=(0,x.Z)(f,2),b=p[0],g=p[1];if(!a)return null;return(0,_.jsx)(je.Z,{title:"Delete Object",confirmText:"Delete",isOpen:t,titleIcon:(0,_.jsx)(C.Nv,{}),isLoading:m,onConfirm:function(){var e=(0,Z.le)(a).endsWith("/");h("DELETE","/api/v1/buckets/".concat(i,"/objects?path=").concat(a).concat(""!==l?"&version_id=".concat(l):"&recursive=".concat(e,"&all_versions=").concat(b)))},onClose:function(){return n(!1)},confirmationContent:(0,_.jsxs)(ge.Z,{children:["Are you sure you want to delete: ",(0,_.jsx)("br",{}),(0,_.jsx)("b",{children:(0,Z.le)(a)})," ",""!==l?(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)("br",{}),(0,_.jsx)("br",{}),"Version ID:",(0,_.jsx)("br",{}),(0,_.jsx)("strong",{children:l})]}):"","? ",(0,_.jsx)("br",{}),(0,_.jsx)("br",{}),r&&""===l&&(0,_.jsx)(ie.Z,{label:"Delete All Versions",indicatorLabels:["Yes","No"],checked:b,value:"delete_versions",id:"delete-versions",name:"delete-versions",onChange:function(e){g(!b)},description:""})]})})})),Se={setModalErrorSnackMessage:M.zb},ke=(0,a.$j)(null,Se),Ce=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},h.DF),h.ID),h.bK))}))(ke((function(e){var n=e.classes,t=e.open,i=e.closeModalAndRefresh,a=e.objectName,s=e.bucketName,r=e.actualInfo,c=e.setModalErrorSnackMessage,l=(0,o.useState)(!1),u=(0,x.Z)(l,2),h=u[0],f=u[1],p=(0,o.useState)(!1),b=(0,x.Z)(p,2),g=b[0],v=b[1],y=r.version_id;(0,o.useEffect)((function(){var e=m()(r,"legal_hold_status","OFF");f("ON"===e)}),[r]);var S=function(){f(!1)};return(0,_.jsxs)(te.Z,{title:"Set Legal Hold",modalOpen:t,onClose:function(){S(),i(!1)},children:[(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.spacerBottom,children:["Object: ",s]}),(0,_.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault(),v(!0),j.Z.invoke("PUT","/api/v1/buckets/".concat(s,"/objects/legalhold?prefix=").concat((0,Z.ug)(a),"&version_id=").concat(y),{status:h?"enabled":"disabled"}).then((function(){v(!1),i(!0)})).catch((function(e){c(e),v(!1)}))}(e)},children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.formFieldRow,children:(0,_.jsx)(ie.Z,{value:"legalhold",id:"legalhold",name:"legalhold",checked:h,onChange:function(e){f(!h)},label:"Legal Hold Status",indicatorLabels:["Enabled","Disabled"],tooltip:"To enable this feature you need to enable versioning on the bucket before creation"})}),(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,_.jsx)(w.Z,{type:"button",color:"primary",variant:"outlined",onClick:S,children:"Clear"}),(0,_.jsx)(w.Z,{type:"submit",variant:"contained",color:"primary",disabled:g,children:"Save"})]})]})]})}))),we=t(78562),Ne=t(79836),Ee=t(53382),Ie=t(35855),Fe=t(53994),_e=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)({propertiesIcon:{marginLeft:5,"& .min-icon":{height:12}},capitalizeFirst:{textTransform:"capitalize","& .min-icon":{width:16,height:16}},titleCol:{width:"25%"},titleItem:{width:"35%"}},h.bK),h.$b))}))((function(e){var n=e.bucketName,t=e.internalPaths,i=e.classes,a=e.actualInfo,s=e.linear,r=void 0!==s&&s,c=(0,o.useState)({}),l=(0,x.Z)(c,2),u=l[0],h=l[1],f=(0,ve.Z)((function(e){var n=m()(e,"objectMetadata",{});h(n)}),(function(e){return!1})),p=(0,x.Z)(f,2)[1],b=Object.keys(u),g=(0,o.useCallback)((function(){p("GET","/api/v1/buckets/".concat(n,"/objects/metadata?prefix=").concat(t))}),[n,t,a]);return(0,o.useEffect)((function(){a&&g()}),[a,g]),r?(0,_.jsx)(o.Fragment,{children:b.map((function(e,n){var t=Array.isArray(u[e])?u[e].map(decodeURIComponent).join(", "):decodeURIComponent(u[e]);return(0,_.jsxs)(Y.Z,{className:i.metadataLinear,children:[(0,_.jsx)("strong",{children:e}),(0,_.jsx)("br",{}),t]},"box-meta-".concat(e,"-").concat(n.toString()))}))}):(0,_.jsxs)(d.ZP,{container:!0,children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,sx:{marginTop:"25px",marginBottom:"5px"},children:(0,_.jsx)("h3",{style:{marginTop:"0",marginBottom:"0"},children:"Object Metadata"})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,children:(0,_.jsx)(Ne.Z,{className:i.table,"aria-label":"simple table",children:(0,_.jsx)(Ee.Z,{children:b.map((function(e,n){var t=Array.isArray(u[e])?u[e].map(decodeURIComponent).join(", "):decodeURIComponent(u[e]);return(0,_.jsxs)(Ie.Z,{children:[(0,_.jsx)(Fe.Z,{component:"th",scope:"row",className:i.titleItem,children:e}),(0,_.jsx)(Fe.Z,{align:"right",children:t})]},"tRow-".concat(n.toString()))}))})})})]})})),Pe=t(45987),Te=["disabled","onClick","icon","label","classes"],Oe=(0,r.Z)((function(e){return(0,s.Z)({root:{padding:"0 15px",height:22,margin:0,color:"#5E5E5E",fontWeight:"normal",fontSize:14,whiteSpace:"nowrap",width:"100%",justifyContent:"flex-start","&:hover":{backgroundColor:"transparent",color:"#000"},"& .min-icon":{width:11},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}}})}))((function(e){var n=e.disabled,t=e.onClick,o=e.icon,a=e.label,s=e.classes,r=(0,Pe.Z)(e,Te);return(0,_.jsx)(w.Z,(0,i.Z)((0,i.Z)({},r),{},{disabled:n,onClick:t,className:s.root,startIcon:o,children:(0,_.jsx)("span",{className:"buttonItem",children:a})}))})),De=(0,r.Z)((function(){return(0,s.Z)((0,i.Z)({},h.$b))}))((function(e){var n=e.items,t=e.classes,i=e.title;return(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)("div",{className:t.titleLabel,children:i}),(0,_.jsxs)("ul",{className:t.objectActions,children:[(0,_.jsx)("li",{children:"Actions:"}),n.map((function(e,n){return(0,_.jsx)("li",{children:(0,_.jsx)(Oe,{label:e.label,icon:e.icon,onClick:e.action,disabled:e.disabled})},"action-element-".concat(n.toString()))}))]})]})})),Be=t(37762),Me=t(71863),Le=t(82314),Re=(0,r.Z)((function(e){return(0,s.Z)({fileName:{display:"flex",alignItems:"center","& .min-icon":{width:16,height:16,marginRight:4}},fileNameText:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}})}))((function(e){return(0,_.jsxs)("div",{className:e.classes.fileName,children:[e.icon,(0,_.jsx)("span",{className:e.classes.fileNameText,children:e.strings[e.strings.length-1]})]})})),ze=o.lazy((function(){return Promise.resolve().then(t.bind(t,76181))})),Ae=o.lazy((function(){return Promise.resolve().then(t.bind(t,49563))})),Ve=o.lazy((function(){return Promise.resolve().then(t.bind(t,21733))})),Ue=o.lazy((function(){return Promise.resolve().then(t.bind(t,95232))})),Ge=o.lazy((function(){return Promise.resolve().then(t.bind(t,27529))})),We=o.lazy((function(){return Promise.resolve().then(t.bind(t,60527))})),He=o.lazy((function(){return Promise.resolve().then(t.bind(t,69812))})),Ke=o.lazy((function(){return Promise.resolve().then(t.bind(t,46454))})),Je=o.lazy((function(){return Promise.resolve().then(t.bind(t,84820))})),Ye=o.lazy((function(){return Promise.resolve().then(t.bind(t,40599))})),$e=o.lazy((function(){return Promise.resolve().then(t.bind(t,72995))})),qe=o.lazy((function(){return Promise.resolve().then(t.bind(t,34171))})),Xe=o.lazy((function(){return Promise.resolve().then(t.bind(t,30745))})),Qe=o.lazy((function(){return Promise.resolve().then(t.bind(t,84033))})),en=o.lazy((function(){return Promise.resolve().then(t.bind(t,52009))})),nn=[{icon:(0,_.jsx)(Xe,{}),extensions:["mp4","mov","avi","mpeg","mpg"]},{icon:(0,_.jsx)(Je,{}),extensions:["mp3","m4a","aac"]},{icon:(0,_.jsx)(Ye,{}),extensions:["pdf"]},{icon:(0,_.jsx)($e,{}),extensions:["ppt","pptx"]},{icon:(0,_.jsx)(Qe,{}),extensions:["xls","xlsx"]},{icon:(0,_.jsx)(He,{}),extensions:["cer","crt","pem"]},{icon:(0,_.jsx)(Ae,{}),extensions:["html","xml","css","py","go","php","cpp","h","java"]},{icon:(0,_.jsx)(Ve,{}),extensions:["cfg","yaml"]},{icon:(0,_.jsx)(Ue,{}),extensions:["sql"]},{icon:(0,_.jsx)(Ge,{}),extensions:["ttf","otf"]},{icon:(0,_.jsx)(qe,{}),extensions:["txt"]},{icon:(0,_.jsx)(en,{}),extensions:["zip","rar","tar","gz"]},{icon:(0,_.jsx)(ze,{}),extensions:["epub","mobi","azw","azw3"]},{icon:(0,_.jsx)(We,{}),extensions:["jpeg","jpg","gif","tiff","png","heic","dng"]}],tn=function(e){var n=arguments.length>1&&void 0!==arguments[1]&&arguments[1],t=e,i=(0,_.jsx)(Me.Z,{});e.endsWith("/")&&(i=(0,_.jsx)(Le.Z,{}),t=e.substr(0,e.length-1));var o,a=e.toLowerCase(),s=(0,Be.Z)(nn);try{for(s.s();!(o=s.n()).done;){var r,c=o.value,l=(0,Be.Z)(c.extensions);try{for(l.s();!(r=l.n()).done;){var d=r.value;a.endsWith(".".concat(d))&&(i=c.icon)}}catch(m){l.e(m)}finally{l.f()}}}catch(m){s.e(m)}finally{s.f()}!e.endsWith("/")&&e.indexOf(".")<0&&(i=(0,_.jsx)(Ke,{}));var u=t.split("/");return n?i:(0,_.jsx)(Re,{icon:i,strings:u})},on=t(21435),an=t(81918),sn=t(29823),rn={setModalErrorSnackMessage:M.zb},cn=(0,a.$j)((function(e){var n=e.system;return{distributedSetup:m()(n,"distributedSetup",!1)}}),rn),ln=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)({pathLabel:{marginTop:0,marginBottom:32},newTileHeader:{fontSize:18,fontWeight:"bold",color:"#000",margin:"20px 0",paddingBottom:15,borderBottom:"#E2E2E2 2px solid"}},h.DF),h.ID),h.bK))}))(cn((function(e){var n=e.modalOpen,t=e.onCloseAndUpdate,a=e.bucketName,s=e.distributedSetup,r=e.actualInfo,c=e.setModalErrorSnackMessage,l=e.classes,u=(0,o.useState)(""),h=(0,x.Z)(u,2),f=h[0],p=h[1],b=(0,o.useState)(""),g=(0,x.Z)(b,2),v=g[0],y=g[1],S=(0,o.useState)(!1),k=(0,x.Z)(S,2),N=k[0],F=k[1],P=(0,o.useState)(!1),T=(0,x.Z)(P,2),O=T[0],D=T[1],B=(0,o.useState)(""),M=(0,x.Z)(B,2),L=M[0],R=M[1],z=(0,o.useState)(""),A=(0,x.Z)(z,2),V=A[0],U=A[1],G=(0,Z.ug)(r.name),W=r.tags,H=Object.keys(W||{}),K=r.name.split("/").pop()||"";return(0,_.jsx)(o.Fragment,{children:(0,_.jsx)(te.Z,{modalOpen:n,title:O?"Delete Tag":"Edit Tags for ".concat(K),onClose:function(){t(!0)},titleIcon:(0,_.jsx)(C.Dg,{}),children:O?(0,_.jsx)(o.Fragment,{children:(0,_.jsxs)(d.ZP,{container:!0,children:["Are you sure you want to delete the tag"," ",(0,_.jsxs)("b",{className:l.wrapText,children:[L," : ",V]})," ","from ",K,"?",(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:l.modalButtonBar,children:[(0,_.jsx)(w.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){R(""),U(""),D(!1)},children:"No"}),(0,_.jsx)(w.Z,{type:"submit",variant:"outlined",color:"secondary",onClick:function(){var e=(0,i.Z)({},W);delete e[L];var n=s?r.version_id:"null";j.Z.invoke("PUT","/api/v1/buckets/".concat(a,"/objects/tags?prefix=").concat(G,"&version_id=").concat(n),{tags:e}).then((function(e){t(!0),F(!1)})).catch((function(e){c(e),F(!1)}))},children:"Yes"})]})]})}):(0,_.jsxs)(d.ZP,{container:!0,children:[(0,_.jsx)(E.s,{scopes:[I.Ft.S3_GET_OBJECT_TAGGING],resource:a,children:(0,_.jsxs)(Y.Z,{sx:{display:"flex",flexFlow:"column"},children:[(0,_.jsx)("strong",{children:"Current Tags:"}),0===H.length?"No Tags for this object":"",(0,_.jsx)(Y.Z,{children:H.map((function(e,n){var t=m()(W,"".concat(e),"");return""!==t?(0,_.jsx)(E.s,{scopes:[I.Ft.S3_DELETE_OBJECT_TAGGING],resource:a,matchAll:!0,errorProps:{deleteIcon:null,onDelete:null},children:(0,_.jsx)(an.Z,{style:{textTransform:"none",marginRight:"5px"},size:"small",label:"".concat(e," : ").concat(t),color:"primary",deleteIcon:(0,_.jsx)(sn.Z,{}),onDelete:function(){!function(e,n){R(e),U(n),D(!0)}(e,t)}})},"chip-".concat(n)):null}))})]})}),(0,_.jsx)(E.s,{scopes:[I.Ft.S3_PUT_OBJECT_TAGGING],resource:a,errorProps:{disabled:!0,onClick:null},children:(0,_.jsxs)(d.ZP,{container:!0,children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,className:l.newTileHeader,children:"Add New Tag"}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:l.formFieldRow,children:(0,_.jsx)(on.Z,{value:f,label:"Tag Key",id:"newTagKey",name:"newTagKey",placeholder:"Enter Tag Key",onChange:function(e){p(e.target.value)}})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:l.formFieldRow,children:(0,_.jsx)(on.Z,{value:v,label:"Tag Label",id:"newTagLabel",name:"newTagLabel",placeholder:"Enter Tag Label",onChange:function(e){y(e.target.value)}})}),(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:l.modalButtonBar,children:[(0,_.jsx)(w.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){y(""),p("")},children:"Clear"}),(0,_.jsx)(w.Z,{type:"submit",variant:"contained",color:"primary",disabled:""===v.trim()||""===f.trim()||N,onClick:function(){F(!0);var e={};e[f]=v;var n=(0,i.Z)((0,i.Z)({},W),e),o=s?r.version_id:"null";j.Z.invoke("PUT","/api/v1/buckets/".concat(a,"/objects/tags?prefix=").concat(G,"&version_id=").concat(o),{tags:n}).then((function(e){t(!0),F(!1)})).catch((function(e){c(e),F(!1)}))},children:"Save new Tag"})]})]})})]})})})}))),dn=t(15861),un=t(87757),mn=t.n(un),hn=t(73669),fn={setErrorSnackMessage:M.Ih},pn=(0,a.$j)(null,fn),xn=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},h.DF),h.ID),h.bK))}))(pn((function(e){var n=e.classes,t=e.closeInspectModalAndRefresh,i=e.inspectOpen,a=e.inspectPath,s=e.volumeName,r=e.setErrorSnackMessage,c=function(){return t(!1)},l=(0,o.useState)(!0),u=(0,x.Z)(l,2),m=u[0],h=u[1],f=(0,o.useState)(""),p=(0,x.Z)(f,2),b=p[0],g=p[1],j=(0,o.useState)(""),v=(0,x.Z)(j,2),y=v[0],S=v[1];if(!a)return null;var k=function(){var e=(0,dn.Z)(mn().mark((function e(n){return mn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,fetch(n,{method:"GET"});case 2:return e.abrupt("return",e.sent);case 3:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}(),N=function(){var e=(0,dn.Z)(mn().mark((function e(){var n,t,i;return mn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:n=encodeURIComponent(a+"/xl.meta"),t=encodeURIComponent(s),i="/api/v1/admin/inspect?volume=".concat(t,"&file=").concat(n,"&encrypt=").concat(m),k(i).then(function(){var e=(0,dn.Z)(mn().mark((function e(n){var t,i,o,a;return mn().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(n.ok){e.next=5;break}return e.next=3,n.json();case 3:t=e.sent,r({errorMessage:t.message,detailedError:t.code});case 5:return e.next=7,n.blob();case 7:if(i=e.sent,o=n.headers.get("content-disposition").split('"')[1],a=(0,Z.Do)(o)||"",(0,Z.zZ)(i,o),S(o),""!==a){e.next=15;break}return c(),e.abrupt("return");case 15:g(a);case 16:case"end":return e.stop()}}),e)})));return function(n){return e.apply(this,arguments)}}()).catch((function(e){r(e)}));case 4:case"end":return e.stop()}}),e)})));return function(){return e.apply(this,arguments)}}();return(0,_.jsxs)(o.Fragment,{children:[!b&&(0,_.jsx)(te.Z,{modalOpen:i,titleIcon:(0,_.jsx)($.Gp,{}),title:"Inspect Object",onClose:c,children:(0,_.jsxs)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){e.preventDefault()}(e)},children:["Would you like to encrypt ",(0,_.jsx)("b",{children:(0,Z.le)(a)}),"?"," ",(0,_.jsx)("br",{}),(0,_.jsx)(ie.Z,{label:"Encrypt",indicatorLabels:["Yes","No"],checked:m,value:"encrypt",id:"encrypt",name:"encrypt",onChange:function(e){h(!m)},description:""}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:(0,_.jsx)(w.Z,{type:"submit",variant:"contained",color:"primary",onClick:N,children:"Inspect"})})]})}),b?(0,_.jsx)(te.Z,{modalOpen:i,title:"Inspect Decryption Key",onClose:function(){(0,Z.kT)(y),c(),g("")},titleIcon:(0,_.jsx)(C.tv,{}),children:(0,_.jsxs)(ge.Z,{children:[(0,_.jsxs)(Y.Z,{children:["This will be displayed only once. It cannot be recovered.",(0,_.jsx)("br",{}),"Use secure medium to share this key."]}),(0,_.jsx)(Y.Z,{children:(0,_.jsx)(hn.Z,{value:b})})]})}):null]})}))),bn={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:"0",tags:{},version_id:null},gn={setErrorSnackMessage:M.Ih,setSnackBarMessage:M.y1,setNewObject:f.Mc,updateProgress:f.RO,completeObject:f.oK,setVersionsModeEnabled:f.db,setLoadingObjectInfo:f.vH,setLoadingVersions:f.Eq,setSelectedVersion:f.M3},jn=(0,a.$j)((function(e){var n=e.objectBrowser,t=e.system;return{rewindEnabled:m()(n,"rewind.rewindEnabled",!1),rewindDate:m()(n,"rewind.dateToRewind",null),bucketToRewind:m()(n,"rewind.bucketToRewind",""),distributedSetup:m()(t,"distributedSetup",!1),versionsMode:m()(n,"versionsMode",!1),selectedVersion:m()(n,"selectedVersion",""),loadingObjectInfo:m()(n,"loadingObjectInfo",!1)}}),gn)((0,r.Z)((function(){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({ObjectDetailsTitle:{display:"flex",alignItems:"center"},objectNameContainer:{whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden",alignItems:"center",marginLeft:10},headerForSection:{display:"flex",justifyContent:"space-between",alignItems:"center",paddingBottom:15,borderBottom:"#E2E2E2 2px solid",fontWeight:"bold",fontSize:18,color:"#000",margin:"20px 22px"},capitalizeFirst:{textTransform:"capitalize"}},h.Si),h.OR),h.bK),h.VI),h.$b))}))((function(e){var n=e.classes,t=e.internalPaths,i=e.bucketName,a=e.distributedSetup,s=e.versioning,r=e.locking,c=e.setErrorSnackMessage,l=e.setNewObject,u=e.updateProgress,h=e.completeObject,f=e.versionsMode,p=e.selectedVersion,b=e.onClosePanel,g=e.setVersionsModeEnabled,v=e.loadingObjectInfo,y=e.setLoadingObjectInfo,S=e.setLoadingVersions,k=e.setSelectedVersion,N=(0,o.useState)(!1),F=(0,x.Z)(N,2),P=F[0],T=F[1],O=(0,o.useState)(!1),D=(0,x.Z)(O,2),M=D[0],L=D[1],R=(0,o.useState)(!1),z=(0,x.Z)(R,2),A=z[0],V=z[1],U=(0,o.useState)(!1),G=(0,x.Z)(U,2),W=G[0],H=G[1],K=(0,o.useState)(!1),X=(0,x.Z)(K,2),Q=X[0],ee=X[1],ne=(0,o.useState)(null),te=(0,x.Z)(ne,2),ie=te[0],oe=te[1],ae=(0,o.useState)([]),se=(0,x.Z)(ae,2),re=se[0],ce=se[1],le=(0,o.useState)(null),de=(0,x.Z)(le,2),ue=de[0],me=de[1],he=(0,o.useState)([]),fe=(0,x.Z)(he,2),pe=fe[0],xe=fe[1],ge=(0,o.useState)(!1),je=(0,x.Z)(ge,2),ve=je[0],Ze=je[1],Se=(0,o.useState)(!1),ke=(0,x.Z)(Se,2),Ne=ke[0],Ee=ke[1],Ie=(0,o.useState)(0),Fe=(0,x.Z)(Ie,2),Pe=Fe[0],Te=Fe[1],Oe=((0,Z.le)(t)||"").split("/").pop()||"",Be=[];ie&&(Be=ie.name.split("/")),(0,o.useEffect)((function(){""!==i&&t&&y(!0)}),[t,i,y]),(0,o.useEffect)((function(){if(a&&re.length>=1){var e=re.find((function(e){return e.is_latest}))||bn;""!==p&&(e=re.find((function(e){return e.version_id===p}))||bn),oe(e)}}),[p,a,re]),(0,o.useEffect)((function(){v&&""!==t&&j.Z.invoke("GET","/api/v1/buckets/".concat(i,"/objects?prefix=").concat(t).concat(a?"&with_versions=true":"")).then((function(e){var n=m()(e,"objects",[]);if(a){ce(n),xe(n);var t=n.reduce((function(e,n){return null!==n&&void 0!==n&&n.size?e+n.size:e}),0);Te(t)}else oe(n[0]),xe([]);y(!1)})).catch((function(e){c(e),y(!1)}))}),[v,i,t,c,a,p,y]);var Me=[];ie&&ie.tags&&(Me=Object.keys(ie.tags));if(!ie)return null;var Le=Be.length>0?Be[Be.length-1]:ie.name,Re=[i,Oe,[i,ie.name].join("/")],ze=[{action:function(){!function(e){var n=(0,Z.ug)("".concat(i,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random()));l({bucketName:i,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0}),(0,B.LR)(i,t,e.version_id,parseInt(e.size||"0"),(function(e){u(n,e)}),(function(){h(n)}))}(ie)},label:"Download",disabled:!!ie.is_delete_marker||!(0,E.F)(Re,[I.Ft.S3_GET_OBJECT]),icon:(0,_.jsx)(C._8,{}),tooltip:"Download this Object"},{action:function(){T(!0)},label:"Share",disabled:!!ie.is_delete_marker||!(0,E.F)(Re,[I.Ft.S3_GET_OBJECT]),icon:(0,_.jsx)(C.aA,{}),tooltip:"Share this File"},{action:function(){Ee(!0)},label:"Preview",disabled:!!ie.is_delete_marker||"none"===(0,B.Bg)(Oe)||!(0,E.F)(Re,[I.Ft.S3_GET_OBJECT]),icon:(0,_.jsx)(C.P9,{}),tooltip:"Preview this File"},{action:function(){H(!0)},label:"Legal Hold",disabled:!r||!a||!!ie.is_delete_marker||!(0,E.F)(i,[I.Ft.S3_PUT_OBJECT_LEGAL_HOLD])||""!==p,icon:(0,_.jsx)(C.fN,{}),tooltip:"Change Legal Hold rules for this File"},{action:function(){L(!0)},label:"Retention",disabled:!a||!!ie.is_delete_marker||!(0,E.F)(Re,[I.Ft.S3_GET_OBJECT_RETENTION])||""!==p,icon:(0,_.jsx)(C.E9,{}),tooltip:"Change Retention rules for this File"},{action:function(){V(!0)},label:"Tags",disabled:!!ie.is_delete_marker||""!==p||!(0,E.F)(Re,[I.Ft.S3_PUT_OBJECT_TAGGING]),icon:(0,_.jsx)(C.Dg,{}),tooltip:"Change Tags for this File"},{action:function(){ee(!0)},label:"Inspect",disabled:!a||!!ie.is_delete_marker||""!==p||!(0,E.F)(Re,[I.Ft.ADMIN_INSPECT_DATA]),icon:(0,_.jsx)($.Gp,{}),tooltip:"Inspect this file"},{action:function(){g(!f,Le)},label:f?"Hide Object Versions":"Display Object Versions",icon:(0,_.jsx)(C.cR,{}),disabled:!a||!(ie.version_id&&"null"!==ie.version_id)||!(0,E.F)(Re,[I.Ft.S3_GET_BUCKET_VERSIONING,I.Ft.S3_PUT_BUCKET_VERSIONING,I.Ft.S3_GET_OBJECT_VERSION]),tooltip:"Display Versions for this file"}];return(0,_.jsxs)(o.Fragment,{children:[P&&ie&&(0,_.jsx)(q.default,{open:P,closeModalAndRefresh:function(){me(null),T(!1)},bucketName:i,dataObject:ue||ie}),M&&ie&&(0,_.jsx)(be,{open:M,closeModalAndRefresh:function(e){L(!1),e&&y(!0)},objectName:Oe,objectInfo:ie,bucketName:i}),ve&&(0,_.jsx)(ye,{deleteOpen:ve,selectedBucket:i,selectedObject:t,closeDeleteModalAndRefresh:function(e){Ze(!1),e&&""===p?b(!0):(S(!0),k(""),y(!0))},versioning:a&&s,selectedVersion:p}),W&&ie&&(0,_.jsx)(Ce,{open:W,closeModalAndRefresh:function(e){H(!1),e&&y(!0)},objectName:ie.name,bucketName:i,actualInfo:ie}),Ne&&ie&&(0,_.jsx)(we.default,{open:Ne,bucketName:i,object:{name:ie.name,version_id:ie.version_id||"null",size:parseInt(ie.size||"0"),content_type:"",last_modified:new Date(ie.last_modified)},onClosePreview:function(){Ee(!1)}}),A&&ie&&(0,_.jsx)(ln,{modalOpen:A,bucketName:i,actualInfo:ie,onCloseAndUpdate:function(e){V(!1),e&&y(!0)}}),Q&&ie&&(0,_.jsx)(xn,{inspectOpen:Q,volumeName:i,inspectPath:ie.name,closeInspectModalAndRefresh:function(e){ee(!1),e&&y(!0)}}),!ie&&(0,_.jsx)(d.ZP,{item:!0,xs:12,children:(0,_.jsx)(J.Z,{})}),(0,_.jsx)(De,{title:(0,_.jsxs)("div",{className:n.ObjectDetailsTitle,children:[tn(Le,!0),(0,_.jsx)("span",{className:n.objectNameContainer,children:Le})]}),items:ze}),(0,_.jsx)(d.ZP,{item:!0,xs:12,sx:{textAlign:"center"},children:(0,_.jsx)(E.s,{resource:[i,Oe,[i,ie.name].join("/")],scopes:[I.Ft.S3_DELETE_OBJECT],errorProps:{disabled:!0},children:(0,_.jsxs)(w.Z,{startIcon:(0,_.jsx)(C.pJ,{}),color:"secondary",variant:"outlined",onClick:function(){Ze(!0)},disabled:""===p&&ie.is_delete_marker,sx:{width:"calc(100% - 44px)",margin:"8px 0","& svg.min-icon":{width:14,height:14}},children:["Delete",""!==p?" version":""]})})}),(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.headerForSection,children:[(0,_.jsx)("span",{children:"Object Info"}),(0,_.jsx)(C.Gv,{})]}),(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"Name:"}),(0,_.jsx)("br",{}),Le]}),""!==p&&(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"Version ID:"}),(0,_.jsx)("br",{}),p]}),(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"Size:"}),(0,_.jsx)("br",{}),(0,Z.ae)(ie.size||"0")]}),ie.version_id&&"null"!==ie.version_id&&""===p&&(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"Versions:"}),(0,_.jsx)("br",{}),pe.length," version",1!==pe.length?"s":"",","," ",(0,Z.l5)(Pe)]}),""===p&&(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"Last Modified:"}),(0,_.jsx)("br",{}),function(e){var n=new Date,t=new Date(e),i=n.getTime()-t.getTime(),o=(0,Z.nF)(i,"ms");return""!==o.trim()?"".concat(o," ago"):"Just now"}(ie.last_modified)]}),(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"ETAG:"}),(0,_.jsx)("br",{}),ie.etag||"N/A"]}),(0,_.jsxs)(Y.Z,{className:n.detailContainer,children:[(0,_.jsx)("strong",{children:"Tags:"}),(0,_.jsx)("br",{}),0===Me.length?"N/A":Me.map((function(e,n){return(0,_.jsxs)("span",{children:[e,":",m()(ie,"tags.".concat(e),""),n div":{borderBottomColor:"#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"},versionData:{marginRight:"10px",fontSize:12,color:"#868686"},ctrItem:{position:"relative","&::before":{content:"' '",display:"block",position:"absolute",width:"2px",height:"calc(100% + 2px)",backgroundColor:"#F8F8F8",left:"24px"}}})}))((function(e){var n=e.classes,t=e.fileName,i=e.versionInfo,o=e.isSelected,a=e.onShare,s=e.onDownload,r=e.onRestore,u=e.onPreview,m=e.globalClick,h=e.index,f=i.is_delete_marker,p=[{icon:(0,_.jsx)(C.P9,{}),action:u,tooltip:"Preview"},{icon:(0,_.jsx)(C._8,{}),action:s,tooltip:"Download this version"},{icon:(0,_.jsx)(C.aA,{}),action:a,tooltip:"Share this version"},{icon:(0,_.jsx)(C.D7,{}),action:r,tooltip:"Restore this version"}],x=null;return i.is_delete_marker?x="deleted":i.is_latest?x="current":"null"===i.version_id&&(x="null"),(0,_.jsx)(d.ZP,{container:!0,flex:1,className:n.ctrItem,onClick:function(){m(i)},children:(0,_.jsx)(d.ZP,{item:!0,xs:12,className:"".concat(n.intermediateLayer," ").concat(o?"selected":""),children:(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:"".concat(n.mainFileVersionItem," ").concat(i.is_delete_marker?"deleted":""),children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,justifyContent:"space-between",children:(0,_.jsxs)(d.ZP,{container:!0,children:[(0,_.jsxs)(d.ZP,{item:!0,xs:4,className:n.versionContainer,children:[tn(t,!0)," v",h.toString(),x&&(0,_.jsx)(_n,{type:x})]}),(0,_.jsx)(d.ZP,{item:!0,xs:8,className:n.buttonContainer,children:p.map((function(e,t){return(0,_.jsx)(c.Z,{title:e.tooltip,children:(0,_.jsx)(l.Z,{size:"small",id:"version-action-".concat(e.tooltip,"-").concat(t.toString()),className:"".concat(n.spacing," ").concat(f?n.buttonDisabled:""),disabled:f,onClick:function(n){n.stopPropagation(),f?n.preventDefault():e.action(i)},sx:{backgroundColor:"#F8F8F8",borderRadius:"100%",width:"28px",height:"28px",padding:"5px","& .min-icon":{width:"14px",height:"14px"}},children:e.icon})},"version-action-".concat(e.tooltip,"-").concat(t.toString()))}))})]})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.versionID,children:"null"!==i.version_id?i.version_id:"-"}),(0,_.jsxs)(d.ZP,{item:!0,xs:12,children:[(0,_.jsxs)("span",{className:n.versionData,children:[(0,_.jsx)("strong",{children:"Last modified:"})," ",(0,_.jsx)(Zn(),{children:i.last_modified})]}),(0,_.jsxs)("span",{className:n.versionData,children:[(0,_.jsx)("strong",{children:"Size:"})," ",(0,Z.ae)(i.size||"0")]})]})]})})})})),Tn=t(90673),On={setErrorSnackMessage:M.Ih},Dn=(0,a.$j)(null,On)((function(e){var n=e.closeDeleteModalAndRefresh,t=e.deleteOpen,i=e.selectedBucket,a=e.selectedObject,s=e.setErrorSnackMessage,r=(0,o.useState)(!1),c=(0,x.Z)(r,2),l=c[0],u=c[1],m=(0,o.useState)(""),h=(0,x.Z)(m,2),f=h[0],p=h[1];if((0,o.useEffect)((function(){l&&j.Z.invoke("DELETE","/api/v1/buckets/".concat(i,"/objects?path=").concat(a,"&non_current_versions=true")).then((function(){n(!0)})).catch((function(e){s(e),u(!1)}))}),[l,n,s,a,i]),!a)return null;return(0,_.jsx)(je.Z,{title:"Delete Non-Current versions",confirmText:"Delete",isOpen:t,titleIcon:(0,_.jsx)(C.Nv,{}),isLoading:l,onConfirm:function(){u(!0)},onClose:function(){return n(!1)},confirmButtonProps:{disabled:"YES, PROCEED"!==f||l},confirmationContent:(0,_.jsxs)(ge.Z,{children:["Are you sure you want to delete all the non-current versions for:"," ",(0,_.jsx)("b",{children:(0,Z.le)(a)}),"? ",(0,_.jsx)("br",{}),(0,_.jsx)("br",{}),"To continue please type ",(0,_.jsx)("b",{children:"YES, PROCEED"})," in the box.",(0,_.jsx)(d.ZP,{item:!0,xs:12,children:(0,_.jsx)(on.Z,{id:"type-confirm",name:"retype-tenant",onChange:function(e){p(e.target.value)},label:"",value:f})})]})})})),Bn={is_latest:!0,last_modified:"",legal_hold_status:"",name:"",retention_mode:"",retention_until_date:"",size:"0",tags:{},version_id:null},Mn={setErrorSnackMessage:M.Ih,setSnackBarMessage:M.y1,setNewObject:f.Mc,updateProgress:f.RO,completeObject:f.oK,setSelectedVersion:f.M3,setLoadingVersions:f.Eq,setLoadingObjectInfo:f.vH},Ln=(0,a.$j)((function(e){var n=e.system,t=e.objectBrowser;return{distributedSetup:m()(n,"distributedSetup",!1),searchVersions:t.searchVersions,loadingVersions:t.loadingVersions,selectedVersion:t.selectedVersion}}),Mn)((0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({versionsContainer:{padding:10},noBottomBorder:{borderBottom:0},versionsVirtualPanel:{flexGrow:1,height:"calc(100% - 120px)",overflow:"auto"},screenTitleContainer:{position:"relative","&::before":{content:"' '",display:"block",position:"absolute",width:"2px",backgroundColor:"#F8F8F8",left:"24px",height:"40px",bottom:0}},sortByLabel:{color:"#838383",fontWeight:"bold",whiteSpace:"nowrap",marginRight:12,fontSize:14}},h.bp),h.Si),h.OR),h.VX),h.bK),h.VI),h.cx),h.C4),(0,h.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.distributedSetup,i=e.setErrorSnackMessage,a=e.setNewObject,s=e.updateProgress,r=e.searchVersions,c=e.loadingVersions,l=e.selectedVersion,u=e.completeObject,h=e.internalPaths,f=e.bucketName,p=e.setSelectedVersion,b=e.setLoadingVersions,g=e.setLoadingObjectInfo,v=(0,o.useState)(!1),y=(0,x.Z)(v,2),S=y[0],k=y[1],w=(0,o.useState)(null),N=(0,x.Z)(w,2),E=N[0],I=N[1],F=(0,o.useState)(null),P=(0,x.Z)(F,2),T=P[0],O=P[1],M=(0,o.useState)([]),R=(0,x.Z)(M,2),z=R[0],A=R[1],V=(0,o.useState)(!1),U=(0,x.Z)(V,2),G=U[0],H=U[1],K=(0,o.useState)(""),Y=(0,x.Z)(K,2),$=Y[0],X=Y[1],Q=(0,o.useState)("date"),ee=(0,x.Z)(Q,2),ne=ee[0],te=ee[1],ie=(0,o.useState)(!1),oe=(0,x.Z)(ie,2),ae=oe[0],se=oe[1],re=(0,o.useState)(!1),ce=(0,x.Z)(re,2),le=ce[0],de=ce[1],ue=[];E&&(ue=E.name.split("/")),(0,o.useEffect)((function(){c&&""!==h&&j.Z.invoke("GET","/api/v1/buckets/".concat(f,"/objects?prefix=").concat(h).concat(t?"&with_versions=true":"")).then((function(e){var n=m()(e,"objects",[]);t?(I(n.find((function(e){return e.is_latest}))||Bn),A(n)):(I(n[0]),A([])),b(!1)})).catch((function(e){i(e),b(!1)}))}),[b,c,f,h,i,t]);var me=function(e){O(e),k(!0)},he=function(e){O(e),se(!0)},fe=function(e){X(e.version_id||""),H(!0)},pe=function(e){!function(e){var n=(0,Z.ug)("".concat(f,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random()));a({bucketName:f,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0}),(0,B.LR)(f,h,e.version_id,parseInt(e.size||"0"),(function(e){s(n,e)}),(function(){u(n)}))}(e)},xe=function(e){p(e.version_id||"")},be=z.filter((function(e){return!!e.version_id&&e.version_id.includes(r)})),ge=z.reduce((function(e,n){return n.size?e+parseInt(n.size):e}),0);be.sort((function(e,n){if("size"===ne)return e.size&&n.size?e.sizen.size?1:0:0;var t=new Date(e.last_modified).getTime(),i=new Date(n.last_modified).getTime();return ti?-1:0}));return(0,_.jsxs)(o.Fragment,{children:[S&&E&&(0,_.jsx)(q.default,{open:S,closeModalAndRefresh:function(){O(null),k(!1),se(!1)},bucketName:f,dataObject:T||E}),G&&E&&(0,_.jsx)(In,{restoreOpen:G,bucketName:f,versionID:$,objectPath:E.name,onCloseAndUpdate:function(e){H(!1),X(""),e&&(b(!0),g(!0))}}),ae&&E&&(0,_.jsx)(we.default,{open:ae,bucketName:f,object:{name:E.name,version_id:T&&T.version_id?T.version_id:"null",size:parseInt(T&&T.size?T.size:"0"),content_type:"",last_modified:new Date(E.last_modified)},onClosePreview:function(){se(!1)}}),le&&(0,_.jsx)(Dn,{deleteOpen:le,closeDeleteModalAndRefresh:function(e){de(!1),e&&(b(!0),p(""),g(!0))},selectedBucket:f,selectedObject:h}),(0,_.jsxs)(d.ZP,{container:!0,className:n.versionsContainer,children:[!E&&(0,_.jsx)(d.ZP,{item:!0,xs:12,children:(0,_.jsx)(J.Z,{})}),E&&(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,children:(0,_.jsx)(D,{bucketName:f,internalPaths:(0,Z.le)(h),existingFiles:[],hidePathButton:!0})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.screenTitleContainer,children:(0,_.jsx)(L.Z,{icon:(0,_.jsx)("span",{className:n.listIcon,children:(0,_.jsx)(C.cR,{})}),title:(0,_.jsxs)("span",{className:n.titleSpacer,children:[ue.length>0?ue[ue.length-1]:E.name," ","Versions"]}),subTitle:(0,_.jsx)(o.Fragment,{children:(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.bucketDetails,children:[(0,_.jsx)("span",{className:n.detailsSpacer,children:(0,_.jsxs)("strong",{children:[z.length," Version",1===z.length?"":"s","\xa0\xa0\xa0"]})}),(0,_.jsx)("span",{className:n.detailsSpacer,children:(0,_.jsx)("strong",{children:(0,Z.l5)(ge)})})]})}),actions:(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)(W.Z,{id:"delete-non-current",tooltip:"Delete Non Current Versions",onClick:function(){de(!0)},text:"",icon:(0,_.jsx)(C.ut,{}),color:"secondary",style:{marginRight:15},disabled:z.length<=1}),(0,_.jsx)("span",{className:n.sortByLabel,children:"Sort by"}),(0,_.jsx)(Tn.Z,{id:"sort-by",label:"",value:ne,onChange:function(e){te(e.target.value)},name:"sort-by",options:[{label:"Date",value:"date"},{label:"Size",value:"size"}]})]}),className:n.noBottomBorder})}),(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.versionsVirtualPanel,children:E.version_id&&"null"!==E.version_id&&(0,_.jsx)(Fn.Z,{rowRenderFunction:function(e){var n=be[e],t=z.length-z.indexOf(n);return(0,_.jsx)(Pn,{fileName:(null===E||void 0===E?void 0:E.name)||"",versionInfo:n,index:t,onDownload:pe,onRestore:fe,onShare:me,onPreview:he,globalClick:xe,isSelected:l===n.version_id})},totalItems:be.length,defaultHeight:108})})]})]})]})}))),Rn=t(34866),zn=o.lazy((function(){return Promise.resolve().then(t.bind(t,13065))})),An=o.lazy((function(){return Promise.resolve().then(t.bind(t,28789))})),Vn=o.lazy((function(){return Promise.resolve().then(t.bind(t,74768))})),Un=(0,F.Z)(o.lazy((function(){return t.e(711).then(t.bind(t,50711))}))),Gn=(0,F.Z)(o.lazy((function(){return Promise.resolve().then(t.bind(t,34433))}))),Wn=(0,F.Z)(o.lazy((function(){return Promise.all([t.e(5561),t.e(8810),t.e(6901)]).then(t.bind(t,26901))}))),Hn=(0,F.Z)(o.lazy((function(){return Promise.resolve().then(t.bind(t,78562))}))),Kn={borderWidth:2,borderRadius:2,borderColor:"#eeeeee",outline:"none"},Jn={borderStyle:"dashed",backgroundColor:"#fafafa",borderColor:"#2196f3"},Yn={borderStyle:"dashed",backgroundColor:"#fafafa",borderColor:"#00e676"};var $n=(0,_.jsx)(y.Z,{component:"h3",children:"Loading..."}),qn={setSnackBarMessage:M.y1,setErrorSnackMessage:M.Ih,resetRewind:f._w,setBucketDetailsLoad:R.d5,setBucketInfo:R.f4,setNewObject:f.Mc,updateProgress:f.RO,completeObject:f.oK,openList:f.LD,setSearchObjects:f.G4,setVersionsModeEnabled:f.db,setShowDeletedObjects:f.mz,setLoadingVersions:f.Eq},Xn=(0,a.$j)((function(e){var n=e.objectBrowser,t=e.buckets;return{routesList:m()(n,"routesList",[]),downloadingFiles:m()(n,"downloadingFiles",[]),rewindEnabled:m()(n,"rewind.rewindEnabled",!1),rewindDate:m()(n,"rewind.dateToRewind",null),bucketToRewind:m()(n,"rewind.bucketToRewind",""),versionsMode:m()(n,"versionsMode",!1),loadingBucket:t.bucketDetails.loadingBucket,bucketInfo:t.bucketDetails.bucketInfo,searchObjects:n.searchObjects,showDeleted:n.showDeleted}}),qn),Qn=(0,g.EN)(Xn((0,r.Z)((function(e){return(0,s.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({browsePaper:{border:0,height:"calc(100vh - 210px)","&.actionsPanelOpen":{minHeight:"100%"}},"@global":{".rowLine:hover .iconFileElm":{backgroundImage:"url(/images/ob_file_filled.svg)"},".rowLine:hover .iconFolderElm":{backgroundImage:"url(/images/ob_folder_filled.svg)"}},badgeOverlap:{"& .MuiBadge-badge":{top:10,right:1,width:5,height:5,minWidth:5}},screenTitle:{borderBottom:0,paddingTop:0,paddingLeft:0,paddingRight:0}},h.VX),h.OR),h.qg),{},{searchField:(0,i.Z)((0,i.Z)({},h.qg.searchField),{},{maxWidth:380}),screenTitleContainer:{border:"#EAEDEE 1px solid",padding:"0.8rem 15px 0"},labelStyle:{color:"#969FA8",fontSize:"12px"},breadcrumbsContainer:{padding:"12px 14px 5px"}},h.C4),h.cx),(0,h.Bz)(e.spacing(4))))}))((function(e){var n=e.classes,t=e.match,a=e.history,s=e.rewindEnabled,r=e.rewindDate,c=e.bucketToRewind,l=e.setSnackBarMessage,u=e.setErrorSnackMessage,h=e.resetRewind,f=e.setBucketDetailsLoad,g=e.loadingBucket,k=e.setBucketInfo,w=e.bucketInfo,N=e.setNewObject,F=e.updateProgress,P=e.completeObject,T=e.setSearchObjects,O=e.searchObjects,M=e.versionsMode,R=e.openList,A=e.setVersionsModeEnabled,V=e.showDeleted,U=e.setShowDeletedObjects,G=e.setLoadingVersions,J=(0,o.useState)([]),Y=(0,x.Z)(J,2),$=Y[0],q=Y[1],X=(0,o.useState)(!0),Q=(0,x.Z)(X,2),ee=Q[0],ne=Q[1],te=(0,o.useState)([]),ie=(0,x.Z)(te,2),oe=ie[0],ae=ie[1],se=(0,o.useState)(!1),re=(0,x.Z)(se,2),ce=re[0],le=re[1],de=(0,o.useState)(!1),ue=(0,x.Z)(de,2),me=ue[0],he=ue[1],fe=(0,o.useState)(0),pe=(0,x.Z)(fe,2),xe=pe[0],be=pe[1],ge=(0,o.useState)($n),je=(0,x.Z)(ge,2),ve=je[0],Ze=je[1],ye=(0,o.useState)(!0),Se=(0,x.Z)(ye,2),ke=Se[0],Ce=Se[1],we=(0,o.useState)(!1),Ne=(0,x.Z)(we,2),Ee=Ne[0],Ie=Ne[1],Fe=(0,o.useState)(!0),_e=(0,x.Z)(Fe,2),Pe=_e[0],Te=_e[1],Oe=(0,o.useState)(!1),Be=(0,x.Z)(Oe,2),Me=Be[0],Le=Be[1],Re=(0,o.useState)(!1),ze=(0,x.Z)(Re,2),Ae=ze[0],Ve=ze[1],Ue=(0,o.useState)([]),Ge=(0,x.Z)(Ue,2),We=Ge[0],He=Ge[1],Ke=(0,o.useState)(!1),Je=(0,x.Z)(Ke,2),Ye=Je[0],$e=Je[1],qe=(0,o.useState)(null),Xe=(0,x.Z)(qe,2),Qe=Xe[0],en=Xe[1],nn=(0,o.useState)(!1),tn=(0,x.Z)(nn,2),on=tn[0],an=tn[1],sn=(0,o.useState)("ASC"),rn=(0,x.Z)(sn,2),cn=rn[0],ln=rn[1],dn=(0,o.useState)("name"),un=(0,x.Z)(dn,2),mn=un[0],hn=un[1],fn=(0,o.useState)(!1),pn=(0,x.Z)(fn,2),xn=pn[0],bn=pn[1],gn=(0,o.useState)(!1),vn=(0,x.Z)(gn,2),Zn=vn[0],yn=vn[1],Sn=(0,o.useState)(!1),wn=(0,x.Z)(Sn,2),Nn=wn[0],En=wn[1],In=(0,o.useState)(!1),Fn=(0,x.Z)(In,2),_n=Fn[0],Pn=Fn[1],Tn=(0,o.useState)(null),On=(0,x.Z)(Tn,2),Dn=On[0],Bn=On[1],Mn=(0,o.useState)(null),qn=(0,x.Z)(Mn,2),Xn=qn[0],Qn=qn[1],et=m()(t.params,"subpaths",""),nt=t.params.bucketName,tt=(0,o.useRef)(null),it=(0,o.useRef)(null);(0,o.useEffect)((function(){null!==it.current&&(it.current.setAttribute("directory",""),it.current.setAttribute("webkitdirectory",""))}),[it]),(0,o.useEffect)((function(){if(1===We.length){var e=We[0];"none"!==(0,B.Bg)(e)?En(!0):En(!1),e.endsWith("/")?yn(!1):yn(!0)}else yn(!1),En(!1)}),[We]),(0,o.useEffect)((function(){Xn||j.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/quota")).then((function(e){var n=null;e.quota&&(n=e),Qn(n)})).catch((function(){Qn(null)}))}),[Xn,nt]),(0,o.useEffect)((function(){We.length>0?Pn(!0):0===We.length&&null===Dn&&Pn(!1)}),[We,Dn]);var ot=(0,E.F)(nt,[I.Ft.S3_DELETE_OBJECT]),at=(0,E.F)(nt,[I.Ft.S3_LIST_BUCKET]);(0,o.useEffect)((function(){xn||(f(!0),bn(!0))}),[xn,f,bn]),function(e,n){var t=(0,o.useRef)(null);(0,o.useEffect)((function(){t.current=e}),[e]),(0,o.useEffect)((function(){if(null!==n){var e=setInterval((function(){void 0!==t&&t.current&&t.current()}),n);return function(){return clearInterval(e)}}}),[n])}((function(){ee&&function(){var e=Date.now()-xe;e/1e3>=6?Ze((0,_.jsx)(o.Fragment,{children:(0,_.jsxs)(y.Z,{component:"h3",children:["This operation is taking longer than expected... (",Math.ceil(e/1e3),"s)"]})})):e/1e3>=3&&Ze((0,_.jsx)(y.Z,{component:"h3",children:"This operation is taking longer than expected..."}))}()}),1e3),(0,o.useEffect)((function(){ke&&(at?j.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/versioning")).then((function(e){Ie(e.is_versioned),Ce(!1)})).catch((function(e){u(e),Ce(!1)})):Ce(!1))}),[nt,ke,u,at]),(0,o.useEffect)((function(){Pe&&(at?j.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/object-locking")).then((function(e){Le(e.object_locking_enabled),Te(!1)})).catch((function(e){u(e),Te(!1)})):Te(!1))}),[nt,Pe,u,at]),(0,o.useEffect)((function(){if(s){if(c!==nt)return void h();if(r){le(!0);var e=r.toISOString(),n="";if(et){var t=(0,Z.le)(et);n=t.endsWith("/")?t:t+"/"}j.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/rewind/").concat(e).concat(n?"?prefix=".concat((0,Z.ug)(n)):"")).then((function(e){if(le(!1),e.objects){var n=e.objects.filter((function(e){return e.name!==(0,Z.le)(et)}));ae(n)}else ae([])})).catch((function(e){le(!1),u(e)}))}}}),[s,r,c,nt,t,u,h,et]),(0,o.useEffect)((function(){ne(!0),Pn(!1),T("")}),[et,T]),(0,o.useEffect)((function(){if(ee)if(at){var e="";if(et){var n=(0,Z.le)(et);e=n.endsWith("/")?n:n+"/"}var t=Date.now();be(t),Ze($n);var i="/api/v1/buckets/".concat(nt,"/objects");if(V){var o=(new Date).toISOString();i="/api/v1/buckets/".concat(nt,"/rewind/").concat(o)}j.Z.invoke("GET","".concat(i).concat(e?"?prefix=".concat((0,Z.ug)(e)):"")).then((function(n){var t=n.objects||[],i=[],o=[];t.forEach((function(e){e.name!==(0,Z.le)(et)&&(e.name.endsWith("/")?i.push(e):o.push(e))}));var a=[].concat(i,o);if(q(a),n.objects||""===e)ne(!1);else if(s){var c=r.toISOString(),l="";if(et){var d=(0,Z.le)(et);l=d.endsWith("/")?d:d+"/"}j.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/rewind/").concat(c).concat(l?"?prefix=".concat((0,Z.ug)(l)):"")).then((function(e){e.objects,le(!1),ne(!1)})).catch((function(e){le(!1),ne(!1),u(e)}))}else j.Z.invoke("GET","/api/v1/buckets/".concat(nt,"/objects").concat(et?"?prefix=".concat(et):"")).then((function(n){if(n.objects){for(var t=e.slice(0,e.length-1),i=0;i1,b="An error occurred while uploading the file".concat(x?"s":"","."),g={413:"Error - File size too large"};p.withCredentials=!1,p.onload=function(e){if(p.status>=200&&p.status<300)P(f),a({status:p.status});else{if(g[p.status])b=g[p.status];else if(p.response)try{var n=JSON.parse(p.response);b=n.detailedMessage}catch(t){b="something went wrong"}s({status:p.status,message:b})}},p.upload.addEventListener("error",(function(e){s(b)})),p.upload.addEventListener("progress",(function(e){var n=Math.floor(100*e.loaded/e.total);F(f,n)})),p.onerror=function(){s(b)},p.onloadend=function(){0===e.length&&ne(!0)};var j=new FormData;void 0!==o.size&&(j.append(o.size.toString(),l,c),p.send(j))}))},a=[];R();for(var s=0;s0){var t=a.length,i=a.length-n.length,o={errorMessage:"There were some errors during file upload",detailedError:"Uploaded files ".concat(i,"/").concat(t)};console.log("upload results",e),u(o)}}))}(e,nt,t,n)}),[nt,P,et,R,N,u,F]),ct=(0,o.useCallback)((function(e){if(e&&e.length>0){var n=e[0].path;rt(e,n)}}),[rt]),lt=(0,b.uI)({noClick:!0,onDrop:ct}),dt=lt.getRootProps,ut=lt.getInputProps,mt=lt.isDragActive,ht=lt.isDragAccept,ft=(0,o.useMemo)((function(){return(0,i.Z)((0,i.Z)((0,i.Z)({},Kn),mt?Jn:{}),ht?Yn:{})}),[mt,ht]),pt=$.filter((function(e){return""===O||e.name.toLowerCase().indexOf(O.toLowerCase())>=0})),xt=(0,Z.le)(et),bt=xt.split("/").filter((function(e){return""!==e})),gt=(s?oe:pt).sort((0,B.P_)(mn)),jt=[];jt="ASC"===cn?gt:gt.reverse();var vt=[nt];bt.length>0&&(vt=vt.concat(bt));var Zt=function(e){Pn(!1),Bn(null),He([]),A(!1),e&&ne(!0)},yt=[{type:"view",label:"View",onClick:function(e){if(He([]),e.endsWith("/")){var n="/buckets/".concat(nt,"/browse").concat(e?"/".concat((0,Z.ug)(e)):"");a.push(n)}else Pn(!0),G(!0),Bn("".concat(e?"".concat((0,Z.ug)(e)):""))},sendOnlyId:!0}],St=[{action:function(){if(0!==We.length){var e=function(e){return We.includes(e.name)};(s?oe.filter(e):pt.filter(e)).forEach((function(e){!function(e){var n=(0,Z.ug)("".concat(nt,"-").concat(e.name,"-").concat((new Date).getTime(),"-").concat(Math.random()));N({bucketName:nt,done:!1,instanceID:n,percentage:0,prefix:e.name,type:"download",waitingForFile:!0}),(0,B.LR)(nt,(0,Z.ug)(e.name),e.version_id,e.size,(function(e){F(n,e)}),(function(){P(n)}))}(e)}))}},label:"Download",disabled:0===We.length,icon:(0,_.jsx)(C._8,{}),tooltip:"Download Selected"},{action:function(){if(1===We.length){var e;(e=pt.find((function(e){return We.includes(e.name)})))&&(en(e),an(!0))}},label:"Share",disabled:1!==We.length||!Zn,icon:(0,_.jsx)(C.aA,{}),tooltip:"Share Selected File"},{action:function(){if(1===We.length){var e;(e=pt.find((function(e){return We.includes(e.name)})))&&(en(e),$e(!0))}},label:"Preview",disabled:1!==We.length||!Nn,icon:(0,_.jsx)(C.P9,{}),tooltip:"Preview Selected File"},{action:function(){he(!0)},label:"Delete",icon:(0,_.jsx)(Vn,{}),disabled:!(0,E.F)(nt,[I.Ft.S3_DELETE_OBJECT])||0===We.length||!ot,tooltip:"Delete Selected Files"}];return(0,_.jsxs)(o.Fragment,{children:[on&&Qe&&(0,_.jsx)(Gn,{open:on,closeModalAndRefresh:function(){an(!1),en(null)},bucketName:nt,dataObject:{name:Qe.name,last_modified:"",version_id:Qe.version_id}}),me&&(0,_.jsx)(Un,{deleteOpen:me,selectedBucket:nt,selectedObjects:We,closeDeleteModalAndRefresh:function(e){he(!1),e&&(l("Objects deleted successfully."),He([]),ne(!0))},versioning:Ee}),Ae&&(0,_.jsx)(Wn,{open:Ae,closeModalAndRefresh:function(e){Ve(!1)},bucketName:nt}),Ye&&(0,_.jsx)(Hn,{open:Ye,bucketName:nt,object:Qe,onClosePreview:function(){$e(!1),en(null)}}),(0,_.jsxs)(z.Z,{children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.screenTitleContainer,children:(0,_.jsx)(L.Z,{className:n.screenTitle,icon:(0,_.jsx)("span",{className:n.listIcon,children:(0,_.jsx)(C.wN,{})}),title:(0,_.jsx)("span",{className:n.titleSpacer,children:nt}),subTitle:(0,_.jsx)(o.Fragment,{children:(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.bucketDetails,children:[(0,_.jsxs)("span",{className:n.detailsSpacer,children:["Created:\xa0\xa0\xa0",(0,_.jsx)("strong",{children:(null===w||void 0===w?void 0:w.creation_date)||""})]}),(0,_.jsxs)("span",{className:n.detailsSpacer,children:["Access:\xa0\xa0\xa0",(0,_.jsx)("strong",{children:(null===w||void 0===w?void 0:w.access)||""})]}),w&&(0,_.jsx)(o.Fragment,{children:(0,_.jsxs)("span",{className:n.detailsSpacer,children:[w.size&&(0,_.jsx)(o.Fragment,{children:(0,Z.l5)(w.size)}),w.size&&Xn&&(0,_.jsxs)(o.Fragment,{children:[" / ",(0,Z.l5)(Xn.quota)]}),w.size&&w.objects?" - ":"",w.objects&&(0,_.jsxs)(o.Fragment,{children:[w.objects,"\xa0Object",w.objects&&1!==w.objects?"s":""]})]})})]})}),actions:(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)(W.Z,{id:"rewind-objects-list",tooltip:"Rewind Bucket",text:"Rewind",icon:(0,_.jsx)(S.Z,{badgeContent:" ",color:"secondary",variant:"dot",invisible:!s,className:n.badgeOverlap,sx:{height:12},children:(0,_.jsx)(zn,{})}),color:"primary",variant:"outlined",onClick:function(){Ve(!0)},disabled:!Ee||!(0,E.F)(nt,[I.Ft.S3_PUT_OBJECT])}),(0,_.jsx)(W.Z,{id:"refresh-objects-list",tooltip:"Reload List",text:"Refresh",icon:(0,_.jsx)(An,{}),color:"primary",variant:"outlined",onClick:function(){M?G(!0):ne(!0)},disabled:!(0,E.F)(nt,[I.Ft.S3_LIST_BUCKET])||s}),(0,_.jsx)("input",{type:"file",multiple:!0,onChange:st,style:{display:"none"},ref:tt}),(0,_.jsx)("input",{type:"file",multiple:!0,onChange:st,style:{display:"none"},ref:it}),(0,_.jsx)(H,{bucketName:nt,uploadPath:vt.join("/"),uploadFileFunction:function(e){tt&&tt.current&&tt.current.click(),e()},uploadFolderFunction:function(e){it&&it.current&&it.current.click(),e()}})]})})}),(0,_.jsxs)("div",(0,i.Z)((0,i.Z)({id:"object-list-wrapper"},dt({style:(0,i.Z)({},ft)})),{},{children:[(0,_.jsx)("input",(0,i.Z)({},ut())),(0,_.jsxs)(d.ZP,{item:!0,xs:12,className:n.tableBlock,sx:{border:"#EAEDEE 1px solid",borderTop:0},children:[M?(0,_.jsx)(o.Fragment,{children:null!==Dn&&(0,_.jsx)(Ln,{internalPaths:Dn,bucketName:nt})}):(0,_.jsx)(E.s,{scopes:[I.Ft.S3_LIST_BUCKET],resource:nt,errorProps:{disabled:!0},children:(0,_.jsxs)(d.ZP,{item:!0,xs:12,children:[(0,_.jsx)(d.ZP,{item:!0,xs:12,className:n.breadcrumbsContainer,children:(0,_.jsx)(D,{bucketName:nt,internalPaths:xt,existingFiles:$||[],additionalOptions:!Ee||s?null:(0,_.jsx)("div",{children:(0,_.jsx)(Rn.Z,{name:"deleted_objects",id:"showDeletedObjects",value:"deleted_on",label:"Show deleted objects",onChange:function(){U(!V),Zt(!0)},checked:V,overrideLabelClasses:n.labelStyle,noTopMargin:!0})}),hidePathButton:!1})}),(0,_.jsx)(v.Z,{itemActions:yt,columns:s?Cn:kn,isLoading:s?ce:ee,loadingMessage:ve,entityName:"Objects",idField:"name",records:jt,customPaperHeight:"".concat(n.browsePaper," ").concat(_n?"actionsPanelOpen":""),selectedItems:We,onSelect:function(e){var n=e.target,t=n.value,i=n.checked,o=(0,p.Z)(We);return i?o.push(t):o=o.filter((function(e){return e!==t})),He(o),Bn(null),o},customEmptyMessage:"This location is empty".concat(s?"":", please try uploading a new file"),sortConfig:{currentSort:mn,currentDirection:cn,triggerSort:function(e){var n=m()(e,"sortDirection","DESC");hn(e.sortBy),ln(n),ne(!0)}},onSelectAll:function(){if(Bn(null),We.length!==jt.length){var e=jt.map((function(e){return e.name}));He(e)}else He([])},rowStyle:function(e){var n,t=e.index;return null!==(n=jt[t])&&void 0!==n&&n.delete_flag?"deleted":""}})]})}),(0,_.jsx)(E.s,{scopes:[I.Ft.S3_LIST_BUCKET],resource:nt,errorProps:{disabled:!0},children:(0,_.jsxs)(K,{open:_n,closePanel:function(){Zt(!1)},children:[We.length>0&&(0,_.jsx)(De,{items:St,title:"Selected Objects:"}),null!==Dn&&(0,_.jsx)(jn,{internalPaths:Dn,bucketName:nt,onClosePanel:Zt,versioning:Ee,locking:Me})]})})]})]}))]})]})})))),et=t(32291),nt=t(95792),tt=t(59114),it=t(84669),ot={setVersionsModeEnabled:f.db,setErrorSnackMessage:M.Ih,setSearchObjects:f.G4,setSearchVersions:f.Pr},at=(0,a.$j)((function(e){var n=e.objectBrowser,t=e.buckets;return{versionsMode:m()(n,"versionsMode",!1),bucketToRewind:m()(n,"rewind.bucketToRewind",""),bucketInfo:t.bucketDetails.bucketInfo,searchObjects:n.searchObjects,versionedFile:n.versionedFile,searchVersions:n.searchVersions}}),ot),st=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)({breadcrumLink:{textDecoration:"none",color:"black"},backToBuckets:{color:"#000",fontSize:14,padding:0,marginTop:-8}},(0,h.Bz)(e.spacing(4))))}))(at((function(e){var n=e.versionsMode,t=e.match,i=e.history,a=(e.classes,e.setVersionsModeEnabled),s=e.searchObjects,r=e.setSearchObjects,u=e.setSearchVersions,h=e.versionedFile,f=e.searchVersions,p=t.params.bucketName,x=m()(t.params,"subpaths","");(0,o.useEffect)((function(){a(!1)}),[x,a]);return(0,_.jsxs)(o.Fragment,{children:[(0,_.jsx)(et.Z,{label:(0,_.jsx)(it.Z,{label:"Buckets",to:I.gA.BUCKETS}),actions:(0,_.jsx)(E.s,{scopes:I.D[I.EI.BUCKET_ADMIN],resource:p,errorProps:{disabled:!0},children:(0,_.jsx)(c.Z,{title:"Configure Bucket",children:(0,_.jsx)(l.Z,{color:"primary","aria-label":"Configure Bucket",component:"span",onClick:function(){i.push("/buckets/".concat(p,"/admin"))},size:"large",children:(0,_.jsx)(nt.Z,{})})})}),middleComponent:(0,_.jsx)(o.Fragment,{children:n?(0,_.jsx)(o.Fragment,{children:(0,_.jsx)(tt.Z,{placeholder:"Start typing to filter versions of ".concat(h),onChange:function(e){u(e)},value:f})}):(0,_.jsx)(E.s,{scopes:[I.Ft.S3_LIST_BUCKET],resource:p,errorProps:{disabled:!0},children:(0,_.jsx)(tt.Z,{placeholder:"Start typing to filter objects in the bucket",onChange:function(e){r(e)},value:s})})})}),(0,_.jsx)(d.ZP,{children:(0,_.jsx)(Qn,{})})]})})))},40603:function(e,n,t){var i=t(1413),o=t(45987),a=(t(72791),t(85531)),s=t(72455),r=t(80184),c=["onClick","text","disabled","tooltip","icon","className"],l=(0,s.Z)((function(e){return{root:{padding:"7px",color:function(n){return function(n){var t=n.variant,i=n.color,o=e.palette.primary.main;return"primary"===i&&"contained"===t?o=e.palette.primary.contrastText:"primary"===i&&"outlined"===t?o=e.palette.primary.main:"secondary"===i&&(o=e.palette.secondary.main),o}(n)},borderColor:function(n){return"secondary"===n.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));n.Z=function(e){var n=l(e),t=e.onClick,s=e.text,d=void 0===s?"":s,u=e.disabled,m=void 0!==u&&u,h=e.tooltip,f=e.icon,p=void 0===f?null:f,x=e.className,b=void 0===x?"":x,g=(0,o.Z)(e,c);return(0,r.jsxs)(a.Z,(0,i.Z)((0,i.Z)({className:b,classes:n,tooltip:h||d,variant:"outlined",onClick:t,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},g),{},{children:[(0,r.jsx)("span",{children:d})," ",p]}))}},34433:function(e,n,t){t.r(n),t.d(n,{default:function(){return F}});var i=t(70885),o=t(1413),a=t(72791),s=t(26181),r=t.n(s),c=t(60364),l=t(11135),d=t(25787),u=t(78029),m=t.n(u),h=t(61889),f=t(36151),p=t(40986),x=t(23814),b=t(42649),g=t(81207),j=t(56028),v=t(64163),Z=t(30829),y=t(72426),S=t.n(y),k=t(21435),C=t(80184),w=(0,d.Z)((function(e){return(0,l.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},x.YI),x.Hr),{},{labelContainer:{display:"flex",alignItems:"center",marginBottom:15},fieldContainer:(0,o.Z)((0,o.Z)({},x.YI.fieldContainer),{},{display:"flex",alignItems:"center",justifyContent:"space-between",paddingBottom:10,marginTop:11,marginBottom:6}),dateContainer:{height:20,textAlign:"right",color:"#848484"},dateInputContainer:{margin:"0 10px"},durationInputs:{display:"flex",alignItems:"center",justifyContent:"center"},validityIndicator:{display:"flex",alignItems:"center",justifyContent:"center"},invalidDurationText:{marginTop:15,display:"flex",color:"red",fontSize:11},validityText:{fontSize:14,fontWeight:600,marginTop:15,display:"flex",alignItems:"center",justifyContent:"center","@media (max-width: 900px)":{flexFlow:"column"}}}))}))((function(e){var n=e.classes,t=e.id,o=e.initialDate,s=e.label,r=e.maxDays,c=e.entity,l=e.onChange,d=(0,a.useState)(7),u=(0,i.Z)(d,2),m=u[0],f=u[1],p=(0,a.useState)(0),x=(0,i.Z)(p,2),b=x[0],g=x[1],j=(0,a.useState)(0),v=(0,i.Z)(j,2),y=v[0],w=v[1],N=(0,a.useState)(!0),E=(0,i.Z)(N,2),I=E[0],F=E[1],_=(0,a.useState)(S()()),P=(0,i.Z)(_,2),T=P[0],O=P[1];(0,a.useEffect)((function(){O(function(e,n,t,i){return S()(e).add(n,"days").add(t,"hours").add(i,"minutes")}(o,m,b,y))}),[o,m,b,y]),(0,a.useEffect)((function(){I?l(T.format("YYYY-MM-DDTHH:mm:ss"),!0):l("0000-00-00",!1)}),[T,l,I]),(0,a.useEffect)((function(){var e=!0;(m<0||r&&m>r||isNaN(m))&&(e=!1),(b<0||b>23||isNaN(b))&&(e=!1),(y<0||y>59||isNaN(y))&&(e=!1),!r||m!==r||0===b&&0===y||(e=!1),F(e)}),[T,r,l,m,b,y]);var D={style:{textAlign:"center",paddingRight:10,paddingLeft:10,width:25},className:"removeArrows"};return(0,C.jsx)(a.Fragment,{children:(0,C.jsxs)(h.ZP,{container:!0,className:n.fieldContainer,children:[(0,C.jsxs)(h.ZP,{item:!0,xs:12,alignItems:"center",justifyContent:"center",children:[(0,C.jsx)(h.ZP,{item:!0,xs:12,className:n.labelContainer,children:(0,C.jsx)(Z.Z,{htmlFor:t,className:n.inputLabel,children:(0,C.jsx)("span",{children:s})})}),(0,C.jsxs)(h.ZP,{item:!0,xs:12,className:n.durationInputs,children:[(0,C.jsx)(h.ZP,{item:!0,className:n.dateInputContainer,children:(0,C.jsx)(k.Z,{id:t,type:"number",min:"0",max:r?r.toString():"999",label:"Days",name:t,onChange:function(e){f(parseInt(e.target.value))},value:m.toString(),extraInputProps:D,noLabelMinWidth:!0})}),(0,C.jsx)(h.ZP,{item:!0,className:n.dateInputContainer,children:(0,C.jsx)(k.Z,{id:t,type:"number",min:"0",max:"23",label:"Hours",name:t,onChange:function(e){g(parseInt(e.target.value))},value:b.toString(),extraInputProps:D,noLabelMinWidth:!0})}),(0,C.jsx)(h.ZP,{item:!0,className:n.dateInputContainer,children:(0,C.jsx)(k.Z,{id:t,type:"number",min:"0",max:"59",label:"Minutes",name:t,onChange:function(e){w(parseInt(e.target.value))},value:y.toString(),extraInputProps:D,noLabelMinWidth:!0})})]})]}),(0,C.jsx)(h.ZP,{item:!0,xs:12,className:"".concat(n.validityIndicator," ").concat(n.formFieldRow),children:I?(0,C.jsxs)("div",{className:n.validityText,children:[(0,C.jsxs)("div",{className:n.validityLabel,children:[c," will be available until:"]})," ",(0,C.jsx)("div",{className:n.validTill,children:T.format("MM/DD/YYYY HH:mm:ss")})]}):(0,C.jsx)("div",{className:n.invalidDurationText,children:"Please select a valid duration."})})]})})})),N=t(45248),E=a.lazy((function(){return Promise.resolve().then(t.bind(t,79880))})),I=(0,c.$j)((function(e){var n=e.system;return{distributedSetup:r()(n,"distributedSetup",!1)}}),{setModalSnackMessage:b.MK,setModalErrorSnackMessage:b.zb}),F=(0,d.Z)((function(e){return(0,l.Z)((0,o.Z)((0,o.Z)({shareLinkInfo:{fontSize:13,fontWeight:400},copyShareLink:{display:"flex","@media (max-width: 900px)":{flexFlow:"column",alignItems:"center",justifyContent:"center"}},copyShareLinkInput:{"& div:first-child":{marginTop:0},"@media (max-width: 900px)":{minWidth:250}},copyShareLinkBtn:{display:"flex",alignItems:"center",justifyContent:"center","@media (max-width: 900px)":{marginTop:10}}},x.ID),x.DF))}))(I((function(e){var n=e.classes,t=e.open,o=e.closeModalAndRefresh,s=e.bucketName,c=e.dataObject,l=e.distributedSetup,d=e.setModalSnackMessage,u=e.setModalErrorSnackMessage,x=(0,a.useState)(""),b=(0,i.Z)(x,2),Z=b[0],y=b[1],S=(0,a.useState)(!0),k=(0,i.Z)(S,2),I=k[0],F=k[1],_=(0,a.useState)(!1),P=(0,i.Z)(_,2),T=P[0],O=P[1],D=(0,a.useState)(""),B=(0,i.Z)(D,2),M=B[0],L=B[1],R=(0,a.useState)(!0),z=(0,i.Z)(R,2),A=z[0],V=z[1],U=(0,a.useState)("null"),G=(0,i.Z)(U,2),W=G[0],H=G[1],K=new Date;return(0,a.useEffect)((function(){if(void 0===c.version_id)return l?(g.Z.invoke("GET","/api/v1/buckets/".concat(s,"/objects?prefix=").concat((0,N.ug)(c.name)).concat(l?"&with_versions=true":"")).then((function(e){var n=r()(e,"objects",[]).find((function(e){return e.is_latest}));H(n?n.version_id:"null")})).catch((function(e){u(e)})),void F(!1)):(H("null"),void F(!1));H(c.version_id||"null"),F(!1)}),[s,c,l,u]),(0,a.useEffect)((function(){if(A&&!I){O(!0),y("");var e=new Date("".concat(M)),n=new Date,t=Math.ceil((e.getTime()-n.getTime())/1e3);t>0&&g.Z.invoke("GET","/api/v1/buckets/".concat(s,"/objects/share?prefix=").concat((0,N.ug)(c.name),"&version_id=").concat(W).concat(""!==M?"&expires=".concat(t,"s"):"")).then((function(e){y(e),O(!1)})).catch((function(e){u(e),y(""),O(!1)}))}}),[c,M,s,A,y,u,l,I,W]),(0,C.jsx)(a.Fragment,{children:(0,C.jsxs)(j.Z,{title:"Share File",modalOpen:t,onClose:function(){o()},children:[I&&(0,C.jsx)(h.ZP,{item:!0,xs:12,children:(0,C.jsx)(p.Z,{})}),!I&&(0,C.jsxs)(a.Fragment,{children:[(0,C.jsxs)(h.ZP,{item:!0,xs:12,className:n.shareLinkInfo,children:["This is a temporary URL with integrated access credentials for sharing objects valid for up to 7 days.",(0,C.jsx)("br",{}),"The temporary URL expires after the configured time limit."]}),(0,C.jsx)(h.ZP,{item:!0,xs:12,className:n.dateContainer,children:(0,C.jsx)(w,{initialDate:K,id:"date",label:"Active for",maxDays:7,onChange:function(e,n){V(n),n?L(e):(L(""),y(""))},entity:"Link"})}),(0,C.jsxs)(h.ZP,{item:!0,xs:12,className:"".concat(n.copyShareLink," ").concat(n.formFieldRow," "),children:[(0,C.jsx)(h.ZP,{item:!0,xs:10,className:n.copyShareLinkInput,children:(0,C.jsx)(v.Z,{content:Z})}),(0,C.jsx)(h.ZP,{item:!0,xs:2,className:n.copyShareLinkBtn,children:(0,C.jsx)(m(),{text:Z,children:(0,C.jsx)(f.Z,{variant:"contained",color:"primary",endIcon:(0,C.jsx)(E,{}),onClick:function(){d("Share URL Copied to clipboard")},disabled:""===Z||T,children:"Copy"})})})]})]})]})})})))},78562:function(e,n,t){t.r(n),t.d(n,{default:function(){return b}});var i=t(72791),o=t(56028),a=t(4942),s=t(70885),r=t(11135),c=t(25787),l=t(61889),d=t(40986),u=t(47922),m=t(45248),h=t(28182),f=t(80184),p=(0,c.Z)((function(){return(0,r.Z)({iframeContainer:{border:"0px",flex:"1 1 auto",width:"100%",height:250,backgroundColor:"transparent",borderRadius:5,"&.image":{height:500},"&.text":{height:700},"&.audio":{height:150},"&.video":{height:350},"&.fullHeight":{height:"calc(100vh - 185px)"}},iframeBase:{backgroundColor:"#fff"},iframeHidden:{display:"none"}})}))((function(e){var n=e.bucketName,t=e.object,o=e.isFullscreen,r=void 0!==o&&o,c=e.classes,p=(0,i.useState)(!0),x=(0,s.Z)(p,2),b=x[0],g=x[1],j="";if(t){var v=(0,m.ug)(t.name),Z=document.baseURI.replace(window.location.origin,"");j="".concat(window.location.origin).concat(Z,"api/v1/buckets/").concat(n,"/objects/download?preview=true&prefix=").concat(v),t.version_id&&(j=j.concat("&version_id=".concat(t.version_id)))}var y=(0,u.Bg)((null===t||void 0===t?void 0:t.name)||""),S=function(){g(!1)};return(0,f.jsxs)(i.Fragment,{children:[b&&(0,f.jsx)(l.ZP,{item:!0,xs:12,children:(0,f.jsx)(d.Z,{})}),"video"===y&&(0,f.jsx)("video",{style:{width:"100%",height:"auto"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:S,children:(0,f.jsx)("source",{src:j,type:"video/mp4"})}),"audio"===y&&(0,f.jsx)("audio",{style:{width:"100%",height:"auto"},autoPlay:!0,controls:!0,muted:!1,playsInline:!0,onPlay:S,children:(0,f.jsx)("source",{src:j,type:"audio/mpeg"})}),"image"===y&&(0,f.jsx)("img",{style:{width:"100%",height:"auto"},src:j,alt:"preview",onLoad:S}),"video"!==y&&"audio"!==y&&"image"!==y&&(0,f.jsx)("div",{className:(0,h.Z)(c.iframeBase,(0,a.Z)({},c.iframeHidden,b)),children:(0,f.jsx)("iframe",{src:j,title:"File Preview",allowTransparency:!0,className:"".concat(c.iframeContainer," ").concat(r?"fullHeight":y),onLoad:S,children:"File couldn't be loaded. Please try Download instead"})})]})})),x=t(13048),b=function(e){var n=e.open,t=e.bucketName,a=e.object,s=e.onClosePreview;return(0,f.jsx)(i.Fragment,{children:(0,f.jsx)(o.Z,{modalOpen:n,title:"Preview - ".concat(null===a||void 0===a?void 0:a.name),onClose:s,wideLimit:!1,titleIcon:(0,f.jsx)(x.$3,{}),children:(0,f.jsx)(p,{bucketName:t,object:a})})})}},47922:function(e,n,t){t.d(n,{Bg:function(){return o},LR:function(){return i},P_:function(){return a}});var i=function(e,n,t,i,o,a){var s=document.createElement("a");document.body.appendChild(s);var r="/api/v1/buckets/".concat(e,"/objects/download?prefix=").concat(n);t&&(r=r.concat("&version_id=".concat(t)));var c=new XMLHttpRequest;c.open("GET",r,!0),c.addEventListener("progress",(function(e){var n=Math.round(e.loaded/i*100);o&&o(n)}),!1),c.responseType="blob",c.onreadystatechange=function(){if(4===c.readyState&&200===c.status){var e=c.getResponseHeader("Content-Disposition"),n="download";if(e)n=decodeURIComponent(e).split('"')[1];a&&a();var t=document.createElement("a");t.href=window.URL.createObjectURL(c.response),t.download=n,document.body.appendChild(t),t.click(),document.body.removeChild(t)}},c.send()},o=function(e){var n=e.split(".").pop();return n?(n=n.toLowerCase(),["jif","jfif","apng","avif","svg","webp","bmp","ico","jpg","jpe","jpeg","gif","png","heic"].includes(n)?"image":["pdf","txt","json"].includes(n)?"text":["wav","mp3","alac","aiff","dsd","pcm"].includes(n)?"audio":["mp4","avi","mpg","webm","mov","flv","mkv","wmv","avchd","mpeg-4"].includes(n)?"video":"none"):"none"},a=function(e){switch(e){case"name":return function(e,n){return e.name.localeCompare(n.name)};case"last_modified":return function(e,n){return new Date(e.last_modified).getTime()-new Date(n.last_modified).getTime()};case"size":return function(e,n){return(e.size||-1)-(n.size||-1)}}}},85531:function(e,n,t){var i=t(1413),o=t(4942),a=t(45987),s=(t(72791),t(11135)),r=t(25787),c=t(13400),l=t(20068),d=t(28182),u=t(80184),m=["classes","children","variant","tooltip"];n.Z=(0,r.Z)((function(e){return(0,s.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var n=e.classes,t=e.children,s=e.variant,r=void 0===s?"outlined":s,h=e.tooltip,f=(0,a.Z)(e,m),p=(0,u.jsx)(c.Z,(0,i.Z)((0,i.Z)({},f),{},{className:(0,d.Z)(n.root,(0,o.Z)({},n.contained,"contained"===r)),children:t}));return h&&""!==h?(0,u.jsx)(l.Z,{title:h,children:(0,u.jsx)("span",{children:p})}):p}))},75578:function(e,n,t){var i=t(1413),o=t(72791),a=t(80184);n.Z=function(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function t(t){return(0,a.jsx)(o.Suspense,{fallback:n,children:(0,a.jsx)(e,(0,i.Z)({},t))})}return t}},64163:function(e,n,t){var i=t(1413),o=t(72791),a=t(61889),s=t(11135),r=t(25787),c=t(23814),l=t(80184);n.Z=(0,r.Z)((function(e){return(0,s.Z)((0,i.Z)({},c.xx))}))((function(e){var n=e.classes,t=e.label,i=void 0===t?"":t,s=e.content,r=e.multiLine,c=void 0!==r&&r;return(0,l.jsx)(o.Fragment,{children:(0,l.jsxs)(a.ZP,{className:n.prefinedContainer,children:[""!==i&&(0,l.jsx)(a.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:i}),(0,l.jsx)(a.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,l.jsx)(a.ZP,{item:!0,xs:12,className:c?n.innerContentMultiline:n.innerContent,children:s})})]})})}))},83679:function(e,n,t){var i=t(4942),o=t(1413),a=(t(72791),t(28182)),s=t(61889),r=t(10765),c=t(85523),l=t(61419),d=t(30829),u=t(20068),m=t(11135),h=t(25787),f=t(72455),p=t(23814),x=t(84570),b=t(80184),g=(0,f.Z)((0,o.Z)({root:{"&:hover":{backgroundColor:"transparent"}}},p.FU)),j=function(e){var n=g();return(0,b.jsx)(l.Z,(0,o.Z)({className:n.root,disableRipple:!0,color:"default",checkedIcon:(0,b.jsx)("span",{className:n.radioSelectedIcon}),icon:(0,b.jsx)("span",{className:n.radioUnselectedIcon})},e))};n.Z=(0,h.Z)((function(e){return(0,m.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},p.YI),p.Hr),{},{optionLabel:{"&.Mui-disabled":{"& .MuiFormControlLabel-label":{color:"#9c9c9c"}},"&:last-child":{marginRight:0},"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E"}},checkedOption:{"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E",fontWeight:700}}}))}))((function(e){var n=e.selectorOptions,t=void 0===n?[]:n,o=e.currentSelection,l=e.label,m=e.id,h=e.name,f=e.onChange,p=e.tooltip,g=void 0===p?"":p,v=e.disableOptions,Z=void 0!==v&&v,y=e.classes,S=e.displayInColumn,k=void 0!==S&&S;return(0,b.jsxs)(s.ZP,{container:!0,alignItems:"center",children:[(0,b.jsx)(s.ZP,{item:!0,xs:!0,children:(0,b.jsxs)(d.Z,{htmlFor:m,className:y.inputLabel,children:[(0,b.jsx)("span",{children:l}),""!==g&&(0,b.jsx)("div",{className:y.tooltipContainer,children:(0,b.jsx)(u.Z,{title:g,placement:"top-start",children:(0,b.jsx)("div",{children:(0,b.jsx)(x.Z,{})})})})]})}),(0,b.jsx)(s.ZP,{item:!0,xs:!0,className:y.radioOptionsLayout,children:(0,b.jsx)(r.Z,{"aria-label":m,id:m,name:h,value:o,onChange:f,row:!k,style:{display:"block",textAlign:"right"},children:t.map((function(e){return(0,b.jsx)(c.Z,{value:e.value,control:(0,b.jsx)(j,{}),label:e.label,disabled:Z,className:(0,a.Z)(y.optionLabel,(0,i.Z)({},y.checkedOption,e.value===o))},"rd-".concat(h,"-").concat(e.value))}))})})]})}))},9505:function(e,n,t){var i=t(70885),o=t(72791),a=t(81207);n.Z=function(e,n){var t=(0,o.useState)(!1),s=(0,i.Z)(t,2),r=s[0],c=s[1];return[r,function(t,i,o){c(!0),a.Z.invoke(t,i,o).then((function(n){c(!1),e(n)})).catch((function(e){c(!1),n(e)}))}]}},23508:function(e,n,t){var i=t(1413),o=t(72791),a=t(5574),s=t(65661),r=t(39157),c=t(97123),l=t(36151),d=t(59860),u=t(13400),m=t(29823),h=t(11135),f=t(25787),p=t(23814),x=t(80184);n.Z=(0,f.Z)((function(e){return(0,h.Z)((0,i.Z)({},p.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,h=e.onClose,f=e.onCancel,p=e.onConfirm,b=e.classes,g=void 0===b?{}:b,j=e.title,v=void 0===j?"":j,Z=e.isLoading,y=e.confirmationContent,S=e.cancelText,k=void 0===S?"Cancel":S,C=e.confirmText,w=void 0===C?"Confirm":C,N=e.confirmButtonProps,E=void 0===N?{}:N,I=e.cancelButtonProps,F=void 0===I?{}:I,_=e.titleIcon,P=void 0===_?null:_;return(0,x.jsxs)(a.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&h()},className:g.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,x.jsxs)(s.Z,{className:g.title,children:[(0,x.jsxs)("div",{className:g.titleText,children:[P," ",v]}),(0,x.jsx)("div",{className:g.closeContainer,children:(0,x.jsx)(u.Z,{"aria-label":"close",className:g.closeButton,onClick:h,disableRipple:!0,size:"small",children:(0,x.jsx)(m.Z,{})})})]}),(0,x.jsx)(r.Z,{className:g.content,children:y}),(0,x.jsxs)(c.Z,{className:g.actions,children:[(0,x.jsx)(l.Z,(0,i.Z)((0,i.Z)({className:g.cancelButton,onClick:f||h,disabled:Z,type:"button"},F),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:k})),(0,x.jsx)(d.Z,(0,i.Z)((0,i.Z)({className:g.confirmButton,type:"button",onClick:p,loading:Z,disabled:Z,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,x.jsx)(o.Fragment,{}),autoFocus:!0,id:"confirm-ok"},E),{},{children:w}))]})]})}))},56028:function(e,n,t){var i=t(70885),o=t(1413),a=t(72791),s=t(60364),r=t(13400),c=t(55646),l=t(5574),d=t(65661),u=t(39157),m=t(11135),h=t(25787),f=t(23814),p=t(42649),x=t(29823),b=t(28057),g=t(80184),j=(0,s.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:p.MK});n.Z=(0,h.Z)((function(e){return(0,m.Z)((0,o.Z)((0,o.Z)({},f.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},f.sN))}))(j((function(e){var n=e.onClose,t=e.modalOpen,s=e.title,m=e.children,h=e.classes,f=e.wideLimit,p=void 0===f||f,j=e.modalSnackMessage,v=e.noContentPadding,Z=e.setModalSnackMessage,y=e.titleIcon,S=void 0===y?null:y,k=(0,a.useState)(!1),C=(0,i.Z)(k,2),w=C[0],N=C[1];(0,a.useEffect)((function(){Z("")}),[Z]),(0,a.useEffect)((function(){if(j){if(""===j.message)return void N(!1);"error"!==j.type&&N(!0)}}),[j]);var E=p?{classes:{paper:h.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},I="";return j&&(I=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(I=j.message)),(0,g.jsxs)(l.Z,(0,o.Z)((0,o.Z)({open:t,classes:h},E),{},{scroll:"paper",onClose:function(e,t){"backdropClick"!==t&&n()},className:h.root,children:[(0,g.jsxs)(d.Z,{className:h.title,children:[(0,g.jsxs)("div",{className:h.titleText,children:[S," ",s]}),(0,g.jsx)("div",{className:h.closeContainer,children:(0,g.jsx)(r.Z,{"aria-label":"close",id:"close",className:h.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,g.jsx)(x.Z,{})})})]}),(0,g.jsx)(b.Z,{isModal:!0}),(0,g.jsx)(c.Z,{open:w,className:h.snackBarModal,onClose:function(){N(!1),Z("")},message:I,ContentProps:{className:"".concat(h.snackBar," ").concat(j&&"error"===j.type?h.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,g.jsx)(u.Z,{className:v?"":h.content,children:m})]}))})))},32291:function(e,n,t){var i=t(72791),o=t(60364),a=t(61889),s=t(11135),r=t(25787),c=t(20890),l=t(13400),d=t(95466),u=t(84683),m=t(3925),h=t(13048),f=t(80184),p={toggleList:m.kQ},x=(0,o.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),p);n.Z=x((0,r.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,o=e.actions,s=e.sidebarOpen,r=e.operatorMode,m=e.managerObjects,p=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,f.jsx)(i.Fragment,{}):(0,f.jsxs)(a.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,f.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,f.jsx)("div",{className:n.logo,children:r?(0,f.jsx)(d.Z,{}):(0,f.jsx)(u.Z,{})}),(0,f.jsx)(c.Z,{variant:"h4",className:n.labelStyle,children:t})]}),x&&(0,f.jsx)(a.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,f.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:n.rightMenu,children:[o&&o,m&&m.length>0&&(0,f.jsx)(l.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){p()},id:"object-manager-toggle",size:"large",children:(0,f.jsx)(h.gx,{})})]})]})})))},14917:function(e,n,t){t(72791);var i=t(61889),o=t(11135),a=t(25787),s=t(80184);n.Z=(0,a.Z)((function(e){return(0,o.Z)({headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},screenTitle:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem",borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column"}},rightItems:{display:"flex",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.icon,o=e.title,a=e.subTitle,r=e.actions,c=e.className;return(0,s.jsx)(i.ZP,{container:!0,children:(0,s.jsxs)(i.ZP,{item:!0,xs:12,className:"".concat(n.screenTitle," ").concat(c||""),children:[(0,s.jsxs)("div",{className:n.leftItems,children:[t?(0,s.jsx)("div",{className:n.headerBarIcon,children:t}):null,(0,s.jsxs)("div",{className:n.titleColumn,children:[(0,s.jsx)("h1",{style:{margin:0},children:o}),(0,s.jsx)("span",{className:n.headerBarSubheader,children:a})]})]}),(0,s.jsx)("div",{className:n.rightItems,children:r})]})})}))},59114:function(e,n,t){var i=t(4942),o=t(1413),a=(t(72791),t(63466)),s=t(74900),r=t(27391),c=t(25787),l=t(11135),d=t(23814),u=t(80184);n.Z=(0,c.Z)((function(e){return(0,l.Z)({searchField:(0,o.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,o=e.classes,c=e.onChange,l=e.adornmentPosition,d=void 0===l?"end":l,m=e.overrideClass,h=e.value,f=(0,i.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(a.Z,{position:d,className:o.adornment,children:(0,u.jsx)(s.Z,{})}));return(0,u.jsx)(r.Z,{placeholder:t,className:m||o.searchField,id:"search-resource",label:"",InputProps:f,onChange:function(e){c(e.target.value)},variant:"standard",value:h})}))},98994:function(e,n,t){var i=t(72791),o=t(22338),a=t(79762),s=t(5171),r=t(80184),c={};n.Z=function(e){var n=e.rowRenderFunction,t=e.totalItems,l=e.defaultHeight,d=function(e){var t=e.index,i=e.style;return(0,r.jsx)("div",{style:i,children:n(t)})};return(0,r.jsx)(i.Fragment,{children:(0,r.jsx)(a.Z,{isItemLoaded:function(e){return!!c[e]},loadMoreItems:function(e,n){for(var t=e;t<=n;t++)c[t]=1;for(var i=e;i<=n;i++)c[i]=2},itemCount:t,children:function(e){var n=e.onItemsRendered,i=e.ref;return(0,r.jsx)(s.qj,{children:function(e){var a=e.width,s=e.height;return(0,r.jsx)(o.t7,{itemSize:l||220,height:s,itemCount:t,width:a,ref:i,onItemsRendered:n,children:d})}})}})})}},73669:function(e,n,t){var i=t(70885),o=t(64554),a=t(36151),s=t(21435),r=t(13048),c=t(72791),l=t(80184);n.Z=function(e){var n=e.value,t=(0,c.useState)(!1),d=(0,i.Z)(t,2),u=d[0],m=d[1];return(0,l.jsxs)(o.Z,{sx:{display:"flex",alignItems:"center",flexFlow:{sm:"row",xs:"column"}},children:[(0,l.jsx)(s.Z,{id:"inspect-dec-key",name:"inspect-dec-key",placeholder:"",label:"",type:u?"text":"password",onChange:function(){},value:n,overlayIcon:(0,l.jsx)(r.TI,{}),extraInputProps:{readOnly:!0},overlayAction:function(){return navigator.clipboard.writeText(n)}}),(0,l.jsx)(a.Z,{sx:{marginLeft:"10px"},variant:"contained",onClick:function(){return m(!u)},children:"Show/Hide"})]})}}}]); +//# sourceMappingURL=6233.d36db740.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6233.d36db740.chunk.js.map b/portal-ui/build/static/js/6233.d36db740.chunk.js.map new file mode 100644 index 000000000..ea9023077 --- /dev/null +++ b/portal-ui/build/static/js/6233.d36db740.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6233.d36db740.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/ObjectBrowser/BrowserBreadcrumbs.tsx","screens/Console/Buckets/ListBuckets/UploadFilesButton.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/DetailsListPanel.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/ObjectMetaData.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ObjectActionButton.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ActionsListSection.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/IconWithLabel.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/utils.tsx","screens/Console/Buckets/ListBuckets/Objects/ObjectDetails/TagsModal.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/InspectObject.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ObjectDetailPanel.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjectsHelpers.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/VersionsNavigator.tsx","screens/Console/Buckets/ListBuckets/Objects/ListObjects/ListObjects.tsx","screens/Console/Buckets/BucketDetails/BrowserHandler.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.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/Buckets/ListBuckets/Objects/utils.ts","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/FormComponents/RadioGroupSelector/RadioGroupSelector.tsx","screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/ScreenTitle/ScreenTitle.tsx","screens/Console/Common/SearchBox.tsx","screens/Console/Common/VirtualizedList/VirtualizedList.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 from \"react\";\nimport { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\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 get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport { connect } from \"react-redux\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { ObjectBrowserState } from \"./reducers\";\nimport { objectBrowserCommon } from \"../Common/FormComponents/common/styleLibrary\";\nimport { Link } from \"react-router-dom\";\nimport { encodeFileName } from \"../../../common/utils\";\nimport { BackCaretIcon, NewPathIcon } from \"../../../icons\";\nimport { Button, IconButton, Tooltip } from \"@mui/material\";\nimport history from \"../../../history\";\nimport { hasPermission } from \"../../../common/SecureComponent\";\nimport { IAM_SCOPES } from \"../../../common/SecureComponent/permissions\";\nimport withSuspense from \"../Common/Components/withSuspense\";\nimport { BucketObject } from \"../Buckets/ListBuckets/Objects/ListObjects/types\";\nimport { setVersionsModeEnabled } from \"./actions\";\n\nconst CreateFolderModal = withSuspense(\n React.lazy(\n () => import(\"../Buckets/ListBuckets/Objects/ListObjects/CreateFolderModal\")\n )\n);\n\ninterface ObjectBrowserReducer {\n objectBrowser: ObjectBrowserState;\n}\n\ninterface IObjectBrowser {\n classes: any;\n bucketName: string;\n internalPaths: string;\n rewindEnabled?: boolean;\n versionsMode: boolean;\n versionedFile: string;\n hidePathButton?: boolean;\n existingFiles: BucketObject[];\n additionalOptions?: React.ReactNode;\n setVersionsModeEnabled: typeof setVersionsModeEnabled;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...objectBrowserCommon,\n });\n\nconst BrowserBreadcrumbs = ({\n classes,\n bucketName,\n internalPaths,\n rewindEnabled,\n existingFiles,\n versionsMode,\n versionedFile,\n hidePathButton,\n setVersionsModeEnabled,\n additionalOptions,\n}: IObjectBrowser) => {\n const [createFolderOpen, setCreateFolderOpen] = useState(false);\n\n let paths = internalPaths;\n\n if (internalPaths !== \"\") {\n paths = `/${internalPaths}`;\n }\n\n const splitPaths = paths.split(\"/\").filter((path) => path !== \"\");\n let breadcrumbsMap = splitPaths.map((objectItem: string, index: number) => {\n const subSplit = splitPaths.slice(0, index + 1).join(\"/\");\n const route = `/buckets/${bucketName}/browse/${\n subSplit ? `${encodeFileName(subSplit)}` : ``\n }`;\n return (\n \n / \n {\n setVersionsModeEnabled(false);\n }}\n >\n {objectItem}\n \n \n );\n });\n\n let versionsItem: any[] = [];\n\n if (versionsMode) {\n versionsItem = [\n \n / {versionedFile} - Versions\n ,\n ];\n }\n\n const listBreadcrumbs: any[] = [\n \n {\n setVersionsModeEnabled(false);\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 setVersionsModeEnabled(false);\n } else {\n history.goBack();\n }\n };\n\n return (\n
    \n {createFolderOpen && (\n \n )}\n \n \n \n \n
    \n {listBreadcrumbs}\n
    \n
    {additionalOptions}
    \n
    \n {!hidePathButton && (\n \n {\n setCreateFolderOpen(true);\n }}\n disabled={\n rewindEnabled ||\n !hasPermission(bucketName, [IAM_SCOPES.S3_PUT_OBJECT])\n }\n endIcon={}\n disableTouchRipple\n disableRipple\n focusRipple={false}\n sx={{\n color: \"#969FA8\",\n border: \"#969FA8 1px solid\",\n whiteSpace: \"nowrap\",\n minWidth: \"160px\",\n }}\n variant={\"outlined\"}\n >\n Create new path\n \n \n )}\n
    \n );\n};\n\nconst mapStateToProps = ({ objectBrowser }: ObjectBrowserReducer) => ({\n rewindEnabled: get(objectBrowser, \"rewind.rewindEnabled\", false),\n versionsMode: get(objectBrowser, \"versionsMode\", false),\n versionedFile: get(objectBrowser, \"versionedFile\", \"\"),\n});\n\nconst mapDispatchToProps = {\n setVersionsModeEnabled,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(BrowserBreadcrumbs));\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 { Theme } from \"@mui/material/styles\";\nimport { Menu, MenuItem } from \"@mui/material\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport { UploadFolderIcon, UploadIcon } from \"../../../../icons\";\nimport RBIconButton from \"../BucketDetails/SummaryItems/RBIconButton\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport { hasPermission } from \"../../../../common/SecureComponent\";\n\ninterface IUploadFilesButton {\n uploadPath: string;\n bucketName: string;\n forceDisable?: boolean;\n uploadFileFunction: (closeFunction: () => void) => void;\n uploadFolderFunction: (closeFunction: () => void) => void;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n listUploadIcons: {\n height: 20,\n \"& .min-icon\": {\n width: 18,\n fill: \"rgba(0,0,0,0.87)\",\n },\n },\n });\n\nconst UploadFilesButton = ({\n uploadPath,\n bucketName,\n forceDisable = false,\n uploadFileFunction,\n uploadFolderFunction,\n classes,\n}: IUploadFilesButton) => {\n const [anchorEl, setAnchorEl] = React.useState(null);\n const openUploadMenu = Boolean(anchorEl);\n const handleClick = (event: React.MouseEvent) => {\n setAnchorEl(event.currentTarget);\n };\n const handleCloseUpload = () => {\n setAnchorEl(null);\n };\n\n const uploadObjectAllowed = hasPermission(uploadPath, [\n IAM_SCOPES.S3_PUT_OBJECT,\n ]);\n const uploadFolderAllowed = hasPermission(\n bucketName,\n [IAM_SCOPES.S3_PUT_OBJECT],\n false,\n true\n );\n\n const uploadEnabled: boolean = uploadObjectAllowed || uploadFolderAllowed;\n\n return (\n \n }\n color=\"primary\"\n variant={\"contained\"}\n disabled={forceDisable || !uploadEnabled}\n />\n {\n handleCloseUpload();\n }}\n anchorOrigin={{\n vertical: \"bottom\",\n horizontal: \"center\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"center\",\n }}\n >\n {\n uploadFileFunction(handleCloseUpload);\n }}\n disabled={!uploadObjectAllowed || forceDisable}\n >\n \n \n \n Upload File\n \n {\n uploadFolderFunction(handleCloseUpload);\n }}\n disabled={!uploadFolderAllowed || forceDisable}\n >\n \n \n \n Upload Folder\n \n \n \n );\n};\n\nexport default withStyles(styles)(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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton } from \"@mui/material\";\nimport { ClosePanelIcon } from \"../../../../../../icons\";\n\ninterface IDetailsListPanel {\n classes: any;\n open: boolean;\n closePanel: () => void;\n children: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n detailsList: {\n borderColor: \"#EAEDEE\",\n backgroundColor: \"#fff\",\n borderWidth: 0,\n borderStyle: \"solid\",\n borderRadius: 3,\n borderBottomLeftRadius: 0,\n borderBottomRightRadius: 0,\n width: 0,\n transitionDuration: \"0.3s\",\n overflowX: \"hidden\",\n overflowY: \"auto\",\n position: \"relative\",\n opacity: 0,\n marginLeft: -1,\n \"&.open\": {\n width: 300,\n minWidth: 300,\n borderLeftWidth: 1,\n opacity: 1,\n },\n },\n closePanel: {\n position: \"absolute\",\n right: 0,\n top: 8,\n \"& .min-icon\": {\n width: 14,\n },\n },\n });\n\nconst DetailsListPanel = ({\n classes,\n open,\n closePanel,\n children,\n}: IDetailsListPanel) => {\n return (\n \n \n \n \n {children}\n \n );\n};\n\nexport default withStyles(styles)(DetailsListPanel);\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) => num + 1);\n\nconst currentYear = new Date().getFullYear();\n\nexport const years = Array.from(\n Array(25),\n (_, numYear) => numYear + currentYear\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 useState,\n forwardRef,\n useImperativeHandle,\n useEffect,\n} from \"react\";\nimport clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport { SelectChangeEvent } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport FormControl from \"@mui/material/FormControl\";\nimport Select from \"@mui/material/Select\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport InputBase from \"@mui/material/InputBase\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport FormSwitchWrapper from \"../FormSwitchWrapper/FormSwitchWrapper\";\nimport { days, months, validDate, years } from \"./utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n dateInput: {\n \"&:not(:last-child)\": {\n marginRight: 22,\n },\n },\n ...fieldBasic,\n ...tooltipHelper,\n labelContainer: {\n flex: 1,\n },\n fieldContainer: {\n ...fieldBasic.fieldContainer,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingBottom: 10,\n marginTop: 11,\n marginBottom: 6,\n },\n fieldContainerBorder: {\n borderBottom: \"#9c9c9c 1px solid\",\n marginBottom: 20,\n },\n });\n\nconst SelectStyled = withStyles((theme: Theme) =>\n createStyles({\n root: {\n \"& .MuiSelect-icon\": {\n color: \"#000\",\n \"&.Mui-disabled\": {\n color: \"#9c9c9c\",\n },\n },\n },\n input: {\n borderBottom: 0,\n fontSize: 12,\n },\n })\n)(InputBase);\n\ninterface IDateSelectorProps {\n classes: any;\n id: string;\n label: string;\n disableOptions?: boolean;\n addSwitch?: 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 classes,\n id,\n label,\n disableOptions = false,\n addSwitch = false,\n tooltip = \"\",\n borderBottom = false,\n onDateChange,\n value = \"\",\n }: IDateSelectorProps,\n ref: any\n ) => {\n useImperativeHandle(ref, () => ({ resetDate }));\n\n const [dateEnabled, setDateEnabled] = useState(false);\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 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 if (addSwitch) {\n return !dateEnabled;\n } else {\n return false;\n }\n };\n\n const onMonthChange = (e: SelectChangeEvent) => {\n setMonth(e.target.value as string);\n };\n\n const onDayChange = (e: SelectChangeEvent) => {\n setDay(e.target.value as string);\n };\n\n const onYearChange = (e: SelectChangeEvent) => {\n setYear(e.target.value as string);\n };\n\n return (\n \n
    \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n {addSwitch && (\n {\n setDateEnabled(e.target.checked);\n if (!e.target.checked) {\n onDateChange(\"\", true);\n }\n }}\n switchOnly\n />\n )}\n
    \n
    \n
    \n \n }\n >\n \n {\"\"}\n \n {months.map((option) => (\n \n {option.label}\n \n ))}\n \n \n \n }\n >\n \n {\"\"}\n \n {days.map((dayNumber) => (\n \n {dayNumber}\n \n ))}\n \n \n \n }\n >\n \n {\"\"}\n \n {years.map((year) => (\n \n {year}\n \n ))}\n \n \n
    \n \n );\n }\n);\n\nexport default withStyles(styles)(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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport Button from \"@mui/material/Button\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { IFileInfo } from \"./types\";\nimport { setModalErrorSnackMessage } from \"../../../../../../actions\";\nimport { twoDigitDate } from \"../../../../Common/FormComponents/DateSelector/utils\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport RadioGroupSelector from \"../../../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport DateSelector from \"../../../../Common/FormComponents/DateSelector/DateSelector\";\nimport api from \"../../../../../../common/api\";\nimport { encodeFileName } from \"../../../../../../common/utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n dateSelector: {\n \"& div\": {\n borderBottom: 0,\n marginBottom: 0,\n\n \"& div:nth-child(2)\": {\n border: \"1px solid #EAEAEA\",\n paddingLeft: 5,\n\n \"& div\": {\n border: 0,\n },\n },\n },\n },\n });\n\ninterface ISetRetentionProps {\n classes: any;\n open: boolean;\n closeModalAndRefresh: (updateInfo: boolean) => void;\n objectName: string;\n bucketName: string;\n objectInfo: IFileInfo;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\ninterface IRefObject {\n resetDate: () => void;\n}\n\nconst SetRetention = ({\n classes,\n open,\n closeModalAndRefresh,\n objectName,\n objectInfo,\n bucketName,\n setModalErrorSnackMessage,\n}: ISetRetentionProps) => {\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(objectInfo.retention_mode.toLowerCase());\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]);\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(\"\");\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\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/retention?prefix=${encodeFileName(\n selectedObject\n )}&version_id=${versionId}`,\n {\n expires: expireDate,\n mode: type,\n }\n )\n .then((res: any) => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(error);\n setIsSaving(false);\n });\n };\n\n const disableRetention = (\n selectedObject: string,\n versionId: string | null\n ) => {\n api\n .invoke(\n \"DELETE\",\n `/api/v1/buckets/${bucketName}/objects/retention?prefix=${encodeFileName(\n selectedObject\n )}&version_id=${versionId}`\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(error);\n setIsSaving(false);\n });\n };\n\n const saveNewRetentionPolicy = () => {\n setIsSaving(true);\n const selectedObject = objectInfo.name;\n const versionId = objectInfo.version_id;\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 Selected Object: {objectName}\n
    \n ) => {\n onSubmit(e);\n }}\n >\n {showSwitcher && (\n \n ) => {\n setStatusEnabled(!statusEnabled);\n }}\n label={\"Status\"}\n indicatorLabels={[\"Enabled\", \"Disabled\"]}\n />\n \n )}\n \n {\n setType(e.target.value);\n }}\n selectorOptions={[\n { label: \"Governance\", value: \"governance\" },\n { label: \"Compliance\", value: \"compliance\" },\n ]}\n />\n \n \n {\n setIsDateValid(isValid);\n if (isValid) {\n setDate(date);\n }\n }}\n />\n \n \n \n Reset\n \n \n Save\n \n \n \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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, { useState, Fragment } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { decodeFileName } from \"../../../../../../common/utils\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport { ConfirmDeleteIcon } from \"../../../../../../icons\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IDeleteObjectProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObject: string;\n selectedBucket: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n versioning: boolean;\n selectedVersion?: string;\n}\n\nconst DeleteObject = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObject,\n setErrorSnackMessage,\n versioning,\n selectedVersion = \"\",\n}: IDeleteObjectProps) => {\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n const [deleteVersions, setDeleteVersions] = useState(false);\n\n if (!selectedObject) {\n return null;\n }\n const onConfirmDelete = () => {\n const decodedSelectedObject = decodeFileName(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 }`\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 {decodeFileName(selectedObject)}{\" \"}\n {selectedVersion !== \"\" ? (\n \n
    \n
    \n Version ID:\n
    \n {selectedVersion}\n
    \n ) : (\n \"\"\n )}\n ?
    \n
    \n {versioning && selectedVersion === \"\" && (\n {\n setDeleteVersions(!deleteVersions);\n }}\n description=\"\"\n />\n )}\n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(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, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport Button from \"@mui/material/Button\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../../../../actions\";\nimport { IFileInfo } from \"./types\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport api from \"../../../../../../common/api\";\nimport { encodeFileName } from \"../../../../../../common/utils\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\ninterface ISetRetentionProps {\n classes: any;\n open: boolean;\n closeModalAndRefresh: (reload: boolean) => void;\n objectName: string;\n bucketName: string;\n actualInfo: IFileInfo;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst SetLegalHoldModal = ({\n classes,\n open,\n closeModalAndRefresh,\n objectName,\n bucketName,\n actualInfo,\n setModalErrorSnackMessage,\n}: ISetRetentionProps) => {\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\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/legalhold?prefix=${encodeFileName(\n objectName\n )}&version_id=${versionId}`,\n { status: legalHoldEnabled ? \"enabled\" : \"disabled\" }\n )\n .then(() => {\n setIsSaving(false);\n closeModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(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 Object: {bucketName}\n \n\n ) => {\n onSubmit(e);\n }}\n >\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 Clear\n \n \n Save\n \n \n \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(SetLegalHoldModal));\n","import React, { useCallback, useEffect, useState, Fragment } from \"react\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { MetadataResponse } from \"./types\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport { Box, Table, TableBody, TableCell, TableRow } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n detailsPanel,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { withStyles } from \"@mui/styles\";\n\ninterface IObjectMetadata {\n bucketName: string;\n internalPaths: string;\n classes?: any;\n actualInfo: any;\n linear?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n propertiesIcon: {\n marginLeft: 5,\n \"& .min-icon\": {\n height: 12,\n },\n },\n\n capitalizeFirst: {\n textTransform: \"capitalize\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n },\n },\n titleCol: {\n width: \"25%\",\n },\n titleItem: {\n width: \"35%\",\n },\n ...spacingUtils,\n ...detailsPanel,\n });\n\nconst ObjectMetaData = ({\n bucketName,\n internalPaths,\n classes,\n actualInfo,\n linear = false,\n}: IObjectMetadata) => {\n const [metaData, setMetaData] = useState({});\n\n const onMetaDataSuccess = (res: MetadataResponse) => {\n let metadata = get(res, \"objectMetadata\", {});\n\n setMetaData(metadata);\n };\n const onMetaDataError = (err: ErrorResponseHandler) => false;\n\n const [, invokeMetaDataApi] = useApi(onMetaDataSuccess, onMetaDataError);\n\n const metaKeys = Object.keys(metaData);\n const loadMetaData = useCallback(() => {\n invokeMetaDataApi(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects/metadata?prefix=${internalPaths}`\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [bucketName, internalPaths, actualInfo]);\n\n useEffect(() => {\n if (actualInfo) {\n loadMetaData();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [actualInfo, loadMetaData]);\n\n if (linear) {\n return (\n \n {metaKeys.map((element: string, index: number) => {\n const renderItem = Array.isArray(metaData[element])\n ? metaData[element].map(decodeURIComponent).join(\", \")\n : decodeURIComponent(metaData[element]);\n\n return (\n \n {element}\n
    \n {renderItem}\n \n );\n })}\n
    \n );\n }\n\n return (\n \n \n \n Object Metadata\n \n \n\n \n \n \n {metaKeys.map((element: string, index: number) => {\n const renderItem = Array.isArray(metaData[element])\n ? metaData[element].map(decodeURIComponent).join(\", \")\n : decodeURIComponent(metaData[element]);\n\n return (\n \n \n {element}\n \n {renderItem}\n \n );\n })}\n \n
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ObjectMetaData);\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 { Button } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ntype ObjectActionButtonProps = {\n disabled?: boolean;\n onClick: () => void | any;\n icon: React.ReactNode;\n label: string;\n [x: string]: any;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: \"0 15px\",\n height: 22,\n margin: 0,\n color: \"#5E5E5E\",\n fontWeight: \"normal\",\n fontSize: 14,\n whiteSpace: \"nowrap\",\n width: \"100%\",\n justifyContent: \"flex-start\",\n \"&:hover\": {\n backgroundColor: \"transparent\",\n color: \"#000\",\n },\n \"& .min-icon\": {\n width: 11,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n });\n\nconst ObjectActionButton = ({\n disabled,\n onClick,\n icon,\n label,\n classes,\n ...restProps\n}: ObjectActionButtonProps) => {\n return (\n \n {label}\n \n );\n};\n\nexport default withStyles(styles)(ObjectActionButton);\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 ObjectActionButton from \"./ObjectActionButton\";\nimport { withStyles } from \"@mui/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { detailsPanel } from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nconst styles = () =>\n createStyles({\n ...detailsPanel,\n });\n\nexport interface MultiSelectionItem {\n action: () => void;\n label: string;\n disabled: boolean;\n icon: React.ReactNode;\n tooltip: string;\n}\n\ninterface IActionsListSectionProps {\n items: MultiSelectionItem[];\n title: string | React.ReactNode;\n classes: any;\n}\n\nconst ActionsListSection = ({\n items,\n classes,\n title,\n}: IActionsListSectionProps) => {\n return (\n \n
    {title}
    \n
      \n
    • Actions:
    • \n {items.map((actionItem, index) => {\n return (\n
    • \n \n
    • \n );\n })}\n
    \n
    \n );\n};\n\nexport default withStyles(styles)(ActionsListSection);\n","import React from \"react\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n fileName: {\n display: \"flex\",\n alignItems: \"center\",\n \"& .min-icon\": {\n width: 16,\n height: 16,\n marginRight: 4,\n },\n },\n fileNameText: {\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n },\n });\n\nconst IconWithLabel = (props: {\n classes: any;\n icon: JSX.Element;\n strings: string[];\n}) => {\n return (\n
    \n {props.icon}\n \n {props.strings[props.strings.length - 1]}\n \n
    \n );\n};\n\nexport default withStyles(styles)(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 ObjectBrowserIcon from \"../../../../../../icons/ObjectBrowserIcon\";\nimport ObjectBrowserFolderIcon from \"../../../../../../icons/ObjectBrowserFolderIcon\";\nimport IconWithLabel from \"./IconWithLabel\";\n\nconst FileBookIcon = React.lazy(\n () => import(\"../../../../../../icons/FileBookIcon\")\n);\nconst FileCodeIcon = React.lazy(\n () => import(\"../../../../../../icons/FileCodeIcon\")\n);\nconst FileConfigIcon = React.lazy(\n () => import(\"../../../../../../icons/FileConfigIcon\")\n);\nconst FileDbIcon = React.lazy(\n () => import(\"../../../../../../icons/FileDbIcon\")\n);\nconst FileFontIcon = React.lazy(\n () => import(\"../../../../../../icons/FileFontIcon\")\n);\nconst FileImageIcon = React.lazy(\n () => import(\"../../../../../../icons/FileImageIcon\")\n);\nconst FileLockIcon = React.lazy(\n () => import(\"../../../../../../icons/FileLockIcon\")\n);\nconst FileMissingIcon = React.lazy(\n () => import(\"../../../../../../icons/FileMissingIcon\")\n);\nconst FileMusicIcon = React.lazy(\n () => import(\"../../../../../../icons/FileMusicIcon\")\n);\nconst FilePdfIcon = React.lazy(\n () => import(\"../../../../../../icons/FilePdfIcon\")\n);\nconst FilePptIcon = React.lazy(\n () => import(\"../../../../../../icons/FilePptIcon\")\n);\nconst FileTxtIcon = React.lazy(\n () => import(\"../../../../../../icons/FileTxtIcon\")\n);\nconst FileVideoIcon = React.lazy(\n () => import(\"../../../../../../icons/FileVideoIcon\")\n);\nconst FileXlsIcon = React.lazy(\n () => import(\"../../../../../../icons/FileXlsIcon\")\n);\nconst FileZipIcon = React.lazy(\n () => import(\"../../../../../../icons/FileZipIcon\")\n);\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: [\"txt\"],\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.substr(0, element.length - 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, { useState, Fragment } from \"react\";\nimport get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { Box, Button, Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { setModalErrorSnackMessage } from \"../../../../../../actions\";\nimport { AppState } from \"../../../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport api from \"../../../../../../common/api\";\nimport { encodeFileName } from \"../../../../../../common/utils\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { TagsIcon } from \"../../../../../../icons\";\nimport { IFileInfo } from \"./types\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport { SecureComponent } from \"../../../../../../common/SecureComponent\";\nimport Chip from \"@mui/material/Chip\";\nimport CloseIcon from \"@mui/icons-material/Close\";\n\ninterface ITagModal {\n modalOpen: boolean;\n bucketName: string;\n actualInfo: IFileInfo;\n onCloseAndUpdate: (refresh: boolean) => void;\n distributedSetup: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n pathLabel: {\n marginTop: 0,\n marginBottom: 32,\n },\n newTileHeader: {\n fontSize: 18,\n fontWeight: \"bold\",\n color: \"#000\",\n margin: \"20px 0\",\n paddingBottom: 15,\n borderBottom: \"#E2E2E2 2px solid\",\n },\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\nconst AddTagModal = ({\n modalOpen,\n onCloseAndUpdate,\n bucketName,\n distributedSetup,\n actualInfo,\n setModalErrorSnackMessage,\n classes,\n}: ITagModal) => {\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 = encodeFileName(actualInfo.name);\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\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/tags?prefix=${selectedObject}&version_id=${verID}`,\n { tags: newTagList }\n )\n .then((res: any) => {\n onCloseAndUpdate(true);\n setIsSending(false);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(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\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/tags?prefix=${selectedObject}&version_id=${verID}`,\n { tags: cleanObject }\n )\n .then((res: any) => {\n onCloseAndUpdate(true);\n setIsSending(false);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(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 return (\n \n {\n onCloseAndUpdate(true);\n }}\n titleIcon={}\n >\n {deleteEnabled ? (\n \n \n Are you sure you want to delete the tag{\" \"}\n \n {deleteKey} : {deleteLabel}\n {\" \"}\n from {currentItem}?\n \n \n No\n \n \n Yes\n \n \n \n \n ) : (\n \n \n \n Current Tags:\n {currTagKeys.length === 0 ? \"No Tags for this object\" : \"\"}\n \n {currTagKeys.map((tagKey: string, index: number) => {\n const tag = get(currentTags, `${tagKey}`, \"\");\n if (tag !== \"\") {\n return (\n \n }\n onDelete={() => {\n onDeleteTag(tagKey, tag);\n }}\n />\n \n );\n }\n return null;\n })}\n \n \n \n \n \n \n Add New Tag\n \n \n {\n setNewKey(e.target.value);\n }}\n />\n \n \n {\n setNewLabel(e.target.value);\n }}\n />\n \n \n \n Clear\n \n \n Save new Tag\n \n \n \n \n \n )}\n \n \n );\n};\n\nconst mapStateToProps = ({ system }: AppState) => ({\n distributedSetup: get(system, \"distributedSetup\", false),\n});\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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 { connect } from \"react-redux\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport {\n decodeFileName,\n deleteCookie,\n getCookieValue,\n performDownload,\n} from \"../../../../../../common/utils\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport { InspectMenuIcon } from \"../../../../../../icons/SidebarMenus\";\nimport Button from \"@mui/material/Button\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { PasswordKeyIcon } from \"../../../../../../icons\";\nimport { Box, DialogContentText } from \"@mui/material\";\nimport KeyRevealer from \"../../../../Tools/KeyRevealer\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...formFieldStyles,\n ...modalStyleUtils,\n ...spacingUtils,\n });\n\ninterface IInspectObjectProps {\n classes: any;\n closeInspectModalAndRefresh: (refresh: boolean) => void;\n inspectOpen: boolean;\n inspectPath: string;\n volumeName: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst InspectObject = ({\n classes,\n closeInspectModalAndRefresh,\n inspectOpen,\n inspectPath,\n volumeName,\n setErrorSnackMessage,\n}: IInspectObjectProps) => {\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 = encodeURIComponent(inspectPath + \"/xl.meta\");\n const volume = encodeURIComponent(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 setErrorSnackMessage({\n errorMessage: resErr.message,\n detailedError: resErr.code,\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 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 {decodeFileName(inspectPath)}?{\" \"}\n
    \n {\n setIsEncrypt(!isEncrypt);\n }}\n description=\"\"\n />\n \n \n Inspect\n \n \n \n \n )}\n {decryptionKey ? (\n }\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 \n ) : null}\n
    \n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(InspectObject));\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 { connect } from \"react-redux\";\nimport { Box, Button, LinearProgress } from \"@mui/material\";\nimport { withStyles } from \"@mui/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport get from \"lodash/get\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n actionsTray,\n buttonsStyles,\n spacingUtils,\n textStyleUtils,\n detailsPanel,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { IFileInfo } from \"../ObjectDetails/types\";\nimport { download, extensionPreview } from \"../utils\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../../../actions\";\nimport {\n decodeFileName,\n encodeFileName,\n niceBytes,\n niceBytesInt,\n niceDaysInt,\n} from \"../../../../../../common/utils\";\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport {\n completeObject,\n setLoadingObjectInfo,\n setLoadingVersions,\n setNewObject,\n setSelectedVersion,\n setVersionsModeEnabled,\n updateProgress,\n} from \"../../../../ObjectBrowser/actions\";\nimport { AppState } from \"../../../../../../store\";\nimport {\n LegalHoldIcon,\n MetadataIcon,\n ObjectInfoIcon,\n PreviewIcon,\n RetentionIcon,\n TagsIcon,\n VersionsIcon,\n} from \"../../../../../../icons\";\nimport { InspectMenuIcon } from \"../../../../../../icons/SidebarMenus\";\nimport { ShareIcon, DownloadIcon, DeleteIcon } from \"../../../../../../icons\";\nimport api from \"../../../../../../common/api\";\nimport ShareFile from \"../ObjectDetails/ShareFile\";\nimport SetRetention from \"../ObjectDetails/SetRetention\";\nimport DeleteObject from \"../ListObjects/DeleteObject\";\nimport SetLegalHoldModal from \"../ObjectDetails/SetLegalHoldModal\";\nimport {\n hasPermission,\n SecureComponent,\n} from \"../../../../../../common/SecureComponent\";\nimport PreviewFileModal from \"../Preview/PreviewFileModal\";\nimport ObjectMetaData from \"../ObjectDetails/ObjectMetaData\";\nimport ActionsListSection from \"./ActionsListSection\";\nimport { displayFileIconName } from \"./utils\";\nimport TagsModal from \"../ObjectDetails/TagsModal\";\nimport InspectObject from \"./InspectObject\";\n\nconst styles = () =>\n createStyles({\n ObjectDetailsTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n objectNameContainer: {\n whiteSpace: \"nowrap\",\n textOverflow: \"ellipsis\",\n overflow: \"hidden\",\n alignItems: \"center\",\n marginLeft: 10,\n },\n headerForSection: {\n display: \"flex\",\n justifyContent: \"space-between\",\n alignItems: \"center\",\n paddingBottom: 15,\n borderBottom: \"#E2E2E2 2px solid\",\n fontWeight: \"bold\",\n fontSize: 18,\n color: \"#000\",\n margin: \"20px 22px\",\n },\n capitalizeFirst: {\n textTransform: \"capitalize\",\n },\n ...buttonsStyles,\n ...actionsTray,\n ...spacingUtils,\n ...textStyleUtils,\n ...detailsPanel,\n });\n\ninterface IObjectDetailPanelProps {\n classes: any;\n internalPaths: string;\n bucketName: string;\n rewindEnabled: boolean;\n rewindDate: any;\n bucketToRewind: string;\n distributedSetup: boolean;\n versioning: boolean;\n locking: boolean;\n versionsMode: boolean;\n selectedVersion: string;\n loadingObjectInfo: boolean;\n onClosePanel: (hardRefresh: boolean) => void;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setSnackBarMessage: typeof setSnackBarMessage;\n setNewObject: typeof setNewObject;\n updateProgress: typeof updateProgress;\n completeObject: typeof completeObject;\n setVersionsModeEnabled: typeof setVersionsModeEnabled;\n setLoadingObjectInfo: typeof setLoadingObjectInfo;\n setLoadingVersions: typeof setLoadingVersions;\n setSelectedVersion: typeof setSelectedVersion;\n}\n\nconst emptyFile: IFileInfo = {\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: null,\n};\n\nconst ObjectDetailPanel = ({\n classes,\n internalPaths,\n bucketName,\n distributedSetup,\n versioning,\n locking,\n setErrorSnackMessage,\n setNewObject,\n updateProgress,\n completeObject,\n versionsMode,\n selectedVersion,\n onClosePanel,\n setVersionsModeEnabled,\n loadingObjectInfo,\n setLoadingObjectInfo,\n setLoadingVersions,\n setSelectedVersion,\n}: IObjectDetailPanelProps) => {\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\n const internalPathsDecoded = decodeFileName(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) {\n objectNameArray = actualInfo.name.split(\"/\");\n }\n\n useEffect(() => {\n if (bucketName !== \"\" && internalPaths) {\n setLoadingObjectInfo(true);\n }\n }, [internalPaths, bucketName, setLoadingObjectInfo]);\n\n useEffect(() => {\n if (distributedSetup && allInfoElements.length >= 1) {\n let infoElement =\n allInfoElements.find((el: IFileInfo) => el.is_latest) || emptyFile;\n\n if (selectedVersion !== \"\") {\n infoElement =\n allInfoElements.find(\n (el: IFileInfo) => el.version_id === selectedVersion\n ) || emptyFile;\n }\n\n setActualInfo(infoElement);\n }\n }, [selectedVersion, distributedSetup, allInfoElements]);\n\n useEffect(() => {\n if (loadingObjectInfo && internalPaths !== \"\") {\n api\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects?prefix=${internalPaths}${\n distributedSetup ? \"&with_versions=true\" : \"\"\n }`\n )\n .then((res: IFileInfo[]) => {\n const result = get(res, \"objects\", []);\n if (distributedSetup) {\n setAllInfoElements(result);\n setVersions(result);\n const tVersionSize = result.reduce(\n (acc: number, currValue: IFileInfo) => {\n if (currValue?.size) {\n return acc + currValue.size;\n }\n return acc;\n },\n 0\n );\n\n setTotalVersionsSize(tVersionSize);\n } else {\n setActualInfo(result[0]);\n setVersions([]);\n }\n\n setLoadingObjectInfo(false);\n })\n .catch((error: ErrorResponseHandler) => {\n setErrorSnackMessage(error);\n setLoadingObjectInfo(false);\n });\n }\n }, [\n loadingObjectInfo,\n bucketName,\n internalPaths,\n setErrorSnackMessage,\n distributedSetup,\n selectedVersion,\n setLoadingObjectInfo,\n ]);\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 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 downloadObject = (object: IFileInfo) => {\n const identityDownload = encodeFileName(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`\n );\n\n setNewObject({\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: object.name,\n type: \"download\",\n waitingForFile: true,\n });\n\n download(\n bucketName,\n internalPaths,\n object.version_id,\n parseInt(object.size || \"0\"),\n (progress) => {\n updateProgress(identityDownload, progress);\n },\n () => {\n completeObject(identityDownload);\n }\n );\n };\n\n const closeDeleteModal = (closeAndReload: boolean) => {\n setDeleteOpen(false);\n\n if (closeAndReload && selectedVersion === \"\") {\n onClosePanel(true);\n } else {\n setLoadingVersions(true);\n setSelectedVersion(\"\");\n setLoadingObjectInfo(true);\n }\n };\n\n const closeAddTagModal = (reloadObjectData: boolean) => {\n setTagModalOpen(false);\n if (reloadObjectData) {\n setLoadingObjectInfo(true);\n }\n };\n\n const closeInspectModal = (reloadObjectData: boolean) => {\n setInspectModalOpen(false);\n if (reloadObjectData) {\n setLoadingObjectInfo(true);\n }\n };\n\n const closeLegalholdModal = (reload: boolean) => {\n setLegalholdOpen(false);\n if (reload) {\n setLoadingObjectInfo(true);\n }\n };\n\n if (!actualInfo) {\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\n const multiActionButtons = [\n {\n action: () => {\n downloadObject(actualInfo);\n },\n label: \"Download\",\n disabled:\n !!actualInfo.is_delete_marker ||\n !hasPermission(objectResources, [IAM_SCOPES.S3_GET_OBJECT]),\n icon: ,\n tooltip: \"Download this Object\",\n },\n {\n action: () => {\n shareObject();\n },\n label: \"Share\",\n disabled:\n !!actualInfo.is_delete_marker ||\n !hasPermission(objectResources, [IAM_SCOPES.S3_GET_OBJECT]),\n icon: ,\n tooltip: \"Share this File\",\n },\n {\n action: () => {\n setPreviewOpen(true);\n },\n label: \"Preview\",\n disabled:\n !!actualInfo.is_delete_marker ||\n extensionPreview(currentItem) === \"none\" ||\n !hasPermission(objectResources, [IAM_SCOPES.S3_GET_OBJECT]),\n icon: ,\n tooltip: \"Preview this File\",\n },\n {\n action: () => {\n setLegalholdOpen(true);\n },\n label: \"Legal Hold\",\n disabled:\n !locking ||\n !distributedSetup ||\n !!actualInfo.is_delete_marker ||\n !hasPermission(bucketName, [IAM_SCOPES.S3_PUT_OBJECT_LEGAL_HOLD]) ||\n selectedVersion !== \"\",\n icon: ,\n tooltip: \"Change Legal Hold rules for this File\",\n },\n {\n action: openRetentionModal,\n label: \"Retention\",\n disabled:\n !distributedSetup ||\n !!actualInfo.is_delete_marker ||\n !hasPermission(objectResources, [IAM_SCOPES.S3_GET_OBJECT_RETENTION]) ||\n selectedVersion !== \"\",\n icon: ,\n tooltip: \"Change Retention rules for this File\",\n },\n {\n action: () => {\n setTagModalOpen(true);\n },\n label: \"Tags\",\n disabled:\n !!actualInfo.is_delete_marker ||\n selectedVersion !== \"\" ||\n !hasPermission(objectResources, [IAM_SCOPES.S3_PUT_OBJECT_TAGGING]),\n icon: ,\n tooltip: \"Change Tags for this File\",\n },\n {\n action: () => {\n setInspectModalOpen(true);\n },\n label: \"Inspect\",\n disabled:\n !distributedSetup ||\n !!actualInfo.is_delete_marker ||\n selectedVersion !== \"\" ||\n !hasPermission(objectResources, [IAM_SCOPES.ADMIN_INSPECT_DATA]),\n icon: ,\n tooltip: \"Inspect this file\",\n },\n {\n action: () => {\n setVersionsModeEnabled(!versionsMode, objectName);\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 !hasPermission(objectResources, [\n IAM_SCOPES.S3_GET_BUCKET_VERSIONING,\n IAM_SCOPES.S3_PUT_BUCKET_VERSIONING,\n IAM_SCOPES.S3_GET_OBJECT_VERSION,\n ]),\n tooltip: \"Display Versions for this file\",\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\n {!actualInfo && (\n \n \n \n )}\n\n \n {displayFileIconName(objectName, true)}\n {objectName}\n \n }\n items={multiActionButtons}\n />\n\n \n \n }\n color=\"secondary\"\n variant={\"outlined\"}\n onClick={() => {\n setDeleteOpen(true);\n }}\n disabled={selectedVersion === \"\" && actualInfo.is_delete_marker}\n sx={{\n width: \"calc(100% - 44px)\",\n margin: \"8px 0\",\n \"& svg.min-icon\": {\n width: 14,\n height: 14,\n },\n }}\n >\n Delete{selectedVersion !== \"\" ? \" version\" : \"\"}\n \n \n \n \n Object Info\n \n \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 \n Metadata\n \n \n \n {actualInfo ? (\n \n ) : null}\n \n
    \n );\n};\n\nconst mapStateToProps = ({ objectBrowser, system }: AppState) => ({\n rewindEnabled: get(objectBrowser, \"rewind.rewindEnabled\", false),\n rewindDate: get(objectBrowser, \"rewind.dateToRewind\", null),\n bucketToRewind: get(objectBrowser, \"rewind.bucketToRewind\", \"\"),\n distributedSetup: get(system, \"distributedSetup\", false),\n versionsMode: get(objectBrowser, \"versionsMode\", false),\n selectedVersion: get(objectBrowser, \"selectedVersion\", \"\"),\n loadingObjectInfo: get(objectBrowser, \"loadingObjectInfo\", false),\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n setSnackBarMessage,\n setNewObject,\n updateProgress,\n completeObject,\n setVersionsModeEnabled,\n setLoadingObjectInfo,\n setLoadingVersions,\n setSelectedVersion,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(ObjectDetailPanel));\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 * as reactMoment from \"react-moment\";\nimport { BucketObject } from \"./types\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport { displayFileIconName } from \"./utils\";\n\n// Functions\n\nexport const displayParsedDate = (object: BucketObject) => {\n if (object.name.endsWith(\"/\")) {\n return \"\";\n }\n return {object.last_modified};\n};\n\nexport const displayNiceBytes = (object: BucketObject) => {\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 contentTextAlign: \"center\",\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 contentTextAlign: \"center\",\n enableSort: true,\n },\n {\n label: \"Deleted\",\n elementKey: \"delete_flag\",\n renderFunction: displayDeleteFlag,\n width: 60,\n contentTextAlign: \"center\",\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, { useState } from \"react\";\nimport { DialogContentText } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { modalBasic } from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { encodeFileName } from \"../../../../../../common/utils\";\nimport api from \"../../../../../../common/api\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport RecoverIcon from \"../../../../../../icons/RecoverIcon\";\n\ninterface IRestoreFileVersion {\n classes: any;\n restoreOpen: boolean;\n bucketName: string;\n versionID: string;\n objectPath: string;\n onCloseAndUpdate: (refresh: boolean) => void;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...modalBasic,\n });\n\nconst RestoreFileVersion = ({\n classes,\n versionID,\n bucketName,\n objectPath,\n restoreOpen,\n onCloseAndUpdate,\n}: IRestoreFileVersion) => {\n const [restoreLoading, setRestoreLoading] = useState(false);\n\n const restoreVersion = () => {\n setRestoreLoading(true);\n\n api\n .invoke(\n \"PUT\",\n `/api/v1/buckets/${bucketName}/objects/restore?prefix=${encodeFileName(\n objectPath\n )}&version_id=${versionID}`\n )\n .then((res: any) => {\n setRestoreLoading(false);\n onCloseAndUpdate(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setErrorSnackMessage(error);\n setRestoreLoading(false);\n });\n };\n\n return (\n }\n onConfirm={restoreVersion}\n confirmButtonProps={{\n color: \"secondary\",\n variant: \"outlined\",\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 {versionID}?\n
    \n }\n />\n );\n};\n\nconst mapStateToProps = null;\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(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 * as reactMoment from \"react-moment\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { withStyles } from \"@mui/styles\";\nimport { displayFileIconName } from \"../ListObjects/utils\";\nimport { IFileInfo } from \"./types\";\nimport { IconButton, Tooltip } from \"@mui/material\";\nimport {\n DownloadIcon,\n PreviewIcon,\n RecoverIcon,\n ShareIcon,\n} from \"../../../../../../icons\";\nimport { niceBytes } from \"../../../../../../common/utils\";\nimport SpecificVersionPill from \"./SpecificVersionPill\";\n\ninterface IFileVersionItem {\n fileName: string;\n versionInfo: IFileInfo;\n index: number;\n isSelected?: boolean;\n onShare: (versionInfo: IFileInfo) => void;\n onDownload: (versionInfo: IFileInfo) => void;\n onRestore: (versionInfo: IFileInfo) => void;\n onPreview: (versionInfo: IFileInfo) => void;\n globalClick: (versionInfo: IFileInfo) => void;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n mainFileVersionItem: {\n borderBottom: \"#E2E2E2 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: \"#F8F8F8\",\n \"& > div\": {\n borderBottomColor: \"#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 },\n versionData: {\n marginRight: \"10px\",\n fontSize: 12,\n color: \"#868686\",\n },\n ctrItem: {\n position: \"relative\",\n \"&::before\": {\n content: \"' '\",\n display: \"block\",\n position: \"absolute\",\n width: \"2px\",\n height: \"calc(100% + 2px)\",\n backgroundColor: \"#F8F8F8\",\n left: \"24px\",\n },\n },\n });\n\nconst FileVersionItem = ({\n classes,\n fileName,\n versionInfo,\n isSelected,\n onShare,\n onDownload,\n onRestore,\n onPreview,\n globalClick,\n index,\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 return (\n {\n globalClick(versionInfo);\n }}\n >\n \n \n \n \n \n {displayFileIconName(fileName, true)} v{index.toString()}\n {pill && }\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 \n {versionInfo.last_modified}\n \n \n \n Size: {niceBytes(versionInfo.size || \"0\")}\n \n \n \n \n \n );\n};\n\nexport default withStyles(styles)(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, { useState, useEffect } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport { decodeFileName } from \"../../../../../../common/utils\";\nimport { ConfirmDeleteIcon } from \"../../../../../../icons\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport api from \"../../../../../../common/api\";\nimport InputBoxWrapper from \"../../../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\n\ninterface IDeleteNonCurrentProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObject: string;\n selectedBucket: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeleteNonCurrentVersions = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObject,\n setErrorSnackMessage,\n}: IDeleteNonCurrentProps) => {\n const [deleteLoading, setDeleteLoading] = useState(false);\n const [typeConfirm, setTypeConfirm] = useState(\"\");\n\n useEffect(() => {\n if (deleteLoading) {\n api\n .invoke(\n \"DELETE\",\n `/api/v1/buckets/${selectedBucket}/objects?path=${selectedObject}&non_current_versions=true`\n )\n .then(() => {\n closeDeleteModalAndRefresh(true);\n })\n .catch((error: ErrorResponseHandler) => {\n setErrorSnackMessage(error);\n setDeleteLoading(false);\n });\n }\n }, [\n deleteLoading,\n closeDeleteModalAndRefresh,\n setErrorSnackMessage,\n selectedObject,\n selectedBucket,\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 {decodeFileName(selectedObject)}?
    \n
    \n To continue please type YES, PROCEED in the box.\n \n ) => {\n setTypeConfirm(event.target.value);\n }}\n label=\"\"\n value={typeConfirm}\n />\n \n
    \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(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 get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { withStyles } from \"@mui/styles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { LinearProgress, SelectChangeEvent } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport ShareFile from \"./ShareFile\";\nimport {\n actionsTray,\n buttonsStyles,\n containerForHeader,\n hrClass,\n tableStyles,\n spacingUtils,\n textStyleUtils,\n objectBrowserExtras,\n objectBrowserCommon,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { IFileInfo } from \"./types\";\nimport { download } from \"../utils\";\nimport api from \"../../../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../../../actions\";\nimport {\n decodeFileName,\n encodeFileName,\n niceBytesInt,\n} from \"../../../../../../common/utils\";\nimport ScreenTitle from \"../../../../Common/ScreenTitle/ScreenTitle\";\nimport RestoreFileVersion from \"./RestoreFileVersion\";\nimport {\n completeObject,\n setLoadingObjectInfo,\n setLoadingVersions,\n setNewObject,\n setSelectedVersion,\n updateProgress,\n} from \"../../../../ObjectBrowser/actions\";\n\nimport { AppState } from \"../../../../../../store\";\nimport { DeleteNonCurrentIcon, VersionsIcon } from \"../../../../../../icons\";\nimport VirtualizedList from \"../../../../Common/VirtualizedList/VirtualizedList\";\nimport FileVersionItem from \"./FileVersionItem\";\nimport SelectWrapper from \"../../../../Common/FormComponents/SelectWrapper/SelectWrapper\";\nimport PreviewFileModal from \"../Preview/PreviewFileModal\";\nimport RBIconButton from \"../../../BucketDetails/SummaryItems/RBIconButton\";\nimport DeleteNonCurrent from \"../ListObjects/DeleteNonCurrent\";\nimport BrowserBreadcrumbs from \"../../../../ObjectBrowser/BrowserBreadcrumbs\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n versionsContainer: {\n padding: 10,\n },\n noBottomBorder: {\n borderBottom: 0,\n },\n versionsVirtualPanel: {\n flexGrow: 1,\n height: \"calc(100% - 120px)\",\n overflow: \"auto\",\n },\n screenTitleContainer: {\n position: \"relative\",\n \"&::before\": {\n content: \"' '\",\n display: \"block\",\n position: \"absolute\",\n width: \"2px\",\n backgroundColor: \"#F8F8F8\",\n left: \"24px\",\n height: \"40px\",\n bottom: 0,\n },\n },\n sortByLabel: {\n color: \"#838383\",\n fontWeight: \"bold\",\n whiteSpace: \"nowrap\",\n marginRight: 12,\n fontSize: 14,\n },\n ...hrClass,\n ...buttonsStyles,\n ...actionsTray,\n ...tableStyles,\n ...spacingUtils,\n ...textStyleUtils,\n ...objectBrowserCommon,\n ...objectBrowserExtras,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IVersionsNavigatorProps {\n classes: any;\n distributedSetup: boolean;\n internalPaths: string;\n bucketName: string;\n searchVersions: string;\n loadingVersions: boolean;\n selectedVersion: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setSnackBarMessage: typeof setSnackBarMessage;\n setNewObject: typeof setNewObject;\n updateProgress: typeof updateProgress;\n completeObject: typeof completeObject;\n setSelectedVersion: typeof setSelectedVersion;\n setLoadingVersions: typeof setLoadingVersions;\n setLoadingObjectInfo: typeof setLoadingObjectInfo;\n}\n\nconst emptyFile: IFileInfo = {\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: null,\n};\n\nconst VersionsNavigator = ({\n classes,\n distributedSetup,\n setErrorSnackMessage,\n setNewObject,\n updateProgress,\n searchVersions,\n loadingVersions,\n selectedVersion,\n completeObject,\n internalPaths,\n bucketName,\n setSelectedVersion,\n setLoadingVersions,\n setLoadingObjectInfo,\n}: IVersionsNavigatorProps) => {\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 const [sortValue, setSortValue] = useState(\"date\");\n const [previewOpen, setPreviewOpen] = useState(false);\n const [deleteNonCurrentOpen, setDeleteNonCurrentOpen] =\n useState(false);\n\n // calculate object name to display\n let objectNameArray: string[] = [];\n if (actualInfo) {\n objectNameArray = actualInfo.name.split(\"/\");\n }\n\n useEffect(() => {\n if (loadingVersions && internalPaths !== \"\") {\n api\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects?prefix=${internalPaths}${\n distributedSetup ? \"&with_versions=true\" : \"\"\n }`\n )\n .then((res: IFileInfo[]) => {\n const result = get(res, \"objects\", []);\n if (distributedSetup) {\n setActualInfo(\n result.find((el: IFileInfo) => el.is_latest) || emptyFile\n );\n setVersions(result);\n } else {\n setActualInfo(result[0]);\n setVersions([]);\n }\n\n setLoadingVersions(false);\n })\n .catch((error: ErrorResponseHandler) => {\n setErrorSnackMessage(error);\n setLoadingVersions(false);\n });\n }\n }, [\n setLoadingVersions,\n loadingVersions,\n bucketName,\n internalPaths,\n setErrorSnackMessage,\n distributedSetup,\n ]);\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 downloadObject = (object: IFileInfo) => {\n const identityDownload = encodeFileName(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`\n );\n\n setNewObject({\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: object.name,\n type: \"download\",\n waitingForFile: true,\n });\n\n download(\n bucketName,\n internalPaths,\n object.version_id,\n parseInt(object.size || \"0\"),\n (progress) => {\n updateProgress(identityDownload, progress);\n },\n () => {\n completeObject(identityDownload);\n }\n );\n };\n\n const onShareItem = (item: IFileInfo) => {\n setObjectToShare(item);\n shareObject();\n };\n\n const onPreviewItem = (item: IFileInfo) => {\n setObjectToShare(item);\n setPreviewOpen(true);\n };\n\n const onRestoreItem = (item: IFileInfo) => {\n setRestoreVersion(item.version_id || \"\");\n setRestoreVersionOpen(true);\n };\n\n const onDownloadItem = (item: IFileInfo) => {\n downloadObject(item);\n };\n\n const onGlobalClick = (item: IFileInfo) => {\n 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(\"\");\n\n if (reloadObjectData) {\n setLoadingVersions(true);\n setLoadingObjectInfo(true);\n }\n };\n\n const closeDeleteNonCurrent = (reloadAfterDelete: boolean) => {\n setDeleteNonCurrentOpen(false);\n\n if (reloadAfterDelete) {\n setLoadingVersions(true);\n setSelectedVersion(\"\");\n setLoadingObjectInfo(true);\n }\n };\n\n const totalSpace = versions.reduce((acc: number, currValue: IFileInfo) => {\n if (currValue.size) {\n return acc + parseInt(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 renderVersion = (elementIndex: number) => {\n const item = filteredRecords[elementIndex];\n const versOrd = versions.length - versions.indexOf(item);\n\n return (\n \n );\n };\n\n return (\n \n {shareFileModalOpen && actualInfo && (\n \n )}\n {restoreVersionOpen && actualInfo && (\n \n )}\n {previewOpen && actualInfo && (\n {\n setPreviewOpen(false);\n }}\n />\n )}\n {deleteNonCurrentOpen && (\n \n )}\n \n {!actualInfo && (\n \n \n \n )}\n\n {actualInfo && (\n \n \n \n \n \n \n \n \n }\n title={\n \n {objectNameArray.length > 0\n ? objectNameArray[objectNameArray.length - 1]\n : actualInfo.name}{\" \"}\n Versions\n \n }\n subTitle={\n \n \n \n \n {versions.length} Version\n {versions.length === 1 ? \"\" : \"s\"}   \n \n \n \n {niceBytesInt(totalSpace)}\n \n \n \n }\n actions={\n \n {\n setDeleteNonCurrentOpen(true);\n }}\n text={\"\"}\n icon={}\n color=\"secondary\"\n style={{ marginRight: 15 }}\n disabled={versions.length <= 1}\n />\n Sort by\n ) => {\n setSortValue(e.target.value as string);\n }}\n name={\"sort-by\"}\n options={[\n { label: \"Date\", value: \"date\" },\n {\n label: \"Size\",\n value: \"size\",\n },\n ]}\n />\n \n }\n className={classes.noBottomBorder}\n />\n \n \n {actualInfo.version_id && actualInfo.version_id !== \"null\" && (\n \n )}\n \n \n )}\n \n \n );\n};\n\nconst mapStateToProps = ({ system, objectBrowser }: AppState) => ({\n distributedSetup: get(system, \"distributedSetup\", false),\n searchVersions: objectBrowser.searchVersions,\n loadingVersions: objectBrowser.loadingVersions,\n selectedVersion: objectBrowser.selectedVersion,\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n setSnackBarMessage,\n setNewObject,\n updateProgress,\n completeObject,\n setSelectedVersion,\n setLoadingVersions,\n setLoadingObjectInfo,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(VersionsNavigator));\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 Fragment,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n} from \"react\";\nimport { connect } from \"react-redux\";\nimport { useDropzone } from \"react-dropzone\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { withRouter } from \"react-router-dom\";\nimport Grid from \"@mui/material/Grid\";\nimport get from \"lodash/get\";\nimport {\n BucketObject,\n BucketObjectsList,\n RewindObject,\n RewindObjectList,\n} from \"./types\";\nimport api from \"../../../../../../common/api\";\nimport TableWrapper, {\n ItemActions,\n} from \"../../../../Common/TableWrapper/TableWrapper\";\nimport {\n decodeFileName,\n encodeFileName,\n niceBytesInt,\n} from \"../../../../../../common/utils\";\n\nimport {\n actionsTray,\n containerForHeader,\n objectBrowserCommon,\n objectBrowserExtras,\n searchField,\n tableStyles,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\nimport { Badge, Typography } from \"@mui/material\";\nimport BrowserBreadcrumbs from \"../../../../ObjectBrowser/BrowserBreadcrumbs\";\nimport {\n completeObject,\n openList,\n resetRewind,\n setLoadingVersions,\n setNewObject,\n setSearchObjects,\n setShowDeletedObjects,\n setVersionsModeEnabled,\n updateProgress,\n} from \"../../../../ObjectBrowser/actions\";\nimport { Route } from \"../../../../ObjectBrowser/reducers\";\n\nimport { download, extensionPreview, sortListObjects } from \"../utils\";\nimport {\n setErrorSnackMessage,\n setSnackBarMessage,\n} from \"../../../../../../actions\";\nimport {\n BucketInfo,\n BucketObjectLocking,\n BucketQuota,\n BucketVersioning,\n} from \"../../../types\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\n\nimport ScreenTitle from \"../../../../Common/ScreenTitle/ScreenTitle\";\n\nimport { setBucketDetailsLoad, setBucketInfo } from \"../../../actions\";\nimport { AppState } from \"../../../../../../store\";\nimport PageLayout from \"../../../../Common/Layout/PageLayout\";\n\nimport { IAM_SCOPES } from \"../../../../../../common/SecureComponent/permissions\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../../../../common/SecureComponent\";\n\nimport withSuspense from \"../../../../Common/Components/withSuspense\";\nimport {\n BucketsIcon,\n DownloadIcon,\n PreviewIcon,\n ShareIcon,\n} from \"../../../../../../icons\";\nimport UploadFilesButton from \"../../UploadFilesButton\";\nimport DetailsListPanel from \"./DetailsListPanel\";\nimport ObjectDetailPanel from \"./ObjectDetailPanel\";\nimport RBIconButton from \"../../../BucketDetails/SummaryItems/RBIconButton\";\nimport ActionsListSection from \"./ActionsListSection\";\nimport { listModeColumns, rewindModeColumns } from \"./ListObjectsHelpers\";\nimport VersionsNavigator from \"../ObjectDetails/VersionsNavigator\";\nimport CheckboxWrapper from \"../../../../Common/FormComponents/CheckboxWrapper/CheckboxWrapper\";\n\nconst HistoryIcon = React.lazy(\n () => import(\"../../../../../../icons/HistoryIcon\")\n);\nconst RefreshIcon = React.lazy(\n () => import(\"../../../../../../icons/RefreshIcon\")\n);\n\nconst DeleteIcon = React.lazy(\n () => import(\"../../../../../../icons/DeleteIcon\")\n);\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 styles = (theme: Theme) =>\n createStyles({\n browsePaper: {\n border: 0,\n height: \"calc(100vh - 210px)\",\n \"&.actionsPanelOpen\": {\n minHeight: \"100%\",\n },\n },\n \"@global\": {\n \".rowLine:hover .iconFileElm\": {\n backgroundImage: \"url(/images/ob_file_filled.svg)\",\n },\n \".rowLine:hover .iconFolderElm\": {\n backgroundImage: \"url(/images/ob_folder_filled.svg)\",\n },\n },\n\n badgeOverlap: {\n \"& .MuiBadge-badge\": {\n top: 10,\n right: 1,\n width: 5,\n height: 5,\n minWidth: 5,\n },\n },\n screenTitle: {\n borderBottom: 0,\n paddingTop: 0,\n paddingLeft: 0,\n paddingRight: 0,\n },\n ...tableStyles,\n ...actionsTray,\n ...searchField,\n\n searchField: {\n ...searchField.searchField,\n maxWidth: 380,\n },\n screenTitleContainer: {\n border: \"#EAEDEE 1px solid\",\n padding: \"0.8rem 15px 0\",\n },\n labelStyle: {\n color: \"#969FA8\",\n fontSize: \"12px\",\n },\n breadcrumbsContainer: {\n padding: \"12px 14px 5px\",\n },\n ...objectBrowserExtras,\n ...objectBrowserCommon,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst baseDnDStyle = {\n borderWidth: 2,\n borderRadius: 2,\n borderColor: \"#eeeeee\",\n outline: \"none\",\n};\n\nconst activeDnDStyle = {\n borderStyle: \"dashed\",\n backgroundColor: \"#fafafa\",\n borderColor: \"#2196f3\",\n};\n\nconst acceptDnDStyle = {\n borderStyle: \"dashed\",\n backgroundColor: \"#fafafa\",\n borderColor: \"#00e676\",\n};\n\ninterface IListObjectsProps {\n classes: any;\n match: any;\n history: any;\n routesList: Route[];\n downloadingFiles: string[];\n rewindEnabled: boolean;\n rewindDate: any;\n bucketToRewind: string;\n searchObjects: string;\n showDeleted: boolean;\n setSnackBarMessage: typeof setSnackBarMessage;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n resetRewind: typeof resetRewind;\n loadingBucket: boolean;\n setBucketInfo: typeof setBucketInfo;\n bucketInfo: BucketInfo | null;\n versionsMode: boolean;\n setBucketDetailsLoad: typeof setBucketDetailsLoad;\n setNewObject: typeof setNewObject;\n updateProgress: typeof updateProgress;\n completeObject: typeof completeObject;\n openList: typeof openList;\n setSearchObjects: typeof setSearchObjects;\n setVersionsModeEnabled: typeof setVersionsModeEnabled;\n setShowDeletedObjects: typeof setShowDeletedObjects;\n setLoadingVersions: typeof setLoadingVersions;\n}\n\nfunction useInterval(callback: any, delay: number) {\n const savedCallback = useRef(null);\n\n // Remember the latest callback.\n useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n // Set up the interval.\n useEffect(() => {\n function tick() {\n if (savedCallback !== undefined && savedCallback.current) {\n savedCallback.current();\n }\n }\n\n if (delay !== null) {\n let id = setInterval(tick, delay);\n return () => clearInterval(id);\n }\n }, [delay]);\n}\n\nconst defLoading = Loading...;\n\nconst ListObjects = ({\n classes,\n match,\n history,\n rewindEnabled,\n rewindDate,\n bucketToRewind,\n setSnackBarMessage,\n setErrorSnackMessage,\n resetRewind,\n setBucketDetailsLoad,\n loadingBucket,\n setBucketInfo,\n bucketInfo,\n setNewObject,\n updateProgress,\n completeObject,\n setSearchObjects,\n searchObjects,\n versionsMode,\n openList,\n setVersionsModeEnabled,\n showDeleted,\n setShowDeletedObjects,\n setLoadingVersions,\n}: IListObjectsProps) => {\n const [records, setRecords] = useState([]);\n const [loading, setLoading] = useState(true);\n const [rewind, setRewind] = useState([]);\n const [loadingRewind, setLoadingRewind] = useState(false);\n const [deleteMultipleOpen, setDeleteMultipleOpen] = useState(false);\n const [loadingStartTime, setLoadingStartTime] = useState(0);\n const [loadingMessage, setLoadingMessage] =\n useState(defLoading);\n const [loadingVersioning, setLoadingVersioning] = useState(true);\n const [isVersioned, setIsVersioned] = useState(false);\n const [loadingLocking, setLoadingLocking] = useState(true);\n const [lockingEnabled, setLockingEnabled] = useState(false);\n const [rewindSelect, setRewindSelect] = useState(false);\n const [selectedObjects, setSelectedObjects] = useState([]);\n const [previewOpen, setPreviewOpen] = useState(false);\n const [selectedPreview, setSelectedPreview] = useState(\n null\n );\n const [shareFileModalOpen, setShareFileModalOpen] = useState(false);\n const [sortDirection, setSortDirection] = useState<\n \"ASC\" | \"DESC\" | undefined\n >(\"ASC\");\n const [currentSortField, setCurrentSortField] = useState(\"name\");\n const [iniLoad, setIniLoad] = useState(false);\n const [canShareFile, setCanShareFile] = useState(false);\n const [canPreviewFile, setCanPreviewFile] = useState(false);\n const [detailsOpen, setDetailsOpen] = useState(false);\n const [selectedInternalPaths, setSelectedInternalPaths] = useState<\n string | null\n >(null);\n const [quota, setQuota] = useState(null);\n\n const internalPaths = get(match.params, \"subpaths\", \"\");\n const bucketName = match.params[\"bucketName\"];\n\n const fileUpload = useRef(null);\n const folderUpload = useRef(null);\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\n if (extensionPreview(objectName) !== \"none\") {\n setCanPreviewFile(true);\n } else {\n setCanPreviewFile(false);\n }\n\n if (objectName.endsWith(\"/\")) {\n setCanShareFile(false);\n } else {\n setCanShareFile(true);\n }\n } else {\n setCanShareFile(false);\n setCanPreviewFile(false);\n }\n }, [selectedObjects]);\n\n useEffect(() => {\n if (!quota) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/quota`)\n .then((res: BucketQuota) => {\n let quotaVals = null;\n\n if (res.quota) {\n quotaVals = res;\n }\n\n setQuota(quotaVals);\n })\n .catch(() => {\n setQuota(null);\n });\n }\n }, [quota, bucketName]);\n\n useEffect(() => {\n if (selectedObjects.length > 0) {\n setDetailsOpen(true);\n return;\n }\n\n if (selectedObjects.length === 0 && selectedInternalPaths === null) {\n setDetailsOpen(false);\n }\n }, [selectedObjects, selectedInternalPaths]);\n\n const displayDeleteObject = hasPermission(bucketName, [\n IAM_SCOPES.S3_DELETE_OBJECT,\n ]);\n\n const displayListObjects = hasPermission(bucketName, [\n IAM_SCOPES.S3_LIST_BUCKET,\n ]);\n\n const updateMessage = () => {\n let timeDelta = Date.now() - loadingStartTime;\n\n if (timeDelta / 1000 >= 6) {\n setLoadingMessage(\n \n \n This operation is taking longer than expected... (\n {Math.ceil(timeDelta / 1000)}s)\n \n \n );\n } else if (timeDelta / 1000 >= 3) {\n setLoadingMessage(\n \n This operation is taking longer than expected...\n \n );\n }\n };\n\n useEffect(() => {\n if (!iniLoad) {\n setBucketDetailsLoad(true);\n setIniLoad(true);\n }\n }, [iniLoad, setBucketDetailsLoad, setIniLoad]);\n\n useInterval(() => {\n // Your custom logic here\n if (loading) {\n updateMessage();\n }\n }, 1000);\n\n useEffect(() => {\n if (loadingVersioning) {\n if (displayListObjects) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/versioning`)\n .then((res: BucketVersioning) => {\n setIsVersioned(res.is_versioned);\n setLoadingVersioning(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingVersioning(false);\n });\n } else {\n setLoadingVersioning(false);\n }\n }\n }, [bucketName, loadingVersioning, setErrorSnackMessage, displayListObjects]);\n\n useEffect(() => {\n if (loadingLocking) {\n if (displayListObjects) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}/object-locking`)\n .then((res: BucketObjectLocking) => {\n setLockingEnabled(res.object_locking_enabled);\n setLoadingLocking(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage(err);\n setLoadingLocking(false);\n });\n } else {\n setLoadingLocking(false);\n }\n }\n }, [bucketName, loadingLocking, setErrorSnackMessage, displayListObjects]);\n\n // Rewind\n useEffect(() => {\n if (rewindEnabled) {\n if (bucketToRewind !== bucketName) {\n resetRewind();\n return;\n }\n\n if (rewindDate) {\n setLoadingRewind(true);\n const rewindParsed = rewindDate.toISOString();\n let pathPrefix = \"\";\n if (internalPaths) {\n const decodedPath = decodeFileName(internalPaths);\n pathPrefix = decodedPath.endsWith(\"/\")\n ? decodedPath\n : decodedPath + \"/\";\n }\n api\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/rewind/${rewindParsed}${\n pathPrefix ? `?prefix=${encodeFileName(pathPrefix)}` : ``\n }`\n )\n .then((res: RewindObjectList) => {\n setLoadingRewind(false);\n if (res.objects) {\n // We omit files from the same path\n const filteredObjects = res.objects.filter((object) => {\n return object.name !== decodeFileName(internalPaths)\n })\n\n setRewind(filteredObjects);\n } else {\n setRewind([]);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingRewind(false);\n setErrorSnackMessage(err);\n });\n }\n }\n }, [\n rewindEnabled,\n rewindDate,\n bucketToRewind,\n bucketName,\n match,\n setErrorSnackMessage,\n resetRewind,\n internalPaths,\n ]);\n\n useEffect(() => {\n setLoading(true);\n setDetailsOpen(false);\n setSearchObjects(\"\");\n }, [internalPaths, setSearchObjects]);\n\n useEffect(() => {\n if (loading) {\n if (displayListObjects) {\n let pathPrefix = \"\";\n if (internalPaths) {\n const decodedPath = decodeFileName(internalPaths);\n pathPrefix = decodedPath.endsWith(\"/\")\n ? decodedPath\n : decodedPath + \"/\";\n }\n\n let currentTimestamp = Date.now();\n setLoadingStartTime(currentTimestamp);\n setLoadingMessage(defLoading);\n\n let urlTake = `/api/v1/buckets/${bucketName}/objects`;\n\n if (showDeleted) {\n const currDate = new Date();\n const currDateISO = currDate.toISOString();\n\n urlTake = `/api/v1/buckets/${bucketName}/rewind/${currDateISO}`;\n }\n\n api\n .invoke(\n \"GET\",\n `${urlTake}${\n pathPrefix ? `?prefix=${encodeFileName(pathPrefix)}` : ``\n }`\n )\n .then((res: BucketObjectsList) => {\n const records: BucketObject[] = res.objects || [];\n const folders: BucketObject[] = [];\n const files: BucketObject[] = [];\n\n records.forEach((record) => {\n // We omit files from the same path\n if (record.name !== decodeFileName(internalPaths)) {\n // this is a folder\n if (record.name.endsWith(\"/\")) {\n folders.push(record);\n } else {\n // this is a file\n files.push(record);\n }\n }\n });\n const recordsInElement = [...folders, ...files];\n setRecords(recordsInElement);\n // In case no objects were retrieved, We check if item is a file\n if (!res.objects && pathPrefix !== \"\") {\n if (rewindEnabled) {\n const rewindParsed = rewindDate.toISOString();\n\n let pathPrefix = \"\";\n if (internalPaths) {\n const decodedPath = decodeFileName(internalPaths);\n pathPrefix = decodedPath.endsWith(\"/\")\n ? decodedPath\n : decodedPath + \"/\";\n }\n api\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/rewind/${rewindParsed}${\n pathPrefix ? `?prefix=${encodeFileName(pathPrefix)}` : ``\n }`\n )\n .then((res: RewindObjectList) => {\n //It is a file since it has elements in the object, setting file flag and waiting for component mount\n if (res.objects === null) {\n //setFileModeEnabled(true);\n setLoadingRewind(false);\n setLoading(false);\n } else {\n // It is a folder, we remove loader\n setLoadingRewind(false);\n setLoading(false);\n //setFileModeEnabled(false);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setLoadingRewind(false);\n setLoading(false);\n setErrorSnackMessage(err);\n });\n } else {\n api\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects${\n internalPaths ? `?prefix=${internalPaths}` : ``\n }`\n )\n .then((res: BucketObjectsList) => {\n //It is a file since it has elements in the object, setting file flag and waiting for component mount\n if (!res.objects) {\n // It is a folder, we remove loader\n //setFileModeEnabled(false);\n setLoading(false);\n } else {\n // This code prevents the program from opening a file when a substring of that file is entered as a new folder.\n // Previously, if there was a file test1.txt and the folder test was created with the same prefix, the program\n // would open test1.txt instead\n let found = false;\n let pathPrefixChopped = pathPrefix.slice(\n 0,\n pathPrefix.length - 1\n );\n for (let i = 0; i < res.objects.length; i++) {\n if (res.objects[i].name === pathPrefixChopped) {\n found = true;\n }\n }\n if (\n (res.objects.length === 1 &&\n res.objects[0].name.endsWith(\"/\")) ||\n !found\n ) {\n //setFileModeEnabled(false);\n } else {\n //setFileModeEnabled(true);\n }\n\n setLoading(false);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setErrorSnackMessage(err);\n });\n }\n } else {\n //setFileModeEnabled(false);\n setLoading(false);\n }\n })\n .catch((err: ErrorResponseHandler) => {\n setLoading(false);\n setErrorSnackMessage(err);\n });\n } else {\n setLoadingRewind(false);\n setLoading(false);\n }\n }\n }, [\n loading,\n match,\n setErrorSnackMessage,\n bucketName,\n rewindEnabled,\n rewindDate,\n internalPaths,\n bucketInfo,\n showDeleted,\n displayListObjects,\n ]);\n\n // bucket info\n useEffect(() => {\n if (loadingBucket) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}`)\n .then((res: BucketInfo) => {\n setBucketDetailsLoad(false);\n setBucketInfo(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setBucketDetailsLoad(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n bucketName,\n loadingBucket,\n setBucketDetailsLoad,\n setBucketInfo,\n setErrorSnackMessage,\n ]);\n\n const closeDeleteMultipleModalAndRefresh = (refresh: boolean) => {\n setDeleteMultipleOpen(false);\n\n if (refresh) {\n setSnackBarMessage(`Objects deleted successfully.`);\n setSelectedObjects([]);\n setLoading(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 (var 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 downloadObject = (object: BucketObject | RewindObject) => {\n const identityDownload = encodeFileName(\n `${bucketName}-${object.name}-${new Date().getTime()}-${Math.random()}`\n );\n\n setNewObject({\n bucketName,\n done: false,\n instanceID: identityDownload,\n percentage: 0,\n prefix: object.name,\n type: \"download\",\n waitingForFile: true,\n });\n\n download(\n bucketName,\n encodeFileName(object.name),\n object.version_id,\n object.size,\n (progress) => {\n updateProgress(identityDownload, progress);\n },\n () => {\n completeObject(identityDownload);\n }\n );\n };\n\n const openPath = (idElement: string) => {\n setSelectedObjects([]);\n if (idElement.endsWith(\"/\")) {\n const newPath = `/buckets/${bucketName}/browse${\n idElement ? `/${encodeFileName(idElement)}` : ``\n }`;\n history.push(newPath);\n return;\n }\n\n setDetailsOpen(true);\n setLoadingVersions(true);\n setSelectedInternalPaths(\n `${idElement ? `${encodeFileName(idElement)}` : ``}`\n );\n };\n\n const uploadObject = useCallback(\n (files: File[], folderPath: string): void => {\n let pathPrefix = \"\";\n if (internalPaths) {\n const decodedPath = decodeFileName(internalPaths);\n pathPrefix = decodedPath.endsWith(\"/\")\n ? decodedPath\n : decodedPath + \"/\";\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 const blobFile = new Blob([file], { type: file.type });\n\n let encodedPath = \"\";\n const relativeFolderPath =\n get(file, \"webkitRelativePath\", \"\") !== \"\"\n ? get(file, \"webkitRelativePath\", \"\")\n : folderPath;\n\n if (path !== \"\" || relativeFolderPath !== \"\") {\n const finalFolderPath = relativeFolderPath\n .split(\"/\")\n .slice(0, -1)\n .join(\"/\");\n\n encodedPath = encodeFileName(\n `${path}${finalFolderPath}${\n !finalFolderPath.endsWith(\"/\") ? \"/\" : \"\"\n }`\n );\n }\n\n if (encodedPath !== \"\") {\n uploadUrl = `${uploadUrl}?prefix=${encodedPath}`;\n }\n\n const identity = encodeFileName(\n `${bucketName}-${encodedPath}-${new Date().getTime()}-${Math.random()}`\n );\n\n setNewObject({\n bucketName,\n done: false,\n instanceID: identity,\n percentage: 0,\n prefix: `${decodeFileName(encodedPath)}${fileName}`,\n type: \"upload\",\n waitingForFile: false,\n });\n\n let xhr = new XMLHttpRequest();\n xhr.open(\"POST\", uploadUrl, true);\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 (event) {\n // resolve promise only when HTTP code is ok\n if (xhr.status >= 200 && xhr.status < 300) {\n completeObject(identity);\n resolve({ status: xhr.status });\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 reject({ status: xhr.status, message: errorMessage });\n }\n };\n\n xhr.upload.addEventListener(\"error\", (event) => {\n reject(errorMessage);\n return;\n });\n\n xhr.upload.addEventListener(\"progress\", (event) => {\n const progress = Math.floor((event.loaded * 100) / event.total);\n\n updateProgress(identity, progress);\n });\n\n xhr.onerror = () => {\n reject(errorMessage);\n return;\n };\n xhr.onloadend = () => {\n if (files.length === 0) {\n setLoading(true);\n }\n };\n\n const formData = new FormData();\n if (file.size !== undefined) {\n formData.append(file.size.toString(), blobFile, fileName);\n xhr.send(formData);\n }\n });\n };\n\n const uploadFilePromises: any = [];\n // open object manager\n 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 console.log(\"upload results\", results);\n setErrorSnackMessage(err);\n }\n });\n };\n\n upload(files, bucketName, pathPrefix, folderPath);\n },\n [\n bucketName,\n completeObject,\n internalPaths,\n openList,\n setNewObject,\n setErrorSnackMessage,\n updateProgress,\n ]\n );\n\n const onDrop = useCallback(\n (acceptedFiles) => {\n if (acceptedFiles && acceptedFiles.length > 0) {\n let newFolderPath: string = acceptedFiles[0].path;\n uploadObject(acceptedFiles, newFolderPath);\n }\n },\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 openPreview = () => {\n if (selectedObjects.length === 1) {\n let fileObject: BucketObject | undefined;\n\n const findFunction = (currValue: BucketObject | RewindObject) =>\n selectedObjects.includes(currValue.name);\n\n fileObject = filteredRecords.find(findFunction);\n\n if (fileObject) {\n setSelectedPreview(fileObject);\n setPreviewOpen(true);\n }\n }\n };\n\n const openShare = () => {\n if (selectedObjects.length === 1) {\n let fileObject: BucketObject | undefined;\n\n const findFunction = (currValue: BucketObject | RewindObject) =>\n selectedObjects.includes(currValue.name);\n\n fileObject = filteredRecords.find(findFunction);\n\n if (fileObject) {\n setSelectedPreview(fileObject);\n setShareFileModalOpen(true);\n }\n }\n };\n\n const closeShareModal = () => {\n setShareFileModalOpen(false);\n setSelectedPreview(null);\n };\n\n const filteredRecords = records.filter((b: BucketObject) => {\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 rewindCloseModal = (refresh: boolean) => {\n setRewindSelect(false);\n };\n\n const closePreviewWindow = () => {\n setPreviewOpen(false);\n setSelectedPreview(null);\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 setSelectedObjects(elements);\n setSelectedInternalPaths(null);\n\n return elements;\n };\n\n const sortChange = (sortData: any) => {\n const newSortDirection = get(sortData, \"sortDirection\", \"DESC\");\n setCurrentSortField(sortData.sortBy);\n setSortDirection(newSortDirection);\n setLoading(true);\n };\n\n const pageTitle = decodeFileName(internalPaths);\n const currentPath = pageTitle.split(\"/\").filter((i: string) => i !== \"\");\n\n const plSelect = rewindEnabled ? rewind : filteredRecords;\n const sortASC = plSelect.sort(sortListObjects(currentSortField));\n\n let payload: BucketObject[] | RewindObject[] = [];\n\n if (sortDirection === \"ASC\") {\n payload = sortASC;\n } else {\n payload = sortASC.reverse();\n }\n\n const selectAllItems = () => {\n setSelectedInternalPaths(null);\n\n if (selectedObjects.length === payload.length) {\n setSelectedObjects([]);\n return;\n }\n\n const elements = payload.map((item) => item.name);\n setSelectedObjects(elements);\n };\n\n const downloadSelected = () => {\n if (selectedObjects.length !== 0) {\n let itemsToDownload: BucketObject[] | RewindObject[] = [];\n\n const filterFunction = (currValue: BucketObject | RewindObject) =>\n selectedObjects.includes(currValue.name);\n\n if (rewindEnabled) {\n itemsToDownload = rewind.filter(filterFunction);\n } else {\n itemsToDownload = filteredRecords.filter(filterFunction);\n }\n\n itemsToDownload.forEach((filteredItem) => {\n downloadObject(filteredItem);\n });\n }\n };\n let uploadPath = [bucketName];\n if (currentPath.length > 0) {\n uploadPath = uploadPath.concat(currentPath);\n }\n\n const onClosePanel = (forceRefresh: boolean) => {\n setDetailsOpen(false);\n setSelectedInternalPaths(null);\n setSelectedObjects([]);\n setVersionsModeEnabled(false);\n\n if (forceRefresh) {\n setLoading(true);\n }\n };\n\n const setDeletedAction = () => {\n setShowDeletedObjects(!showDeleted);\n onClosePanel(true);\n };\n\n const tableActions: ItemActions[] = [\n {\n type: \"view\",\n label: \"View\",\n onClick: openPath,\n sendOnlyId: true,\n },\n ];\n\n const multiActionButtons = [\n {\n action: downloadSelected,\n label: \"Download\",\n disabled: selectedObjects.length === 0,\n icon: ,\n tooltip: \"Download Selected\",\n },\n {\n action: openShare,\n label: \"Share\",\n disabled: selectedObjects.length !== 1 || !canShareFile,\n icon: ,\n tooltip: \"Share Selected File\",\n },\n {\n action: openPreview,\n label: \"Preview\",\n disabled: selectedObjects.length !== 1 || !canPreviewFile,\n icon: ,\n tooltip: \"Preview Selected File\",\n },\n {\n action: () => {\n setDeleteMultipleOpen(true);\n },\n label: \"Delete\",\n icon: ,\n disabled:\n !hasPermission(bucketName, [IAM_SCOPES.S3_DELETE_OBJECT]) ||\n selectedObjects.length === 0 ||\n !displayDeleteObject,\n tooltip: \"Delete Selected Files\",\n },\n ];\n\n return (\n \n {shareFileModalOpen && selectedPreview && (\n \n )}\n {deleteMultipleOpen && (\n \n )}\n {rewindSelect && (\n \n )}\n {previewOpen && (\n \n )}\n \n \n \n \n \n }\n title={{bucketName}}\n subTitle={\n \n \n \n Created:   \n {bucketInfo?.creation_date || \"\"}\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 / {niceBytesInt(quota.quota)}\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 \n }\n actions={\n \n \n \n \n }\n color=\"primary\"\n variant={\"outlined\"}\n onClick={() => {\n setRewindSelect(true);\n }}\n disabled={\n !isVersioned ||\n !hasPermission(bucketName, [IAM_SCOPES.S3_PUT_OBJECT])\n }\n />\n }\n color=\"primary\"\n variant={\"outlined\"}\n onClick={() => {\n if (versionsMode) {\n setLoadingVersions(true);\n } else {\n setLoading(true);\n }\n }}\n disabled={\n !hasPermission(bucketName, [IAM_SCOPES.S3_LIST_BUCKET]) ||\n rewindEnabled\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 />\n \n \n \n \n {versionsMode ? (\n \n {selectedInternalPaths !== null && (\n \n )}\n \n ) : (\n \n \n \n \n \n \n )\n }\n hidePathButton={false}\n />\n \n {\n if (payload[index]?.delete_flag) {\n return \"deleted\";\n }\n\n return \"\";\n }}\n />\n \n \n )}\n \n {\n onClosePanel(false);\n }}\n >\n {selectedObjects.length > 0 && (\n \n )}\n {selectedInternalPaths !== null && (\n \n )}\n \n \n \n \n \n \n );\n};\n\nconst mapStateToProps = ({ objectBrowser, buckets }: AppState) => ({\n routesList: get(objectBrowser, \"routesList\", []),\n downloadingFiles: get(objectBrowser, \"downloadingFiles\", []),\n rewindEnabled: get(objectBrowser, \"rewind.rewindEnabled\", false),\n rewindDate: get(objectBrowser, \"rewind.dateToRewind\", null),\n bucketToRewind: get(objectBrowser, \"rewind.bucketToRewind\", \"\"),\n versionsMode: get(objectBrowser, \"versionsMode\", false),\n loadingBucket: buckets.bucketDetails.loadingBucket,\n bucketInfo: buckets.bucketDetails.bucketInfo,\n searchObjects: objectBrowser.searchObjects,\n showDeleted: objectBrowser.showDeleted,\n});\n\nconst mapDispatchToProps = {\n setSnackBarMessage,\n setErrorSnackMessage,\n resetRewind,\n setBucketDetailsLoad,\n setBucketInfo,\n setNewObject,\n updateProgress,\n completeObject,\n openList,\n setSearchObjects,\n setVersionsModeEnabled,\n setShowDeletedObjects,\n setLoadingVersions,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withRouter(connector(withStyles(styles)(ListObjects)));\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 { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, IconButton, Tooltip } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport { AppState } from \"../../../../store\";\nimport { containerForHeader } from \"../../Common/FormComponents/common/styleLibrary\";\nimport {\n setSearchObjects,\n setVersionsModeEnabled,\n setSearchVersions,\n} from \"../../ObjectBrowser/actions\";\nimport ListObjects from \"../ListBuckets/Objects/ListObjects/ListObjects\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport SettingsIcon from \"../../../../icons/SettingsIcon\";\nimport { BucketInfo } from \"../types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { SecureComponent } from \"../../../../common/SecureComponent\";\nimport {\n IAM_PERMISSIONS,\n IAM_ROLES,\n IAM_SCOPES,\n IAM_PAGES,\n} from \"../../../../common/SecureComponent/permissions\";\nimport SearchBox from \"../../Common/SearchBox\";\nimport BackLink from \"../../../../common/BackLink\";\n\ninterface IBrowserHandlerProps {\n versionsMode: boolean;\n match: any;\n history: any;\n classes: any;\n setVersionsModeEnabled: typeof setVersionsModeEnabled;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n bucketInfo: BucketInfo | null;\n searchObjects: string;\n versionedFile: string;\n searchVersions: string;\n setSearchObjects: typeof setSearchObjects;\n setSearchVersions: typeof setSearchVersions;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n backToBuckets: {\n color: \"#000\",\n fontSize: 14,\n padding: 0,\n marginTop: -8,\n },\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst BrowserHandler = ({\n versionsMode,\n match,\n history,\n classes,\n setVersionsModeEnabled,\n searchObjects,\n setSearchObjects,\n setSearchVersions,\n versionedFile,\n searchVersions,\n}: IBrowserHandlerProps) => {\n const bucketName = match.params[\"bucketName\"];\n const internalPaths = get(match.params, \"subpaths\", \"\");\n\n useEffect(() => {\n setVersionsModeEnabled(false);\n }, [internalPaths, setVersionsModeEnabled]);\n\n const openBucketConfiguration = () => {\n history.push(`/buckets/${bucketName}/admin`);\n };\n\n return (\n \n }\n actions={\n \n \n \n \n \n \n \n }\n middleComponent={\n \n {!versionsMode ? (\n \n {\n setSearchObjects(value);\n }}\n value={searchObjects}\n />\n \n ) : (\n \n {\n setSearchVersions(value);\n }}\n value={searchVersions}\n />\n \n )}\n \n }\n />\n \n \n \n \n );\n};\n\nconst mapStateToProps = ({ objectBrowser, buckets }: AppState) => ({\n versionsMode: get(objectBrowser, \"versionsMode\", false),\n bucketToRewind: get(objectBrowser, \"rewind.bucketToRewind\", \"\"),\n bucketInfo: buckets.bucketDetails.bucketInfo,\n searchObjects: objectBrowser.searchObjects,\n versionedFile: objectBrowser.versionedFile,\n searchVersions: objectBrowser.searchVersions,\n});\n\nconst mapDispatchToProps = {\n setVersionsModeEnabled,\n setErrorSnackMessage,\n setSearchObjects,\n setSearchVersions,\n};\n\nconst connector = connect(mapStateToProps, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(BrowserHandler));\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 BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\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 Grid from \"@mui/material/Grid\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport moment from \"moment/moment\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { fieldBasic, tooltipHelper } from \"../common/styleLibrary\";\nimport InputBoxWrapper from \"../InputBoxWrapper/InputBoxWrapper\";\n\ninterface IDaysSelector {\n classes: any;\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 styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n labelContainer: {\n display: \"flex\",\n alignItems: \"center\",\n marginBottom: 15,\n },\n fieldContainer: {\n ...fieldBasic.fieldContainer,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n paddingBottom: 10,\n marginTop: 11,\n marginBottom: 6,\n },\n dateContainer: {\n height: 20,\n textAlign: \"right\",\n color: \"#848484\",\n },\n dateInputContainer: {\n margin: \"0 10px\",\n },\n durationInputs: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n\n validityIndicator: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n invalidDurationText: {\n marginTop: 15,\n display: \"flex\",\n color: \"red\",\n fontSize: 11,\n },\n validityText: {\n fontSize: 14,\n fontWeight: 600,\n marginTop: 15,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n });\n\nconst calculateNewTime = (\n initialDate: Date,\n days: number,\n hours: number,\n minutes: number\n) => {\n return moment(initialDate)\n .add(days, \"days\")\n .add(hours, \"hours\")\n .add(minutes, \"minutes\");\n};\n\nconst DaysSelector = ({\n classes,\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(moment());\n\n useEffect(() => {\n setDateSelected(\n calculateNewTime(\n initialDate,\n selectedDays,\n selectedHours,\n selectedMinutes\n )\n );\n }, [initialDate, selectedDays, selectedHours, selectedMinutes]);\n\n useEffect(() => {\n if (validDate) {\n onChange(dateSelected.format(\"YYYY-MM-DDTHH:mm:ss\"), 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 setValidDate(valid);\n }, [\n dateSelected,\n maxDays,\n onChange,\n selectedDays,\n selectedHours,\n selectedMinutes,\n ]);\n\n const extraInputProps = {\n style: {\n textAlign: \"center\" as const,\n paddingRight: 10,\n paddingLeft: 10,\n width: 25,\n },\n className: \"removeArrows\" as const,\n };\n\n return (\n \n \n \n \n \n {label}\n \n \n \n \n {\n setSelectedDays(parseInt(e.target.value));\n }}\n value={selectedDays.toString()}\n extraInputProps={extraInputProps}\n noLabelMinWidth\n />\n \n \n {\n setSelectedHours(parseInt(e.target.value));\n }}\n value={selectedHours.toString()}\n extraInputProps={extraInputProps}\n noLabelMinWidth\n />\n \n \n {\n setSelectedMinutes(parseInt(e.target.value));\n }}\n value={selectedMinutes.toString()}\n extraInputProps={extraInputProps}\n noLabelMinWidth\n />\n \n \n \n \n {validDate ? (\n
    \n
    \n {entity} will be available until:\n
    {\" \"}\n
    \n {dateSelected.format(\"MM/DD/YYYY HH:mm:ss\")}\n
    \n
    \n ) : (\n
    \n Please select a valid duration.\n
    \n )}\n
    \n \n
    \n );\n};\n\nexport default withStyles(styles)(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 get from \"lodash/get\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport Grid from \"@mui/material/Grid\";\nimport Button from \"@mui/material/Button\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n} from \"../../../../Common/FormComponents/common/styleLibrary\";\n\nimport { IFileInfo } from \"./types\";\nimport {\n setModalErrorSnackMessage,\n setModalSnackMessage,\n} from \"../../../../../../actions\";\nimport { AppState } from \"../../../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport api from \"../../../../../../common/api\";\nimport ModalWrapper from \"../../../../Common/ModalWrapper/ModalWrapper\";\nimport PredefinedList from \"../../../../Common/FormComponents/PredefinedList/PredefinedList\";\nimport DaysSelector from \"../../../../Common/FormComponents/DaysSelector/DaysSelector\";\nimport { encodeFileName } from \"../../../../../../common/utils\";\n\nconst CopyIcon = React.lazy(() => import(\"../../../../../../icons/CopyIcon\"));\n\nconst styles = (theme: Theme) =>\n createStyles({\n shareLinkInfo: {\n fontSize: 13,\n fontWeight: 400,\n },\n copyShareLink: {\n display: \"flex\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n alignItems: \"center\",\n justifyContent: \"center\",\n },\n },\n copyShareLinkInput: {\n \"& div:first-child\": {\n marginTop: 0,\n },\n \"@media (max-width: 900px)\": {\n minWidth: 250,\n },\n },\n copyShareLinkBtn: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n \"@media (max-width: 900px)\": {\n marginTop: 10,\n },\n },\n ...modalStyleUtils,\n ...formFieldStyles,\n });\n\ninterface IShareFileProps {\n classes: any;\n open: boolean;\n bucketName: string;\n dataObject: IFileInfo;\n distributedSetup: boolean;\n closeModalAndRefresh: () => void;\n setModalSnackMessage: typeof setModalSnackMessage;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst ShareFile = ({\n classes,\n open,\n closeModalAndRefresh,\n bucketName,\n dataObject,\n distributedSetup,\n setModalSnackMessage,\n setModalErrorSnackMessage,\n}: IShareFileProps) => {\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\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects?prefix=${encodeFileName(\n dataObject.name\n )}${distributedSetup ? \"&with_versions=true\" : \"\"}`\n )\n .then((res: IFileInfo[]) => {\n const result = get(res, \"objects\", []);\n\n const latestVersion = result.find(\n (elem: IFileInfo) => elem.is_latest\n );\n\n if (latestVersion) {\n setVersionID(latestVersion.version_id);\n return;\n }\n\n // Version couldn't ve retrieved, we default\n setVersionID(\"null\");\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(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, setModalErrorSnackMessage]);\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\n .invoke(\n \"GET\",\n `/api/v1/buckets/${bucketName}/objects/share?prefix=${encodeFileName(\n dataObject.name\n )}&version_id=${versionID}${\n selectedDate !== \"\" ? `&expires=${diffDate}s` : \"\"\n }`\n )\n .then((res: string) => {\n setShareURL(res);\n setIsLoadingFile(false);\n })\n .catch((error: ErrorResponseHandler) => {\n setModalErrorSnackMessage(error);\n setShareURL(\"\");\n setIsLoadingFile(false);\n });\n }\n }\n }, [\n dataObject,\n selectedDate,\n bucketName,\n dateValid,\n setShareURL,\n setModalErrorSnackMessage,\n distributedSetup,\n isLoadingVersion,\n versionID,\n ]);\n\n return (\n \n {\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 The temporary URL expires after the configured time limit.\n
    \n \n \n \n \n \n \n \n\n \n \n }\n onClick={() => {\n setModalSnackMessage(\"Share URL Copied to clipboard\");\n }}\n disabled={shareURL === \"\" || isLoadingFile}\n >\n Copy\n \n \n \n \n
    \n )}\n \n
    \n );\n};\n\nconst mapStateToProps = ({ system }: AppState) => ({\n distributedSetup: get(system, \"distributedSetup\", false),\n});\n\nconst connector = connect(mapStateToProps, {\n setModalSnackMessage,\n setModalErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(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, useState } from \"react\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Grid, LinearProgress } from \"@mui/material\";\nimport { BucketObject } from \"../ListObjects/types\";\nimport { extensionPreview } from \"../utils\";\nimport { encodeFileName } from \"../../../../../../common/utils\";\nimport clsx from \"clsx\";\n\nconst styles = () =>\n createStyles({\n iframeContainer: {\n border: \"0px\",\n flex: \"1 1 auto\",\n width: \"100%\",\n height: 250,\n backgroundColor: \"transparent\",\n borderRadius: 5,\n\n \"&.image\": {\n height: 500,\n },\n \"&.text\": {\n height: 700,\n },\n \"&.audio\": {\n height: 150,\n },\n \"&.video\": {\n height: 350,\n },\n \"&.fullHeight\": {\n height: \"calc(100vh - 185px)\",\n },\n },\n iframeBase: {\n backgroundColor: \"#fff\",\n },\n iframeHidden: {\n display: \"none\",\n },\n });\n\ninterface IPreviewFileProps {\n bucketName: string;\n object: BucketObject | null;\n isFullscreen?: boolean;\n classes: any;\n}\n\nconst PreviewFile = ({\n bucketName,\n object,\n isFullscreen = false,\n classes,\n}: IPreviewFileProps) => {\n const [loading, setLoading] = useState(true);\n\n let path = \"\";\n\n if (object) {\n const encodedPath = encodeFileName(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 const objectType = extensionPreview(object?.name || \"\");\n\n const iframeLoaded = () => {\n setLoading(false);\n };\n\n return (\n \n {loading && (\n \n \n \n )}\n {objectType === \"video\" && (\n \n \n \n )}\n {objectType === \"audio\" && (\n \n \n \n )}\n {objectType === \"image\" && (\n \n )}\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 );\n};\nexport default withStyles(styles)(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 { BucketObject } from \"../ListObjects/types\";\nimport { ObjectPreviewIcon } from \"../../../../../../icons\";\n\ninterface IPreviewFileProps {\n open: boolean;\n bucketName: string;\n object: BucketObject | 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 { BucketObject, RewindObject } from \"./ListObjects/types\";\n\nexport const download = (\n bucketName: string,\n objectPath: string,\n versionID: any,\n fileSize: number,\n progressCallback: (progress: number) => void,\n completeCallback: () => void\n) => {\n const anchor = document.createElement(\"a\");\n document.body.appendChild(anchor);\n let path = `/api/v1/buckets/${bucketName}/objects/download?prefix=${objectPath}`;\n if (versionID) {\n path = path.concat(`&version_id=${versionID}`);\n }\n\n var req = new XMLHttpRequest();\n req.open(\"GET\", path, true);\n req.addEventListener(\n \"progress\",\n function (evt) {\n var percentComplete = Math.round((evt.loaded / fileSize) * 100);\n\n if (progressCallback) {\n progressCallback(percentComplete);\n }\n },\n false\n );\n\n req.responseType = \"blob\";\n req.onreadystatechange = () => {\n if (req.readyState === 4 && req.status === 200) {\n const rspHeader = req.getResponseHeader(\"Content-Disposition\");\n\n let filename = \"download\";\n if (rspHeader) {\n let rspHeaderDecoded = decodeURIComponent(rspHeader);\n filename = rspHeaderDecoded.split('\"')[1];\n }\n\n if (completeCallback) {\n completeCallback();\n }\n\n var link = document.createElement(\"a\");\n link.href = window.URL.createObjectURL(req.response);\n link.download = filename;\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n };\n req.send();\n};\n\n// Review file extension by name & returns the type of preview browser that can be used\nexport const extensionPreview = (\n fileName: string\n): \"image\" | \"text\" | \"audio\" | \"video\" | \"none\" => {\n const imageExtensions = [\n \"jif\",\n \"jfif\",\n \"apng\",\n \"avif\",\n \"svg\",\n \"webp\",\n \"bmp\",\n \"ico\",\n \"jpg\",\n \"jpe\",\n \"jpeg\",\n \"gif\",\n \"png\",\n \"heic\",\n ];\n const textExtensions = [\"pdf\", \"txt\", \"json\"];\n const audioExtensions = [\"wav\", \"mp3\", \"alac\", \"aiff\", \"dsd\", \"pcm\"];\n const videoExtensions = [\n \"mp4\",\n \"avi\",\n \"mpg\",\n \"webm\",\n \"mov\",\n \"flv\",\n \"mkv\",\n \"wmv\",\n \"avchd\",\n \"mpeg-4\",\n ];\n\n let fileExtension = fileName.split(\".\").pop();\n\n if (!fileExtension) {\n return \"none\";\n }\n\n fileExtension = fileExtension.toLowerCase();\n\n if (imageExtensions.includes(fileExtension)) {\n return \"image\";\n }\n\n if (textExtensions.includes(fileExtension)) {\n return \"text\";\n }\n\n if (audioExtensions.includes(fileExtension)) {\n return \"audio\";\n }\n\n if (videoExtensions.includes(fileExtension)) {\n return \"video\";\n }\n\n return \"none\";\n};\n\nexport const sortListObjects = (fieldSort: string) => {\n switch (fieldSort) {\n case \"name\":\n return (a: BucketObject | RewindObject, b: BucketObject | RewindObject) =>\n a.name.localeCompare(b.name);\n case \"last_modified\":\n return (a: BucketObject | RewindObject, b: BucketObject | RewindObject) =>\n new Date(a.last_modified).getTime() -\n new Date(b.last_modified).getTime();\n case \"size\":\n return (a: BucketObject | RewindObject, b: BucketObject | RewindObject) =>\n (a.size || -1) - (b.size || -1);\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 from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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","import React, { Fragment } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { predefinedList } from \"../common/styleLibrary\";\n\ninterface IPredefinedList {\n classes: any;\n label?: string;\n content: any;\n multiLine?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...predefinedList,\n });\n\nconst PredefinedList = ({\n classes,\n label = \"\",\n content,\n multiLine = false,\n}: IPredefinedList) => {\n return (\n \n \n {label !== \"\" && (\n \n {label}\n \n )}\n \n \n {content}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(PredefinedList);\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 clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Radio, { RadioProps } from \"@mui/material/Radio\";\nimport { InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { fieldBasic, radioIcons, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\n\nexport interface SelectorTypes {\n label: string;\n value: string;\n}\n\ninterface RadioGroupProps {\n selectorOptions: SelectorTypes[];\n currentSelection: string;\n label: string;\n id: string;\n name: string;\n tooltip?: string;\n disableOptions?: boolean;\n onChange: (e: React.ChangeEvent) => void;\n classes: any;\n displayInColumn?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n optionLabel: {\n \"&.Mui-disabled\": {\n \"& .MuiFormControlLabel-label\": {\n color: \"#9c9c9c\",\n },\n },\n \"&:last-child\": {\n marginRight: 0,\n },\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n },\n },\n checkedOption: {\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n fontWeight: 700,\n },\n },\n });\n\nconst radioStyles = makeStyles({\n root: {\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n ...radioIcons,\n});\n\nconst RadioButton = (props: RadioProps) => {\n const classes = radioStyles();\n\n return (\n }\n icon={}\n {...props}\n />\n );\n};\n\nexport const RadioGroupSelector = ({\n selectorOptions = [],\n currentSelection,\n label,\n id,\n name,\n onChange,\n tooltip = \"\",\n disableOptions = false,\n classes,\n displayInColumn = false,\n}: RadioGroupProps) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n

    \n \n
    \n \n
    \n
    \n
    \n )}\n \n \n \n \n {selectorOptions.map((selectorOption) => {\n return (\n }\n label={selectorOption.label}\n disabled={disableOptions}\n className={clsx(classes.optionLabel, {\n [classes.checkedOption]:\n selectorOption.value === currentSelection,\n })}\n />\n );\n })}\n \n \n \n );\n};\n\nexport default withStyles(styles)(RadioGroupSelector);\n","import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IScreenTitle {\n classes: any;\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n screenTitle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n },\n });\n\nconst ScreenTitle = ({\n classes,\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n return (\n \n \n
    \n {icon ?
    {icon}
    : null}\n
    \n

    {title}

    \n {subTitle}\n
    \n
    \n\n
    {actions}
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ScreenTitle);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// 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, ReactElement } from \"react\";\nimport { FixedSizeList as List } from \"react-window\";\nimport InfiniteLoader from \"react-window-infinite-loader\";\nimport { AutoSizer } from \"react-virtualized\";\n\ninterface IVirtualizedList {\n rowRenderFunction: (index: number) => ReactElement | null;\n totalItems: number;\n defaultHeight?: number;\n}\n\nlet itemStatusMap: any = {};\nconst LOADING = 1;\nconst LOADED = 2;\n\nconst VirtualizedList = ({\n rowRenderFunction,\n totalItems,\n defaultHeight,\n}: IVirtualizedList) => {\n const isItemLoaded = (index: any) => !!itemStatusMap[index];\n\n const loadMoreItems = (startIndex: number, stopIndex: number) => {\n for (let index = startIndex; index <= stopIndex; index++) {\n itemStatusMap[index] = LOADING;\n }\n\n for (let index = startIndex; index <= stopIndex; index++) {\n itemStatusMap[index] = LOADED;\n }\n };\n\n const RenderItemLine = ({ index, style }: any) => {\n return
    {rowRenderFunction(index)}
    ;\n };\n\n return (\n \n \n {({ onItemsRendered, ref }) => (\n \n {({ width, height }) => {\n return (\n \n {RenderItemLine}\n \n );\n }}\n \n )}\n \n \n );\n};\n\nexport default VirtualizedList;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport { Box, Button } from \"@mui/material\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport { CopyIcon } from \"../../../icons\";\nimport { useState } from \"react\";\nconst KeyRevealer = ({ value }: { value: string }) => {\n const [shown, setShown] = useState(false);\n\n return (\n \n {}}\n value={value}\n overlayIcon={}\n extraInputProps={{\n readOnly: true,\n }}\n overlayAction={() => navigator.clipboard.writeText(value)}\n />\n\n setShown(!shown)}\n >\n Show/Hide\n \n \n );\n};\n\nexport default KeyRevealer;\n"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","CreateFolderModal","withSuspense","React","mapDispatchToProps","setVersionsModeEnabled","connector","connect","objectBrowser","rewindEnabled","get","versionsMode","versionedFile","objectBrowserCommon","bucketName","internalPaths","existingFiles","hidePathButton","additionalOptions","useState","createFolderOpen","setCreateFolderOpen","paths","splitPaths","split","filter","path","breadcrumbsMap","map","objectItem","index","subSplit","slice","join","route","encodeFileName","Fragment","toString","versionsItem","listBreadcrumbs","breadcrumbsMain","modalOpen","folderName","onClose","Grid","item","xs","breadcrumbs","IconButton","history","border","backgroundColor","borderLeft","breadcrumbsList","dir","Tooltip","title","Button","id","disabled","hasPermission","IAM_SCOPES","endIcon","disableTouchRipple","disableRipple","focusRipple","whiteSpace","minWidth","variant","listUploadIcons","fill","uploadPath","forceDisable","uploadFileFunction","uploadFolderFunction","anchorEl","setAnchorEl","openUploadMenu","Boolean","handleCloseUpload","uploadObjectAllowed","uploadFolderAllowed","uploadEnabled","RBIconButton","tooltip","undefined","event","currentTarget","text","Menu","open","anchorOrigin","vertical","horizontal","transformOrigin","MenuItem","ListItemIcon","ListItemText","detailsList","borderColor","borderWidth","borderStyle","borderBottomLeftRadius","borderBottomRightRadius","transitionDuration","overflowX","overflowY","position","opacity","marginLeft","borderLeftWidth","closePanel","right","top","children","months","value","days","Array","from","_","num","currentYear","Date","getFullYear","years","numYear","SelectStyled","root","input","borderBottom","InputBase","DateSelector","forwardRef","ref","disableOptions","addSwitch","onDateChange","useImperativeHandle","resetDate","dateEnabled","setDateEnabled","month","setMonth","day","setDay","year","setYear","useEffect","valueSplit","parseInt","currentDate","parse","isNaN","parsedMonth","parsedDay","monthForString","dayForString","parsedDate","toISOString","dateString","validDate","isValid","isDateDisabled","clsx","fieldContainer","fieldContainerBorder","labelContainer","container","InputLabel","htmlFor","inputLabel","tooltipContainer","placement","HelpIcon","FormSwitchWrapper","indicatorLabels","checked","name","onChange","e","target","switchOnly","FormControl","dateInput","Select","displayEmpty","option","dayNumber","fieldBasic","tooltipHelper","flex","justifyContent","marginTop","marginBottom","setModalErrorSnackMessage","formFieldStyles","modalStyleUtils","spacingUtils","dateSelector","closeModalAndRefresh","objectName","objectInfo","statusEnabled","setStatusEnabled","type","setType","date","setDate","isDateValid","setIsDateValid","isSaving","setIsSaving","alreadyConfigured","setAlreadyConfigured","retention_mode","toLowerCase","retention_until_date","valueDate","getMonth","getDate","dateElement","useRef","resetForm","current","showSwitcher","ModalWrapper","spacerBottom","noValidate","autoComplete","onSubmit","preventDefault","formFieldRow","RadioGroupSelector","currentSelection","selectorOptions","modalButtonBar","selectedObject","versionId","version_id","expireDate","api","expires","mode","then","res","catch","error","addRetention","disableRetention","setErrorSnackMessage","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","versioning","selectedVersion","useApi","err","deleteLoading","invokeDeleteApi","deleteVersions","setDeleteVersions","ConfirmDialog","confirmText","isOpen","titleIcon","isLoading","onConfirm","recursive","decodeFileName","endsWith","confirmationContent","DialogContentText","description","actualInfo","legalHoldEnabled","setLegalHoldEnabled","status","propertiesIcon","capitalizeFirst","textTransform","titleCol","titleItem","detailsPanel","linear","metaData","setMetaData","metadata","invokeMetaDataApi","metaKeys","Object","keys","loadMetaData","useCallback","element","renderItem","isArray","decodeURIComponent","Box","metadataLinear","style","Table","table","TableBody","TableRow","TableCell","component","scope","align","padding","margin","restProps","startIcon","items","titleLabel","objectActions","actionItem","action","fileName","fileNameText","overflow","textOverflow","props","strings","length","FileBookIcon","FileCodeIcon","FileConfigIcon","FileDbIcon","FileFontIcon","FileImageIcon","FileLockIcon","FileMissingIcon","FileMusicIcon","FilePdfIcon","FilePptIcon","FileTxtIcon","FileVideoIcon","FileXlsIcon","FileZipIcon","extensionToIcon","extensions","displayFileIconName","returnOnlyIcon","elementString","ObjectBrowserIcon","ObjectBrowserFolderIcon","substr","lowercaseElement","etc","ext","indexOf","splitItem","system","distributedSetup","pathLabel","newTileHeader","onCloseAndUpdate","newKey","setNewKey","newLabel","setNewLabel","isSending","setIsSending","deleteEnabled","setDeleteEnabled","deleteKey","setDeleteKey","deleteLabel","setDeleteLabel","currentTags","tags","currTagKeys","currentItem","pop","wrapText","cleanObject","verID","SecureComponent","scopes","resource","flexFlow","tagKey","tag","matchAll","errorProps","deleteIcon","onDelete","Chip","size","Close","onDeleteTag","InputBoxWrapper","placeholder","trim","newTag","newTagList","closeInspectModalAndRefresh","inspectOpen","inspectPath","volumeName","isEncrypt","setIsEncrypt","decryptionKey","setDecryptionKey","insFileName","setInsFileName","makeRequest","url","fetch","method","performInspect","file","encodeURIComponent","volume","urlOfInspectApi","ok","json","resErr","errorMessage","message","detailedError","code","blob","filename","headers","decryptKey","getCookieValue","performDownload","deleteCookie","KeyRevealer","emptyFile","is_latest","last_modified","legal_hold_status","setSnackBarMessage","setNewObject","updateProgress","completeObject","setLoadingObjectInfo","setLoadingVersions","setSelectedVersion","rewindDate","bucketToRewind","loadingObjectInfo","ObjectDetailsTitle","objectNameContainer","headerForSection","buttonsStyles","actionsTray","textStyleUtils","locking","onClosePanel","shareFileModalOpen","setShareFileModalOpen","retentionModalOpen","setRetentionModalOpen","tagModalOpen","setTagModalOpen","legalholdOpen","setLegalholdOpen","inspectModalOpen","setInspectModalOpen","setActualInfo","allInfoElements","setAllInfoElements","objectToShare","setObjectToShare","versions","setVersions","setDeleteOpen","previewOpen","setPreviewOpen","totalVersionsSize","setTotalVersionsSize","objectNameArray","infoElement","find","el","result","tVersionSize","reduce","acc","currValue","tagKeys","objectResources","multiActionButtons","object","identityDownload","getTime","Math","random","done","instanceID","percentage","prefix","waitingForFile","download","progress","downloadObject","is_delete_marker","extensionPreview","ShareFile","dataObject","updateInfo","closeAndReload","reload","PreviewFileModal","content_type","onClosePreview","TagsModal","reloadObjectData","LinearProgress","textAlign","detailContainer","niceBytes","niceBytesInt","lastModified","currentTime","modifiedTime","difTime","formatTime","niceDaysInt","calculateLastModifyTime","etag","displayParsedDate","displayNiceBytes","String","listModeColumns","elementKey","renderFunction","enableSort","renderFullObject","contentTextAlign","rewindModeColumns","state","modalBasic","versionID","objectPath","restoreOpen","restoreLoading","setRestoreLoading","RecoverIcon","confirmButtonProps","bgColor","mainFileVersionItem","cursor","intermediateLayer","borderBottomColor","versionContainer","minHeight","buttonContainer","versionData","ctrItem","content","left","versionInfo","isSelected","onShare","onDownload","onRestore","onPreview","globalClick","disableButtons","versionItemButtons","pill","button","spacing","buttonDisabled","stopPropagation","setDeleteLoading","typeConfirm","setTypeConfirm","searchVersions","loadingVersions","versionsContainer","noBottomBorder","versionsVirtualPanel","flexGrow","screenTitleContainer","bottom","sortByLabel","hrClass","tableStyles","objectBrowserExtras","containerForHeader","restoreVersionOpen","setRestoreVersionOpen","restoreVersion","setRestoreVersion","sortValue","setSortValue","deleteNonCurrentOpen","setDeleteNonCurrentOpen","onShareItem","onPreviewItem","onRestoreItem","onDownloadItem","onGlobalClick","filteredRecords","version","includes","totalSpace","sort","a","b","dateA","dateB","DeleteNonCurrent","reloadAfterDelete","ScreenTitle","listIcon","titleSpacer","subTitle","bucketDetails","detailsSpacer","actions","SelectWrapper","options","VirtualizedList","rowRenderFunction","elementIndex","versOrd","totalItems","defaultHeight","HistoryIcon","RefreshIcon","DeleteIcon","DeleteMultipleObjects","RewindEnable","baseDnDStyle","outline","activeDnDStyle","acceptDnDStyle","defLoading","Typography","resetRewind","setBucketDetailsLoad","setBucketInfo","openList","setSearchObjects","setShowDeletedObjects","buckets","routesList","downloadingFiles","loadingBucket","bucketInfo","searchObjects","showDeleted","withRouter","browsePaper","backgroundImage","badgeOverlap","screenTitle","searchField","maxWidth","labelStyle","breadcrumbsContainer","match","records","setRecords","loading","setLoading","rewind","setRewind","loadingRewind","setLoadingRewind","deleteMultipleOpen","setDeleteMultipleOpen","loadingStartTime","setLoadingStartTime","loadingMessage","setLoadingMessage","loadingVersioning","setLoadingVersioning","isVersioned","setIsVersioned","loadingLocking","setLoadingLocking","lockingEnabled","setLockingEnabled","rewindSelect","setRewindSelect","selectedObjects","setSelectedObjects","selectedPreview","setSelectedPreview","sortDirection","setSortDirection","currentSortField","setCurrentSortField","iniLoad","setIniLoad","canShareFile","setCanShareFile","canPreviewFile","setCanPreviewFile","detailsOpen","setDetailsOpen","selectedInternalPaths","setSelectedInternalPaths","quota","setQuota","params","fileUpload","folderUpload","setAttribute","quotaVals","displayDeleteObject","displayListObjects","callback","delay","savedCallback","setInterval","clearInterval","useInterval","timeDelta","now","ceil","updateMessage","is_versioned","object_locking_enabled","rewindParsed","pathPrefix","decodedPath","objects","filteredObjects","currentTimestamp","urlTake","currDateISO","folders","files","forEach","record","push","recordsInElement","pathPrefixChopped","i","handleUploadButton","newFiles","uploadObject","folderPath","uploadPromise","Promise","resolve","reject","uploadUrl","blobFile","Blob","encodedPath","relativeFolderPath","finalFolderPath","identity","xhr","XMLHttpRequest","areMultipleFiles","errorMessages","withCredentials","onload","response","JSON","detailedMessage","upload","addEventListener","floor","loaded","total","onerror","onloadend","formData","FormData","append","send","uploadFilePromises","allSettled","results","errors","totalFiles","successUploadedFiles","console","log","onDrop","acceptedFiles","newFolderPath","useDropzone","noClick","getRootProps","getInputProps","isDragActive","isDragAccept","dndStyles","useMemo","pageTitle","currentPath","sortASC","sortListObjects","payload","reverse","concat","forceRefresh","tableActions","idElement","newPath","sendOnlyId","filterFunction","filteredItem","fileObject","refresh","PageLayout","creation_date","access","Badge","badgeContent","invisible","multiple","closeMenu","click","tableBlock","borderTop","CheckboxWrapper","overrideLabelClasses","noTopMargin","TableWrapper","itemActions","columns","entityName","idField","customPaperHeight","selectedItems","onSelect","targetD","elements","customEmptyMessage","sortConfig","currentSort","currentDirection","triggerSort","sortData","newSortDirection","sortBy","onSelectAll","rowStyle","delete_flag","setSearchVersions","breadcrumLink","backToBuckets","PageHeader","BackLink","IAM_PAGES","IAM_PERMISSIONS","IAM_ROLES","SettingsIcon","middleComponent","SearchBox","useStyles","makeStyles","tgtColor","main","contrastText","secondary","getButtonColor","dateContainer","dateInputContainer","durationInputs","validityIndicator","invalidDurationText","validityText","initialDate","maxDays","entity","selectedDays","setSelectedDays","selectedHours","setSelectedHours","selectedMinutes","setSelectedMinutes","setValidDate","moment","dateSelected","setDateSelected","hours","minutes","add","calculateNewTime","format","valid","extraInputProps","min","max","noLabelMinWidth","validityLabel","validTill","CopyIcon","setModalSnackMessage","shareLinkInfo","copyShareLink","copyShareLinkInput","copyShareLinkBtn","shareURL","setShareURL","isLoadingVersion","setIsLoadingVersion","isLoadingFile","setIsLoadingFile","selectedDate","setSelectedDate","dateValid","setDateValid","setVersionID","latestVersion","elem","slDate","currDate","diffDate","newDate","PredefinedList","iframeContainer","iframeBase","iframeHidden","isFullscreen","basename","document","baseURI","replace","window","location","origin","objectType","iframeLoaded","autoPlay","controls","muted","playsInline","onPlay","src","alt","onLoad","allowTransparency","wideLimit","PreviewFileContent","fileSize","progressCallback","completeCallback","anchor","createElement","body","appendChild","req","evt","percentComplete","round","responseType","onreadystatechange","readyState","rspHeader","getResponseHeader","href","URL","createObjectURL","removeChild","fileExtension","fieldSort","localeCompare","contained","dark","rest","WrappedComponent","fallback","ComponentWithSuspense","Suspense","predefinedList","multiLine","prefinedContainer","predefinedTitle","innerContentMultiline","innerContent","radioStyles","radioIcons","RadioButton","checkedIcon","radioSelectedIcon","radioUnselectedIcon","optionLabel","checkedOption","displayInColumn","radioOptionsLayout","row","selectorOption","control","onSuccess","onError","setIsLoading","data","deleteDialogStyles","onCancel","cancelText","cancelButtonProps","reason","titleText","closeContainer","closeButton","cancelButton","confirmButton","loadingPosition","autoFocus","modalSnackMessage","modalSnackBar","customDialogSize","snackBarCommon","noContentPadding","openSnackbar","setOpenSnackbar","customSize","paper","fullWidth","detailedErrorMsg","scroll","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","toggleList","sidebarOpen","operatorMode","managerObjects","objectManager","objectsToManage","features","session","headerContainer","boxShadow","rightMenu","logo","direction","sm","md","headerBarIcon","headerBarSubheader","titleColumn","leftItems","rightItems","adornment","adornmentPosition","overrideClass","inputProps","disableUnderline","InputProps","itemStatusMap","RenderItemLine","isItemLoaded","loadMoreItems","startIndex","stopIndex","itemCount","onItemsRendered","itemSize","shown","setShown","overlayIcon","readOnly","overlayAction","navigator","clipboard","writeText"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/6496.7d9a792c.chunk.js b/portal-ui/build/static/js/6496.7d9a792c.chunk.js new file mode 100644 index 000000000..08c354bd5 --- /dev/null +++ b/portal-ui/build/static/js/6496.7d9a792c.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6496],{84669:function(e,n,t){t(72791);var a=t(91523),i=t(11135),o=t(25787),l=t(13048),r=t(64554),s=t(80184);n.Z=(0,o.Z)((function(e){return(0,i.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var n=e.to,t=e.label,i=e.classes,o=e.className,c=e.executeOnClick;return(0,s.jsx)(r.Z,{sx:{display:"flex",alignItems:"center"},children:(0,s.jsx)(a.rU,{to:n,className:"".concat(i.link," ").concat(o||""),onClick:function(){c&&c()},children:(0,s.jsxs)("div",{className:i.iconBox,children:[(0,s.jsx)("div",{className:i.icon,children:(0,s.jsx)(l.xN,{})}),(0,s.jsx)("div",{className:i.label,children:t})]})})})}))},83679:function(e,n,t){var a=t(4942),i=t(1413),o=(t(72791),t(28182)),l=t(61889),r=t(10765),s=t(85523),c=t(61419),d=t(30829),u=t(20068),m=t(11135),p=t(25787),x=t(72455),h=t(23814),g=t(84570),f=t(80184),b=(0,x.Z)((0,i.Z)({root:{"&:hover":{backgroundColor:"transparent"}}},h.FU)),v=function(e){var n=b();return(0,f.jsx)(c.Z,(0,i.Z)({className:n.root,disableRipple:!0,color:"default",checkedIcon:(0,f.jsx)("span",{className:n.radioSelectedIcon}),icon:(0,f.jsx)("span",{className:n.radioUnselectedIcon})},e))};n.Z=(0,p.Z)((function(e){return(0,m.Z)((0,i.Z)((0,i.Z)((0,i.Z)({},h.YI),h.Hr),{},{optionLabel:{"&.Mui-disabled":{"& .MuiFormControlLabel-label":{color:"#9c9c9c"}},"&:last-child":{marginRight:0},"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E"}},checkedOption:{"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E",fontWeight:700}}}))}))((function(e){var n=e.selectorOptions,t=void 0===n?[]:n,i=e.currentSelection,c=e.label,m=e.id,p=e.name,x=e.onChange,h=e.tooltip,b=void 0===h?"":h,j=e.disableOptions,Z=void 0!==j&&j,y=e.classes,C=e.displayInColumn,S=void 0!==C&&C;return(0,f.jsxs)(l.ZP,{container:!0,alignItems:"center",children:[(0,f.jsx)(l.ZP,{item:!0,xs:!0,children:(0,f.jsxs)(d.Z,{htmlFor:m,className:y.inputLabel,children:[(0,f.jsx)("span",{children:c}),""!==b&&(0,f.jsx)("div",{className:y.tooltipContainer,children:(0,f.jsx)(u.Z,{title:b,placement:"top-start",children:(0,f.jsx)("div",{children:(0,f.jsx)(g.Z,{})})})})]})}),(0,f.jsx)(l.ZP,{item:!0,xs:!0,className:y.radioOptionsLayout,children:(0,f.jsx)(r.Z,{"aria-label":m,id:m,name:p,value:i,onChange:x,row:!S,style:{display:"block",textAlign:"right"},children:t.map((function(e){return(0,f.jsx)(s.Z,{value:e.value,control:(0,f.jsx)(v,{}),label:e.label,disabled:Z,className:(0,o.Z)(y.optionLabel,(0,a.Z)({},y.checkedOption,e.value===i))},"rd-".concat(p,"-").concat(e.value))}))})})]})}))},28371:function(e,n,t){t.d(n,{Z:function(){return h}});var a=t(70885),i=t(72791),o=t(11135),l=t(25787),r=t(40986),s=t(36151),c=t(80184),d=(0,l.Z)((function(e){return(0,o.Z)({wizardStepContainer:{display:"flex",flexDirection:"column",flex:1},wizardComponent:{overflowY:"auto",marginBottom:10,height:"calc(100vh - 100px - 80px)",minHeight:400,flex:1,width:"100%"},wizardModal:{overflowY:"auto",marginBottom:10,height:"calc(100vh - 515px)"},buttonsContainer:{display:"flex",flexDirection:"row",justifyContent:"flex-start",padding:"10px 0",borderTop:"#EAEAEA 1px solid","& button":{marginLeft:10},"&.forModal":{paddingBottom:0}},buttonInnerContainer:{width:"100%",textAlign:"right",marginRight:15}})}))((function(e){var n=e.classes,t=e.page,a=e.pageChange,i=e.loadingStep,o=e.forModal;return(0,c.jsxs)("div",{className:n.wizardStepContainer,children:[(0,c.jsx)("div",{className:o?n.wizardModal:n.wizardComponent,children:t.componentRender}),i&&(0,c.jsx)("div",{children:(0,c.jsx)(r.Z,{})}),(0,c.jsx)("div",{className:"".concat(n.buttonsContainer," ").concat(o?"forModal":""),children:(0,c.jsx)("div",{className:n.buttonInnerContainer,children:t.buttons.map((function(e){return(0,c.jsx)(s.Z,{id:"wizard-button-"+e.label,variant:"contained",color:"primary",size:"small",onClick:function(){!function(e){switch(e.type){case"next":a("++");break;case"back":a("--");break;case"to":a(e.toPage||0)}e.action&&e.action(a)}(e)},disabled:!e.enabled,children:e.label},"button-".concat(t.label,"-").concat(e.label))}))})})]})})),u=t(90493),m=t(61889),p=t(15021),x=t(49900),h=(0,l.Z)((function(e){return(0,o.Z)({wizFromContainer:{},wizFromModal:{position:"relative"},modalWizardSteps:{padding:5,borderBottom:"#eaeaea 1px solid","& ul":{padding:0,marginTop:0,display:"flex",justifyContent:"space-evenly","& li":{listStyle:"lower-roman","&::marker":{paddingLeft:15}}}},buttonList:{backgroundColor:"transparent",border:"none",cursor:"pointer","&:not(:disabled):hover":{textDecoration:"underline"},"&:selected, &:active, &:focus, &:focus:active":{border:"none",outline:0,boxShadow:"none"}},paddedContentGrid:{marginTop:8,padding:"0 10px",minHeight:400},stepsLabel:{fontSize:20,color:"#393939",fontWeight:600,margin:"15px 12px","&.stepsModalTitle":{textAlign:"center",width:"100%",marginTop:0,marginBottom:10}},stepsMasterContainer:{position:"sticky",top:0,backgroundColor:"#FFFFFF",width:"100%",maxHeight:90},verticalSteps:{borderRight:"1px solid #E5E5E5",background:"#F8F8F8"},stepsContainer:{paddingTop:0,"& .MuiButtonBase-root.Mui-selected":{background:"#E5E5E5"}},stepItem:{minHeight:60,borderBottom:"1px solid #E5E5E5","&:hover":{background:"rgba(247,247,247,0.7)"}}})}))((function(e){var n=e.classes,t=e.wizardSteps,o=e.loadingStep,l=e.forModal,r=(0,i.useState)(0),s=(0,a.Z)(r,2),h=s[0],g=s[1],f=function(e){var n=t.length-1;if("++"===e){var a=h+1;a>n&&(a=n),g(a)}if("--"===e){var i=h-1;i<0&&(i=0),g(i)}if("number"===typeof e){var o=e;e<0&&(o=0),e>n&&(o=n),g(o)}};if(0===t.length)return null;return(0,c.jsxs)(m.ZP,{container:!0,className:l?n.wizFromModal:n.wizFromContainer,children:[l?(0,c.jsx)(i.Fragment,{children:(0,c.jsxs)("div",{className:n.stepsMasterContainer,children:[(0,c.jsx)("div",{className:"".concat(n.stepsLabel," stepsModalTitle"),children:"Steps"}),(0,c.jsx)("div",{className:n.modalWizardSteps,children:(0,c.jsx)("ul",{children:t.map((function(e,t){return(0,c.jsx)("li",{children:(0,c.jsx)("button",{onClick:function(){return f(t)},disabled:t>h,className:n.buttonList,children:e.label})},"wizard-".concat(t.toString()))}))})})]})}):(0,c.jsx)(i.Fragment,{children:(0,c.jsx)(m.ZP,{item:!0,xs:12,sm:2,md:2,lg:2,xl:2,className:n.verticalSteps,children:(0,c.jsx)(i.Fragment,{children:(0,c.jsx)(u.Z,{component:"nav",dense:!0,classes:{root:n.stepsContainer},children:t.map((function(e,t){return(0,c.jsx)(p.ZP,{id:"wizard-step-"+e.label.toLowerCase().replaceAll(" ","-"),button:!0,disableRipple:!0,onClick:function(){return f(t)},selected:h===t,classes:{root:n.stepItem},children:(0,c.jsx)(x.Z,{primary:e.label})},"wizard-".concat(t.toString()))}))})})})}),(0,c.jsx)(m.ZP,{item:!0,xs:12,sm:l?12:10,md:l?12:10,lg:l?12:10,xl:l?12:10,className:l?"":n.paddedContentGrid,children:(0,c.jsx)(d,{page:t[h],pageChange:f,loadingStep:o,forModal:l})})]})}))},74794:function(e,n,t){var a=t(1413),i=(t(72791),t(61889)),o=t(11135),l=t(25787),r=t(23814),s=t(80184);n.Z=(0,l.Z)((function(e){return(0,o.Z)((0,a.Z)({},r.Bw))}))((function(e){var n=e.classes,t=e.className,a=void 0===t?"":t,o=e.children;return(0,s.jsx)("div",{className:n.contentSpacer,children:(0,s.jsx)(i.ZP,{container:!0,children:(0,s.jsx)(i.ZP,{item:!0,xs:12,className:a,children:o})})})}))},32291:function(e,n,t){var a=t(72791),i=t(60364),o=t(61889),l=t(11135),r=t(25787),s=t(20890),c=t(13400),d=t(95466),u=t(84683),m=t(3925),p=t(13048),x=t(80184),h={toggleList:m.kQ},g=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),h);n.Z=g((0,r.Z)((function(e){return(0,l.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,i=e.actions,l=e.sidebarOpen,r=e.operatorMode,m=e.managerObjects,h=e.toggleList,g=e.middleComponent;return e.features.includes("hide-menu")?(0,x.jsx)(a.Fragment,{}):(0,x.jsxs)(o.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,x.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!l&&(0,x.jsx)("div",{className:n.logo,children:r?(0,x.jsx)(d.Z,{}):(0,x.jsx)(u.Z,{})}),(0,x.jsx)(s.Z,{variant:"h4",className:n.labelStyle,children:t})]}),g&&(0,x.jsx)(o.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:g}),(0,x.jsxs)(o.ZP,{item:!0,xs:12,sm:12,md:g?3:6,className:n.rightMenu,children:[i&&i,m&&m.length>0&&(0,x.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,x.jsx)(p.gx,{})})]})]})})))},45660:function(e,n,t){t(72791);var a=t(64974),i=t(90673),o=t(61889),l=t(21435),r=t(56578),s=t(25787),c=t(11135),d=t(80184);n.Z=(0,s.Z)((function(e){return(0,c.Z)({labelsStyle:{fontSize:18,fontWeight:"bold",color:"#AEAEAE",display:"flex",alignItems:"center",justifyContent:"center",maxWidth:45,marginRight:10},fieldsetStyle:{border:"1px solid #EAEAEA",borderRadius:2,padding:10,marginBottom:15},firstLevel:{marginBottom:10},fieldContainer:{marginRight:10},legendStyle:{fontSize:12,color:"#696969",fontWeight:"bold"}})}))((function(e){var n=e.effect,t=e.onEffectChange,s=e.tolerationKey,c=e.onTolerationKeyChange,u=e.operator,m=e.onOperatorChange,p=e.value,x=e.onValueChange,h=e.tolerationSeconds,g=e.onSecondsChange,f=e.index,b=e.classes,v=[],j=[];for(var Z in a.I)v.push({value:Z,label:Z});for(var y in a.y)j.push({value:y,label:y});return(0,d.jsx)(o.ZP,{item:!0,xs:12,children:(0,d.jsxs)("fieldset",{className:b.fieldsetStyle,children:[(0,d.jsxs)("legend",{className:b.legendStyle,children:["Toleration ",f+1]}),(0,d.jsxs)(o.ZP,{container:!0,children:[(0,d.jsxs)(o.ZP,{container:!0,className:b.firstLevel,children:[(0,d.jsx)(o.ZP,{item:!0,xs:!0,className:b.labelsStyle,children:"If"}),(0,d.jsx)(o.ZP,{item:!0,xs:!0,className:b.fieldContainer,children:(0,d.jsx)(l.Z,{id:"keyField-".concat(f),label:"",name:"keyField-".concat(f),value:s,onChange:function(e){c(e.target.value)},index:f,placeholder:"Toleration Key"})}),a.I[u]===a.I.Equal&&(0,d.jsx)(o.ZP,{item:!0,xs:!0,className:b.labelsStyle,children:"is"}),(0,d.jsx)(o.ZP,{item:!0,xs:1,className:b.fieldContainer,children:(0,d.jsx)(i.Z,{onChange:function(e){m(a.I[e.target.value])},id:"operator-".concat(f),name:"operator",label:"",value:a.I[u],options:v})}),a.I[u]===a.I.Equal&&(0,d.jsx)(o.ZP,{item:!0,xs:!0,className:b.labelsStyle,children:"to"}),a.I[u]===a.I.Equal&&(0,d.jsx)(o.ZP,{item:!0,xs:!0,className:b.fieldContainer,children:(0,d.jsx)(l.Z,{id:"valueField-".concat(f),label:"",name:"valueField-".concat(f),value:p||"",onChange:function(e){x(e.target.value)},index:f,placeholder:"Toleration Value"})})]}),(0,d.jsxs)(o.ZP,{container:!0,children:[(0,d.jsx)(o.ZP,{item:!0,xs:!0,className:b.labelsStyle,children:"then"}),(0,d.jsx)(o.ZP,{item:!0,xs:!0,className:b.fieldContainer,children:(0,d.jsx)(i.Z,{onChange:function(e){t(a.y[e.target.value])},id:"effects-".concat(f),name:"effects",label:"",value:a.y[n],options:j})}),(0,d.jsx)(o.ZP,{item:!0,xs:!0,className:b.labelsStyle,children:"after"}),(0,d.jsx)(o.ZP,{item:!0,xs:!0,className:b.fieldContainer,children:(0,d.jsx)(l.Z,{id:"seconds-".concat(f),label:"",name:"seconds-".concat(f),value:(null===h||void 0===h?void 0:h.toString())||"0",onChange:function(e){e.target.validity.valid&&g(parseInt(e.target.value))},index:f,pattern:"[0-9]*",overlayObject:(0,d.jsx)(r.Z,{id:"seconds-".concat(f),unitSelected:"seconds",unitsList:[{label:"Seconds",value:"seconds"}],disabled:!0})})})]})]})]})})}))},76256:function(e,n,t){t.d(n,{P:function(){return a},q:function(){return i}});var a=function(e,n){return{podAntiAffinity:{requiredDuringSchedulingIgnoredDuringExecution:[{labelSelector:{matchExpressions:[{key:"v1.min.io/tenant",operator:"In",values:[e]},{key:"v1.min.io/pool",operator:"In",values:[n]}]},topologyKey:"kubernetes.io/hostname"}]}}},i=function(e,n,t,i){var o=e.split("&"),l=[];o.forEach((function(e){var n=e.split("=");2===n.length&&l.push({key:n[0],operator:"In",values:[n[1]]})}));var r={nodeAffinity:{requiredDuringSchedulingIgnoredDuringExecution:{nodeSelectorTerms:[{matchExpressions:l}]}}};if(n){var s=a(t,i);r.podAntiAffinity=s.podAntiAffinity}return console.log(r),r}}}]); +//# sourceMappingURL=6496.7d9a792c.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6496.7d9a792c.chunk.js.map b/portal-ui/build/static/js/6496.7d9a792c.chunk.js.map new file mode 100644 index 000000000..fb4b32fdc --- /dev/null +++ b/portal-ui/build/static/js/6496.7d9a792c.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6496.7d9a792c.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Common/FormComponents/RadioGroupSelector/RadioGroupSelector.tsx","screens/Console/Common/GenericWizard/WizardPage.tsx","screens/Console/Common/GenericWizard/GenericWizard.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/TolerationSelector/TolerationSelector.tsx","screens/Console/Tenants/TenantDetails/utils.ts"],"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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\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 clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Radio, { RadioProps } from \"@mui/material/Radio\";\nimport { InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { fieldBasic, radioIcons, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\n\nexport interface SelectorTypes {\n label: string;\n value: string;\n}\n\ninterface RadioGroupProps {\n selectorOptions: SelectorTypes[];\n currentSelection: string;\n label: string;\n id: string;\n name: string;\n tooltip?: string;\n disableOptions?: boolean;\n onChange: (e: React.ChangeEvent) => void;\n classes: any;\n displayInColumn?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n optionLabel: {\n \"&.Mui-disabled\": {\n \"& .MuiFormControlLabel-label\": {\n color: \"#9c9c9c\",\n },\n },\n \"&:last-child\": {\n marginRight: 0,\n },\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n },\n },\n checkedOption: {\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n fontWeight: 700,\n },\n },\n });\n\nconst radioStyles = makeStyles({\n root: {\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n ...radioIcons,\n});\n\nconst RadioButton = (props: RadioProps) => {\n const classes = radioStyles();\n\n return (\n }\n icon={}\n {...props}\n />\n );\n};\n\nexport const RadioGroupSelector = ({\n selectorOptions = [],\n currentSelection,\n label,\n id,\n name,\n onChange,\n tooltip = \"\",\n disableOptions = false,\n classes,\n displayInColumn = false,\n}: RadioGroupProps) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n
    \n \n \n {selectorOptions.map((selectorOption) => {\n return (\n }\n label={selectorOption.label}\n disabled={disableOptions}\n className={clsx(classes.optionLabel, {\n [classes.checkedOption]:\n selectorOption.value === currentSelection,\n })}\n />\n );\n })}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(RadioGroupSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IWizardButton, IWizardPage } from \"./types\";\nimport { Button, LinearProgress } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n wizardStepContainer: {\n display: \"flex\",\n flexDirection: \"column\",\n flex: 1,\n },\n wizardComponent: {\n overflowY: \"auto\",\n marginBottom: 10,\n height: \"calc(100vh - 100px - 80px)\",\n minHeight: 400,\n flex: 1,\n width: \"100%\",\n },\n wizardModal: {\n overflowY: \"auto\",\n marginBottom: 10,\n height: \"calc(100vh - 515px)\",\n },\n buttonsContainer: {\n display: \"flex\",\n flexDirection: \"row\",\n justifyContent: \"flex-start\" as const,\n padding: \"10px 0\",\n borderTop: \"#EAEAEA 1px solid\",\n \"& button\": {\n marginLeft: 10,\n },\n \"&.forModal\": {\n paddingBottom: 0,\n },\n },\n buttonInnerContainer: {\n width: \"100%\",\n textAlign: \"right\" as const,\n marginRight: 15,\n },\n });\n\nconst WizardPage = ({\n classes,\n page,\n pageChange,\n loadingStep,\n forModal,\n}: IWizardPage) => {\n const buttonAction = (btn: IWizardButton) => {\n switch (btn.type) {\n case \"next\":\n pageChange(\"++\");\n break;\n case \"back\":\n pageChange(\"--\");\n break;\n case \"to\":\n pageChange(btn.toPage || 0);\n break;\n case \"custom\":\n default:\n }\n\n if (btn.action) {\n btn.action(pageChange);\n }\n };\n\n return (\n
    \n
    \n {page.componentRender}\n
    \n {loadingStep && (\n
    \n \n
    \n )}\n \n
    \n {page.buttons.map((btn) => {\n return (\n {\n buttonAction(btn);\n }}\n disabled={!btn.enabled}\n key={`button-${page.label}-${btn.label}`}\n >\n {btn.label}\n \n );\n })}\n
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(WizardPage);\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IWizardMain } from \"./types\";\nimport WizardPage from \"./WizardPage\";\nimport { Grid, List } from \"@mui/material\";\nimport ListItem from \"@mui/material/ListItem\";\nimport ListItemText from \"@mui/material/ListItemText\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n wizFromContainer: {},\n wizFromModal: {\n position: \"relative\",\n },\n modalWizardSteps: {\n padding: 5,\n borderBottom: \"#eaeaea 1px solid\",\n \"& ul\": {\n padding: 0,\n marginTop: 0,\n display: \"flex\",\n justifyContent: \"space-evenly\",\n\n \"& li\": {\n listStyle: \"lower-roman\",\n \"&::marker\": {\n paddingLeft: 15,\n },\n },\n },\n },\n buttonList: {\n backgroundColor: \"transparent\",\n border: \"none\",\n cursor: \"pointer\",\n \"&:not(:disabled):hover\": {\n textDecoration: \"underline\",\n },\n \"&:selected, &:active, &:focus, &:focus:active\": {\n border: \"none\",\n outline: 0,\n boxShadow: \"none\",\n },\n },\n paddedContentGrid: {\n marginTop: 8,\n padding: \"0 10px\",\n minHeight: 400,\n },\n stepsLabel: {\n fontSize: 20,\n color: \"#393939\",\n fontWeight: 600,\n margin: \"15px 12px\",\n \"&.stepsModalTitle\": {\n textAlign: \"center\",\n width: \"100%\",\n marginTop: 0,\n marginBottom: 10,\n },\n },\n stepsMasterContainer: {\n position: \"sticky\",\n top: 0,\n backgroundColor: \"#FFFFFF\",\n width: \"100%\",\n maxHeight: 90,\n },\n verticalSteps: {\n borderRight: \"1px solid #E5E5E5\",\n background: \"#F8F8F8\",\n },\n stepsContainer: {\n paddingTop: 0,\n \"& .MuiButtonBase-root.Mui-selected\": {\n background: \"#E5E5E5\",\n },\n },\n stepItem: {\n minHeight: 60,\n borderBottom: \"1px solid #E5E5E5\",\n \"&:hover\": {\n background: \"rgba(247,247,247,0.7)\",\n },\n },\n });\n\nconst GenericWizard = ({\n classes,\n wizardSteps,\n loadingStep,\n forModal,\n}: IWizardMain) => {\n const [currentStep, setCurrentStep] = useState(0);\n\n const pageChange = (toElement: string | number) => {\n const lastPage = wizardSteps.length - 1;\n\n if (toElement === \"++\") {\n let nextPage = currentStep + 1;\n\n if (nextPage > lastPage) {\n nextPage = lastPage;\n }\n\n setCurrentStep(nextPage);\n }\n\n if (toElement === \"--\") {\n let prevPage = currentStep - 1;\n\n if (prevPage < 0) {\n prevPage = 0;\n }\n\n setCurrentStep(prevPage);\n }\n\n if (typeof toElement === \"number\") {\n let pg = toElement;\n if (toElement < 0) {\n pg = 0;\n }\n\n if (toElement > lastPage) {\n pg = lastPage;\n }\n\n setCurrentStep(pg);\n }\n };\n\n if (wizardSteps.length === 0) {\n return null;\n }\n\n const stepsList = () => {\n return (\n \n \n {wizardSteps.map((step, index) => {\n return (\n pageChange(index)}\n key={`wizard-${index.toString()}`}\n selected={currentStep === index}\n classes={{\n root: classes.stepItem,\n }}\n >\n \n \n );\n })}\n \n \n );\n };\n const stepsListModal = () => {\n return (\n
      \n {wizardSteps.map((step, index) => {\n return (\n
    • \n pageChange(index)}\n disabled={index > currentStep}\n className={classes.buttonList}\n >\n {step.label}\n \n
    • \n );\n })}\n
    \n );\n };\n\n return (\n \n {forModal ? (\n \n
    \n
    Steps
    \n
    {stepsListModal()}
    \n
    \n
    \n ) : (\n \n \n {stepsList()}\n \n \n )}\n\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(GenericWizard);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 {\n ITolerationEffect,\n ITolerationOperator,\n} from \"../../../../common/types\";\nimport SelectWrapper, {\n selectorTypes,\n} from \"../FormComponents/SelectWrapper/SelectWrapper\";\nimport { Grid, SelectChangeEvent } from \"@mui/material\";\nimport InputBoxWrapper from \"../FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport InputUnitMenu from \"../FormComponents/InputUnitMenu/InputUnitMenu\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\n\ninterface ITolerationSelector {\n effect: ITolerationEffect;\n onEffectChange: (value: ITolerationEffect) => void;\n tolerationKey: string;\n onTolerationKeyChange: (value: string) => void;\n operator: ITolerationOperator;\n onOperatorChange: (value: ITolerationOperator) => void;\n value?: string;\n onValueChange: (value: string) => void;\n tolerationSeconds?: number;\n onSecondsChange: (value: number) => void;\n index: number;\n classes: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n labelsStyle: {\n fontSize: 18,\n fontWeight: \"bold\",\n color: \"#AEAEAE\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n maxWidth: 45,\n marginRight: 10,\n },\n fieldsetStyle: {\n border: \"1px solid #EAEAEA\",\n borderRadius: 2,\n padding: 10,\n marginBottom: 15,\n },\n firstLevel: {\n marginBottom: 10,\n },\n fieldContainer: {\n marginRight: 10,\n },\n legendStyle: {\n fontSize: 12,\n color: \"#696969\",\n fontWeight: \"bold\",\n },\n });\n\nconst TolerationSelector = ({\n effect,\n onEffectChange,\n tolerationKey,\n onTolerationKeyChange,\n operator,\n onOperatorChange,\n value,\n onValueChange,\n tolerationSeconds,\n onSecondsChange,\n index,\n classes,\n}: ITolerationSelector) => {\n const operatorOptions: selectorTypes[] = [];\n const effectOptions: selectorTypes[] = [];\n\n for (let operator in ITolerationOperator) {\n operatorOptions.push({\n value: operator,\n label: operator,\n });\n }\n\n for (let effect in ITolerationEffect) {\n effectOptions.push({\n value: effect,\n label: effect,\n });\n }\n\n return (\n \n
    \n Toleration {index + 1}\n \n \n \n If\n \n \n {\n onTolerationKeyChange(e.target.value);\n }}\n index={index}\n placeholder={\"Toleration Key\"}\n />\n \n {ITolerationOperator[operator] === ITolerationOperator.Equal && (\n \n is\n \n )}\n \n ) => {\n onOperatorChange(\n ITolerationOperator[e.target.value as ITolerationOperator]\n );\n }}\n id={`operator-${index}`}\n name=\"operator\"\n label={\"\"}\n value={ITolerationOperator[operator]}\n options={operatorOptions}\n />\n \n {ITolerationOperator[operator] === ITolerationOperator.Equal && (\n \n to\n \n )}\n {ITolerationOperator[operator] === ITolerationOperator.Equal && (\n \n {\n onValueChange(e.target.value);\n }}\n index={index}\n placeholder={\"Toleration Value\"}\n />\n \n )}\n \n \n \n then\n \n \n ) => {\n onEffectChange(\n ITolerationEffect[e.target.value as ITolerationEffect]\n );\n }}\n id={`effects-${index}`}\n name=\"effects\"\n label={\"\"}\n value={ITolerationEffect[effect]}\n options={effectOptions}\n />\n \n \n after\n \n \n {\n if (e.target.validity.valid) {\n onSecondsChange(parseInt(e.target.value));\n }\n }}\n index={index}\n pattern={\"[0-9]*\"}\n overlayObject={\n \n }\n />\n \n \n \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(TolerationSelector);\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 { IAffinityModel } from \"../../../../common/types\";\n\nexport const getDefaultAffinity = (tenantName: string, poolName: string) => {\n const defaultAffinity: IAffinityModel = {\n podAntiAffinity: {\n requiredDuringSchedulingIgnoredDuringExecution: [\n {\n labelSelector: {\n matchExpressions: [\n {\n key: \"v1.min.io/tenant\",\n operator: \"In\",\n values: [tenantName],\n },\n {\n key: \"v1.min.io/pool\",\n operator: \"In\",\n values: [poolName],\n },\n ],\n },\n topologyKey: \"kubernetes.io/hostname\",\n },\n ],\n },\n };\n return defaultAffinity;\n};\n\nexport const getNodeSelector = (\n labels: string,\n withPodAntiAffinity: boolean,\n tenantName: string,\n poolName: string\n) => {\n // Labels in the form of key1=value1&key2=value2&key3=value3...\n const splittedLabels = labels.split(\"&\");\n let matchExpressions: any = [];\n\n splittedLabels.forEach((label: string) => {\n const splitKeyValue = label.split(\"=\");\n if (splitKeyValue.length === 2) {\n matchExpressions.push({\n key: splitKeyValue[0],\n operator: \"In\",\n values: [splitKeyValue[1]],\n });\n }\n });\n\n const nodeSelector: IAffinityModel = {\n nodeAffinity: {\n requiredDuringSchedulingIgnoredDuringExecution: {\n nodeSelectorTerms: [\n {\n matchExpressions: matchExpressions,\n },\n ],\n },\n },\n };\n if (withPodAntiAffinity) {\n const def = getDefaultAffinity(tenantName, poolName);\n nodeSelector.podAntiAffinity = def.podAntiAffinity;\n }\n console.log(nodeSelector);\n return nodeSelector;\n};\n"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","radioStyles","makeStyles","root","backgroundColor","radioIcons","RadioButton","props","disableRipple","checkedIcon","radioSelectedIcon","radioUnselectedIcon","fieldBasic","tooltipHelper","optionLabel","checkedOption","selectorOptions","currentSelection","id","name","onChange","tooltip","disableOptions","displayInColumn","container","item","xs","htmlFor","inputLabel","tooltipContainer","title","placement","radioOptionsLayout","value","row","style","textAlign","map","selectorOption","control","disabled","clsx","wizardStepContainer","flex","wizardComponent","overflowY","marginBottom","minHeight","wizardModal","buttonsContainer","justifyContent","padding","borderTop","marginLeft","buttonInnerContainer","page","pageChange","loadingStep","forModal","componentRender","LinearProgress","buttons","btn","Button","variant","size","type","toPage","action","buttonAction","enabled","wizFromContainer","wizFromModal","position","modalWizardSteps","borderBottom","marginTop","listStyle","buttonList","border","cursor","outline","boxShadow","paddedContentGrid","stepsLabel","margin","stepsMasterContainer","top","maxHeight","verticalSteps","borderRight","stepsContainer","stepItem","wizardSteps","useState","currentStep","setCurrentStep","toElement","lastPage","length","nextPage","prevPage","pg","Grid","Fragment","step","index","toString","sm","md","lg","xl","List","component","dense","ListItem","toLowerCase","replaceAll","button","selected","ListItemText","pageContentStyles","children","contentSpacer","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","left","labelStyle","rightMenu","logo","fill","main","middleComponent","actions","includes","direction","labelsStyle","maxWidth","fieldsetStyle","firstLevel","fieldContainer","legendStyle","effect","onEffectChange","tolerationKey","onTolerationKeyChange","operator","onOperatorChange","onValueChange","tolerationSeconds","onSecondsChange","operatorOptions","effectOptions","ITolerationOperator","push","ITolerationEffect","e","target","placeholder","options","validity","valid","parseInt","pattern","overlayObject","unitSelected","unitsList","getDefaultAffinity","tenantName","poolName","podAntiAffinity","requiredDuringSchedulingIgnoredDuringExecution","labelSelector","matchExpressions","key","values","topologyKey","getNodeSelector","labels","withPodAntiAffinity","splittedLabels","split","forEach","splitKeyValue","nodeSelector","nodeAffinity","nodeSelectorTerms","def","log"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/6683.0395331a.chunk.js b/portal-ui/build/static/js/6683.0395331a.chunk.js deleted file mode 100644 index c7f51e06a..000000000 --- a/portal-ui/build/static/js/6683.0395331a.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6683],{54639:function(e,n,l){l.d(n,{Z:function(){return h}});var i=l(70885),t=l(1413),a=l(72791),o=l(26181),r=l.n(o),d=l(61889),s=l(30829),c=l(20068),u=l(13400),v=l(99663),m=l(86711),p=l(11135),Z=l(25787),x=l(23814),g=l(84570),y=l(22512),f=l(80184),h=(0,Z.Z)((function(e){return(0,p.Z)((0,t.Z)((0,t.Z)((0,t.Z)((0,t.Z)({},x.YI),x.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},x.bV),{},{inputLabel:(0,t.Z)((0,t.Z)({},x.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,t.Z)((0,t.Z)({},x.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var n=e.label,l=e.classes,t=e.onChange,o=e.id,p=e.name,Z=e.disabled,x=void 0!==Z&&Z,h=e.tooltip,_=void 0===h?"":h,j=e.required,k=e.error,b=void 0===k?"":k,C=e.accept,N=void 0===C?"":C,w=e.value,F=void 0===w?"":w,S=(0,a.useState)(!1),R=(0,i.Z)(S,2),P=R[0],K=R[1];return(0,f.jsx)(a.Fragment,{children:(0,f.jsxs)(d.ZP,{item:!0,xs:12,className:"".concat(l.fileInputField," ").concat(l.fieldBottom," ").concat(l.fieldContainer," ").concat(""!==b?l.errorInField:""),children:[""!==n&&(0,f.jsxs)(s.Z,{htmlFor:o,className:"".concat(""!==b?l.fieldLabelError:""," ").concat(l.inputLabel),children:[(0,f.jsxs)("span",{children:[n,j?"*":""]}),""!==_&&(0,f.jsx)("div",{className:l.tooltipContainer,children:(0,f.jsx)(c.Z,{title:_,placement:"top-start",children:(0,f.jsx)("div",{className:l.tooltip,children:(0,f.jsx)(g.Z,{})})})})]}),P||""===F?(0,f.jsxs)("div",{className:l.textBoxContainer,children:[(0,f.jsx)("input",{type:"file",name:p,onChange:function(e){var n=r()(e,"target.files[0].name","");!function(e,n){var l=e.target.files[0],i=new FileReader;i.readAsDataURL(l),i.onload=function(){var e=i.result;if(e){var l=e.toString().split("base64,");2===l.length&&n(l[1])}}}(e,(function(e){t(e,n)}))},accept:N,required:j,disabled:x,className:l.fileInputField}),""!==F&&(0,f.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){K(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,f.jsx)(m.Z,{})}),""!==b&&(0,f.jsx)(y.Z,{errorMessage:b})]}):(0,f.jsxs)("div",{className:l.fileReselect,children:[(0,f.jsx)("div",{className:l.valueString,children:F}),(0,f.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){K(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,f.jsx)(v.Z,{})})]})]})})}))},83679:function(e,n,l){var i=l(4942),t=l(1413),a=(l(72791),l(28182)),o=l(61889),r=l(10765),d=l(85523),s=l(61419),c=l(30829),u=l(20068),v=l(11135),m=l(25787),p=l(72455),Z=l(23814),x=l(84570),g=l(80184),y=(0,p.Z)((0,t.Z)({root:{"&:hover":{backgroundColor:"transparent"}}},Z.FU)),f=function(e){var n=y();return(0,g.jsx)(s.Z,(0,t.Z)({className:n.root,disableRipple:!0,color:"default",checkedIcon:(0,g.jsx)("span",{className:n.radioSelectedIcon}),icon:(0,g.jsx)("span",{className:n.radioUnselectedIcon})},e))};n.Z=(0,m.Z)((function(e){return(0,v.Z)((0,t.Z)((0,t.Z)((0,t.Z)({},Z.YI),Z.Hr),{},{optionLabel:{"&.Mui-disabled":{"& .MuiFormControlLabel-label":{color:"#9c9c9c"}},"&:last-child":{marginRight:0},"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E"}},checkedOption:{"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E",fontWeight:700}}}))}))((function(e){var n=e.selectorOptions,l=void 0===n?[]:n,t=e.currentSelection,s=e.label,v=e.id,m=e.name,p=e.onChange,Z=e.tooltip,y=void 0===Z?"":Z,h=e.disableOptions,_=void 0!==h&&h,j=e.classes,k=e.displayInColumn,b=void 0!==k&&k;return(0,g.jsxs)(o.ZP,{container:!0,alignItems:"center",children:[(0,g.jsx)(o.ZP,{item:!0,xs:!0,children:(0,g.jsxs)(c.Z,{htmlFor:v,className:j.inputLabel,children:[(0,g.jsx)("span",{children:s}),""!==y&&(0,g.jsx)("div",{className:j.tooltipContainer,children:(0,g.jsx)(u.Z,{title:y,placement:"top-start",children:(0,g.jsx)("div",{children:(0,g.jsx)(x.Z,{})})})})]})}),(0,g.jsx)(o.ZP,{item:!0,xs:!0,className:j.radioOptionsLayout,children:(0,g.jsx)(r.Z,{"aria-label":v,id:v,name:m,value:t,onChange:p,row:!b,style:{display:"block",textAlign:"right"},children:l.map((function(e){return(0,g.jsx)(d.Z,{value:e.value,control:(0,g.jsx)(f,{}),label:e.label,disabled:_,className:(0,a.Z)(j.optionLabel,(0,i.Z)({},j.checkedOption,e.value===t))},"rd-".concat(m,"-").concat(e.value))}))})})]})}))},23508:function(e,n,l){var i=l(1413),t=l(72791),a=l(5574),o=l(65661),r=l(39157),d=l(97123),s=l(36151),c=l(59860),u=l(13400),v=l(29823),m=l(11135),p=l(25787),Z=l(23814),x=l(80184);n.Z=(0,p.Z)((function(e){return(0,m.Z)((0,i.Z)({},Z.Qw))}))((function(e){var n=e.isOpen,l=void 0!==n&&n,m=e.onClose,p=e.onCancel,Z=e.onConfirm,g=e.classes,y=void 0===g?{}:g,f=e.title,h=void 0===f?"":f,_=e.isLoading,j=e.confirmationContent,k=e.cancelText,b=void 0===k?"Cancel":k,C=e.confirmText,N=void 0===C?"Confirm":C,w=e.confirmButtonProps,F=void 0===w?{}:w,S=e.cancelButtonProps,R=void 0===S?{}:S,P=e.titleIcon,K=void 0===P?null:P;return(0,x.jsxs)(a.Z,{open:l,onClose:function(e,n){"backdropClick"!==n&&m()},className:y.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,x.jsxs)(o.Z,{className:y.title,children:[(0,x.jsxs)("div",{className:y.titleText,children:[K," ",h]}),(0,x.jsx)("div",{className:y.closeContainer,children:(0,x.jsx)(u.Z,{"aria-label":"close",className:y.closeButton,onClick:m,disableRipple:!0,size:"small",children:(0,x.jsx)(v.Z,{})})})]}),(0,x.jsx)(r.Z,{className:y.content,children:j}),(0,x.jsxs)(d.Z,{className:y.actions,children:[(0,x.jsx)(s.Z,(0,i.Z)((0,i.Z)({className:y.cancelButton,onClick:p||m,disabled:_,type:"button"},R),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:b})),(0,x.jsx)(c.Z,(0,i.Z)((0,i.Z)({className:y.confirmButton,type:"button",onClick:Z,loading:_,disabled:_,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,x.jsx)(t.Fragment,{}),autoFocus:!0,id:"confirm-ok"},F),{},{children:N}))]})]})}))},76683:function(e,n,l){l.r(n);var i=l(42982),t=l(70885),a=l(1413),o=l(11135),r=l(25787),d=l(23814),s=l(10703),c=l(72791),u=l(42649),v=l(60364),m=l(75460),p=l(81207),Z=l(37516),x=l(61889),g=l(54639),y=l(21435),f=l(83679),h=l(51691),_=l(20890),j=l(36151),k=l(81918),b=l(46431),C=l.n(b),N=l(20165),w=l(3579),F=l(84741),S=l(40968),R=l(23508),P=l(80184),K={setErrorSnackMessage:u.Ih,setTenantDetailsLoad:m.V2},A=(0,v.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo}}),K);n.default=(0,r.Z)((function(e){return(0,o.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},d.oZ),d.bK),{},{loaderAlign:{textAlign:"center"},title:{marginTop:35},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},paperContainer:{padding:"15px 15px 15px 50px"},certificateInfo:{height:"auto",margin:5},fileItem:{marginRight:10,display:"flex","& div label":{minWidth:50},"@media (max-width: 900px)":{flexFlow:"column"}},certInputRow:{display:"flex",alignItems:"center",borderBottom:"1px solid #eaeaea",marginBottom:10},caCertsRow:{borderBottom:"1px solid #eaeaea",display:"flex",alignItems:"center",marginBottom:10}},(0,d.Bz)(e.spacing(4))),d.QV),d.DF),d.oO),d.AK))}))(A((function(e){var n,l,o,r,d,u,v,m,b,K,A,I,B,z,q,M,T,G,E,D,V,Y,L,U,O,W,H,Q,$,J,X,ee,ne=e.classes,le=e.tenant,ie=e.setErrorSnackMessage,te=(0,c.useState)(!1),ae=(0,t.Z)(te,2),oe=ae[0],re=ae[1],de=(0,c.useState)("vault"),se=(0,t.Z)(de,2),ce=se[0],ue=se[1],ve=(0,c.useState)("2"),me=(0,t.Z)(ve,2),pe=me[0],Ze=me[1],xe=(0,c.useState)(""),ge=(0,t.Z)(xe,2),ye=ge[0],fe=ge[1],he=(0,c.useState)(!1),_e=(0,t.Z)(he,2),je=_e[0],ke=_e[1],be=(0,c.useState)({fsGroup:"1000",runAsGroup:"1000",runAsNonRoot:!0,runAsUser:"1000"}),Ce=(0,t.Z)(be,2),Ne=Ce[0],we=Ce[1],Fe=(0,c.useState)(null),Se=(0,t.Z)(Fe,2),Re=Se[0],Pe=Se[1],Ke=(0,c.useState)(null),Ae=(0,t.Z)(Ke,2),Ie=Ae[0],Be=Ae[1],ze=(0,c.useState)(null),qe=(0,t.Z)(ze,2),Me=qe[0],Te=qe[1],Ge=(0,c.useState)(null),Ee=(0,t.Z)(Ge,2),De=Ee[0],Ve=Ee[1],Ye=(0,c.useState)(null),Le=(0,t.Z)(Ye,2),Ue=Le[0],Oe=Le[1],We=(0,c.useState)(!1),He=(0,t.Z)(We,2),Qe=He[0],$e=He[1],Je=(0,c.useState)(!1),Xe=(0,t.Z)(Je,2),en=Xe[0],nn=Xe[1],ln=(0,c.useState)(null),tn=(0,t.Z)(ln,2),an=tn[0],on=tn[1],rn=(0,c.useState)(null),dn=(0,t.Z)(rn,2),sn=dn[0],cn=dn[1],un=(0,c.useState)(null),vn=(0,t.Z)(un,2),mn=vn[0],pn=vn[1],Zn=(0,c.useState)([]),xn=(0,t.Z)(Zn,2),gn=xn[0],yn=xn[1],fn=(0,c.useState)(!1),hn=(0,t.Z)(fn,2),_n=hn[0],jn=hn[1],kn=(0,c.useState)(!1),bn=(0,t.Z)(kn,2),Cn=bn[0],Nn=bn[1],wn=(0,c.useState)(!1),Fn=(0,t.Z)(wn,2),Sn=Fn[0],Rn=Fn[1],Pn=(0,c.useState)(null),Kn=(0,t.Z)(Pn,2),An=Kn[0],In=Kn[1],Bn=(0,c.useState)(null),zn=(0,t.Z)(Bn,2),qn=zn[0],Mn=zn[1],Tn=(0,c.useState)(null),Gn=(0,t.Z)(Tn,2),En=Gn[0],Dn=Gn[1],Vn=(0,c.useState)(null),Yn=(0,t.Z)(Vn,2),Ln=Yn[0],Un=Yn[1],On=(0,c.useState)(null),Wn=(0,t.Z)(On,2),Hn=Wn[0],Qn=Wn[1],$n=(0,c.useState)(null),Jn=(0,t.Z)($n,2),Xn=Jn[0],el=Jn[1],nl=(0,c.useState)(null),ll=(0,t.Z)(nl,2),il=ll[0],tl=ll[1],al=(0,c.useState)({}),ol=(0,t.Z)(al,2),rl=ol[0],dl=ol[1],sl=function(e){dl((0,F.h)(rl,e))},cl=(0,c.useState)(!1),ul=(0,t.Z)(cl,2),vl=ul[0],ml=ul[1];(0,c.useEffect)((function(){var e=[];if(oe){var n,l,t,a,o,r,d,s,c,u,v,m,p,Z,x,g,y,f,h,_,j,k,b,C,N,w,F,R;if(e=[].concat((0,i.Z)(e),[{fieldKey:"replicas",required:!0,value:pe,customValidation:parseInt(pe)<1,customValidationMessage:"Replicas needs to be 1 or greater"},{fieldKey:"kes_securityContext_runAsUser",required:!0,value:Ne.runAsUser,customValidation:""===Ne.runAsUser||parseInt(Ne.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"kes_securityContext_runAsGroup",required:!0,value:Ne.runAsGroup,customValidation:""===Ne.runAsGroup||parseInt(Ne.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"kes_securityContext_fsGroup",required:!0,value:Ne.fsGroup,customValidation:""===Ne.fsGroup||parseInt(Ne.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]),Qe&&(e=[].concat((0,i.Z)(e),[{fieldKey:"serverKey",required:!1,value:(null===Ln||void 0===Ln?void 0:Ln.encoded_key)||""},{fieldKey:"serverCert",required:!1,value:(null===Ln||void 0===Ln?void 0:Ln.encoded_cert)||""},{fieldKey:"clientKey",required:!1,value:(null===mn||void 0===mn?void 0:mn.encoded_key)||""},{fieldKey:"clientCert",required:!1,value:(null===mn||void 0===mn?void 0:mn.encoded_cert)||""}])),"vault"===ce)e=[].concat((0,i.Z)(e),[{fieldKey:"vault_endpoint",required:!0,value:null===Re||void 0===Re?void 0:Re.endpoint},{fieldKey:"vault_id",required:!0,value:null===Re||void 0===Re||null===(n=Re.approle)||void 0===n?void 0:n.id},{fieldKey:"vault_secret",required:!0,value:null===Re||void 0===Re||null===(l=Re.approle)||void 0===l?void 0:l.secret},{fieldKey:"vault_ping",required:!1,value:null===Re||void 0===Re||null===(t=Re.status)||void 0===t?void 0:t.ping,customValidation:parseInt(null===Re||void 0===Re||null===(a=Re.status)||void 0===a?void 0:a.ping)<0,customValidationMessage:"Value needs to be 0 or greater"},{fieldKey:"vault_retry",required:!1,value:null===Re||void 0===Re||null===(o=Re.approle)||void 0===o?void 0:o.retry,customValidation:parseInt(null===Re||void 0===Re||null===(r=Re.approle)||void 0===r?void 0:r.retry)<0,customValidationMessage:"Value needs to be 0 or greater"}]);if("aws"===ce)e=[].concat((0,i.Z)(e),[{fieldKey:"aws_endpoint",required:!0,value:null===Ie||void 0===Ie||null===(d=Ie.secretsmanager)||void 0===d?void 0:d.endpoint},{fieldKey:"aws_region",required:!0,value:null===Ie||void 0===Ie||null===(s=Ie.secretsmanager)||void 0===s?void 0:s.region},{fieldKey:"aws_accessKey",required:!0,value:null===Ie||void 0===Ie||null===(c=Ie.secretsmanager)||void 0===c||null===(u=c.credentials)||void 0===u?void 0:u.accesskey},{fieldKey:"aws_secretKey",required:!0,value:null===Ie||void 0===Ie||null===(v=Ie.secretsmanager)||void 0===v||null===(m=v.credentials)||void 0===m?void 0:m.secretkey}]);if("gemalto"===ce)e=[].concat((0,i.Z)(e),[{fieldKey:"gemalto_endpoint",required:!0,value:null===Me||void 0===Me||null===(p=Me.keysecure)||void 0===p?void 0:p.endpoint},{fieldKey:"gemalto_token",required:!0,value:null===Me||void 0===Me||null===(Z=Me.keysecure)||void 0===Z||null===(x=Z.credentials)||void 0===x?void 0:x.token},{fieldKey:"gemalto_domain",required:!0,value:null===Me||void 0===Me||null===(g=Me.keysecure)||void 0===g||null===(y=g.credentials)||void 0===y?void 0:y.domain},{fieldKey:"gemalto_retry",required:!1,value:null===Me||void 0===Me||null===(f=Me.keysecure)||void 0===f||null===(h=f.credentials)||void 0===h?void 0:h.retry,customValidation:parseInt(null===Me||void 0===Me||null===(_=Me.keysecure)||void 0===_||null===(j=_.credentials)||void 0===j?void 0:j.retry)<0,customValidationMessage:"Value needs to be 0 or greater"}]);if("azure"===ce)e=[].concat((0,i.Z)(e),[{fieldKey:"azure_endpoint",required:!0,value:null===De||void 0===De||null===(k=De.keyvault)||void 0===k?void 0:k.endpoint},{fieldKey:"azure_tenant_id",required:!0,value:null===De||void 0===De||null===(b=De.keyvault)||void 0===b||null===(C=b.credentials)||void 0===C?void 0:C.tenant_id},{fieldKey:"azure_client_id",required:!0,value:null===De||void 0===De||null===(N=De.keyvault)||void 0===N||null===(w=N.credentials)||void 0===w?void 0:w.client_id},{fieldKey:"azure_client_secret",required:!0,value:null===De||void 0===De||null===(F=De.keyvault)||void 0===F||null===(R=F.credentials)||void 0===R?void 0:R.client_secret}])}var P=(0,S.R)(e);Nn(0===Object.keys(P).length),dl(P)}),[Qe,oe,ce,null===Ln||void 0===Ln?void 0:Ln.encoded_key,null===Ln||void 0===Ln?void 0:Ln.encoded_cert,null===mn||void 0===mn?void 0:mn.encoded_key,null===mn||void 0===mn?void 0:mn.encoded_cert,null===En||void 0===En?void 0:En.encoded_key,null===En||void 0===En?void 0:En.encoded_cert,null===Hn||void 0===Hn?void 0:Hn.encoded_key,null===Hn||void 0===Hn?void 0:Hn.encoded_cert,Ne,Re,Ie,Me,De,Ue,pe]);var pl=function(){je||(ke(!0),p.Z.invoke("GET","/api/v1/namespaces/".concat(null===le||void 0===le?void 0:le.namespace,"/tenants/").concat(null===le||void 0===le?void 0:le.name,"/encryption")).then((function(e){e.vault?(ue("vault"),Pe(e.vault),e.vault.tls&&(In(e.vault.tls.crt),Mn(e.vault.tls.ca))):e.aws?(ue("aws"),Be(e.aws)):e.gemalto?(ue("gemalto"),Te(e.gemalto),e.gemalto.keysecure.tls&&el(e.gemalto.keysecure.tls.ca)):e.gcp?(ue("gcp"),Oe(e.gcp)):e.azure&&(ue("azure"),Ve(e.azure)),re(!0),fe(e.image),Ze(e.replicas),e.securityContext&&we(e.securityContext),(e.server||e.mtls_client)&&$e(!0),e.server&&on(e.server),e.mtls_client&&cn(e.mtls_client),ke(!1)})).catch((function(e){console.log(e),ke(!1)})))};(0,c.useEffect)((function(){pl()}),[]);var Zl=function(e){yn([].concat((0,i.Z)(gn),[e.name])),e.name===(null===an||void 0===an?void 0:an.name)&&on(null),e.name===(null===sn||void 0===sn?void 0:sn.name)&&cn(null),e.name===(null===An||void 0===An?void 0:An.name)&&In(null),e.name===(null===qn||void 0===qn?void 0:qn.name)&&Mn(null),e.name===(null===Xn||void 0===Xn?void 0:Xn.name)&&el(null)};return(0,P.jsx)(c.Fragment,{children:(0,P.jsxs)(c.Fragment,{children:[vl&&(0,P.jsx)(R.Z,{isOpen:vl,title:oe?"Enable encryption at rest for tenant?":"Disable encryption at rest for tenant?",confirmText:oe?"Enable":"Disable",cancelText:"Cancel",onClose:function(){return ml(!1)},onConfirm:function(){var e,n,l,i,t,o,r,d,s,c,u,v,m,Z,x,g,y,f,h,_,j,k,b,C,N,w,F,S,R,P,K,A,I,B,z,q,M,T;if(oe){var G={};switch(ce){case"gemalto":var E={};null!==il&&void 0!==il&&il.encoded_cert&&(E={tls:{ca:null===il||void 0===il?void 0:il.encoded_cert}}),G={gemalto:{keysecure:(0,a.Z)({endpoint:(null===Me||void 0===Me||null===(e=Me.keysecure)||void 0===e?void 0:e.endpoint)||"",credentials:{token:(null===Me||void 0===Me||null===(n=Me.keysecure)||void 0===n||null===(l=n.credentials)||void 0===l?void 0:l.token)||"",domain:(null===Me||void 0===Me||null===(i=Me.keysecure)||void 0===i||null===(t=i.credentials)||void 0===t?void 0:t.domain)||"",retry:parseInt(null===Me||void 0===Me||null===(o=Me.keysecure)||void 0===o||null===(r=o.credentials)||void 0===r?void 0:r.retry)}},E)}};break;case"aws":G={aws:{secretsmanager:{endpoint:(null===Ie||void 0===Ie||null===(d=Ie.secretsmanager)||void 0===d?void 0:d.endpoint)||"",region:(null===Ie||void 0===Ie||null===(s=Ie.secretsmanager)||void 0===s?void 0:s.region)||"",kmskey:(null===Ie||void 0===Ie||null===(c=Ie.secretsmanager)||void 0===c?void 0:c.kmskey)||"",credentials:{accesskey:(null===Ie||void 0===Ie||null===(u=Ie.secretsmanager)||void 0===u||null===(v=u.credentials)||void 0===v?void 0:v.accesskey)||"",secretkey:(null===Ie||void 0===Ie||null===(m=Ie.secretsmanager)||void 0===m||null===(Z=m.credentials)||void 0===Z?void 0:Z.secretkey)||"",token:(null===Ie||void 0===Ie||null===(x=Ie.secretsmanager)||void 0===x||null===(g=x.credentials)||void 0===g?void 0:g.token)||""}}}};break;case"azure":G={azure:{keyvault:{endpoint:(null===De||void 0===De||null===(y=De.keyvault)||void 0===y?void 0:y.endpoint)||"",credentials:{tenant_id:(null===De||void 0===De||null===(f=De.keyvault)||void 0===f||null===(h=f.credentials)||void 0===h?void 0:h.tenant_id)||"",client_id:(null===De||void 0===De||null===(_=De.keyvault)||void 0===_||null===(j=_.credentials)||void 0===j?void 0:j.client_id)||"",client_secret:(null===De||void 0===De||null===(k=De.keyvault)||void 0===k||null===(b=k.credentials)||void 0===b?void 0:b.client_secret)||""}}}};break;case"gcp":G={gcp:{secretmanager:{project_id:(null===Ue||void 0===Ue||null===(C=Ue.secretmanager)||void 0===C?void 0:C.project_id)||"",endpoint:(null===Ue||void 0===Ue||null===(N=Ue.secretmanager)||void 0===N?void 0:N.endpoint)||"",credentials:{client_email:(null===Ue||void 0===Ue||null===(w=Ue.secretmanager)||void 0===w||null===(F=w.credentials)||void 0===F?void 0:F.client_email)||"",client_id:(null===Ue||void 0===Ue||null===(S=Ue.secretmanager)||void 0===S||null===(R=S.credentials)||void 0===R?void 0:R.client_id)||"",private_key_id:(null===Ue||void 0===Ue||null===(P=Ue.secretmanager)||void 0===P||null===(K=P.credentials)||void 0===K?void 0:K.private_key_id)||"",private_key:(null===Ue||void 0===Ue||null===(A=Ue.secretmanager)||void 0===A||null===(I=A.credentials)||void 0===I?void 0:I.private_key)||""}}}};break;case"vault":var D=null,V=null;null!==En&&void 0!==En&&En.encoded_key&&null!==En&&void 0!==En&&En.encoded_cert&&(D={key:null===En||void 0===En?void 0:En.encoded_key,crt:null===En||void 0===En?void 0:En.encoded_cert}),null!==Hn&&void 0!==Hn&&Hn.encoded_cert&&(V={ca:null===Hn||void 0===Hn?void 0:Hn.encoded_cert});var Y=null;(D||V)&&(Y={tls:(0,a.Z)((0,a.Z)({},D),V)}),G={vault:(0,a.Z)((0,a.Z)({endpoint:(null===Re||void 0===Re?void 0:Re.endpoint)||"",engine:(null===Re||void 0===Re?void 0:Re.engine)||"",namespace:(null===Re||void 0===Re?void 0:Re.namespace)||"",prefix:(null===Re||void 0===Re?void 0:Re.prefix)||"",approle:{engine:(null===Re||void 0===Re||null===(B=Re.approle)||void 0===B?void 0:B.engine)||"",id:(null===Re||void 0===Re||null===(z=Re.approle)||void 0===z?void 0:z.id)||"",secret:(null===Re||void 0===Re||null===(q=Re.approle)||void 0===q?void 0:q.secret)||"",retry:parseInt(null===Re||void 0===Re||null===(M=Re.approle)||void 0===M?void 0:M.retry)}},Y),{},{status:{ping:parseInt(null===Re||void 0===Re||null===(T=Re.status)||void 0===T?void 0:T.ping)}})}}var L={},U={};null!==mn&&void 0!==mn&&mn.encoded_key&&null!==mn&&void 0!==mn&&mn.encoded_cert&&(U={client:{key:null===mn||void 0===mn?void 0:mn.encoded_key,crt:null===mn||void 0===mn?void 0:mn.encoded_cert}}),null!==Ln&&void 0!==Ln&&Ln.encoded_key&&null!==Ln&&void 0!==Ln&&Ln.encoded_cert&&(L={server:{key:null===Ln||void 0===Ln?void 0:Ln.encoded_key,crt:null===Ln||void 0===Ln?void 0:Ln.encoded_cert}});var O=(0,a.Z)((0,a.Z)((0,a.Z)({secretsToBeDeleted:gn||[],replicas:pe,securityContext:Ne,image:ye},U),L),G);en||(nn(!0),p.Z.invoke("PUT","/api/v1/namespaces/".concat(null===le||void 0===le?void 0:le.namespace,"/tenants/").concat(null===le||void 0===le?void 0:le.name,"/encryption"),O).then((function(){ml(!1),nn(!1),pl()})).catch((function(e){nn(!1),ml(!1),ie(e)})))}else en||(nn(!0),p.Z.invoke("DELETE","/api/v1/namespaces/".concat(null===le||void 0===le?void 0:le.namespace,"/tenants/").concat(null===le||void 0===le?void 0:le.name,"/encryption"),{}).then((function(){pl(),nn(!1)})).catch((function(e){nn(!1),ie(e)})))},confirmationContent:(0,P.jsx)(h.Z,{children:oe?"Data will be encrypted using and external KMS":"Current encrypted information will not be accessible"})}),(0,P.jsx)("h1",{className:ne.sectionTitle,children:"Encryption"}),(0,P.jsx)("div",{className:ne.actionsTray,children:(0,P.jsx)(Z.Z,{label:"Encryption at rest",indicatorLabels:["Enabled","Disabled"],checked:oe,value:"tenant_encryption",id:"tenant-encryption",name:"tenant-encryption",onChange:function(e){re(!oe)},description:""})}),oe&&(0,P.jsx)(s.Z,{className:ne.paperWrapper,style:{marginBottom:15},children:(0,P.jsxs)(x.ZP,{container:!0,style:{},children:[(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.encryptionTypeOptions,children:(0,P.jsx)(f.Z,{currentSelection:ce,id:"encryptionType",name:"encryptionType",label:"Encryption Options",onChange:function(e){ue(e.target.value)},selectorOptions:[{label:"Vault",value:"vault"},{label:"AWS",value:"aws"},{label:"Gemalto",value:"gemalto"},{label:"GCP",value:"gcp"},{label:"Azure",value:"azure"}]})}),"vault"===ce&&(0,P.jsxs)(c.Fragment,{children:[(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"vault_endpoint",name:"vault_endpoint",onChange:function(e){return Pe((0,a.Z)((0,a.Z)({},Re),{},{endpoint:e.target.value}))},label:"Endpoint",value:(null===Re||void 0===Re?void 0:Re.endpoint)||"",error:rl.vault_ping||"",required:!0})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"vault_engine",name:"vault_engine",onChange:function(e){return Pe((0,a.Z)((0,a.Z)({},Re),{},{engine:e.target.value}))},label:"Engine",value:(null===Re||void 0===Re?void 0:Re.engine)||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"vault_namespace",name:"vault_namespace",onChange:function(e){return Pe((0,a.Z)((0,a.Z)({},Re),{},{namespace:e.target.value}))},label:"Namespace",value:(null===Re||void 0===Re?void 0:Re.namespace)||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"vault_prefix",name:"vault_prefix",onChange:function(e){return Pe((0,a.Z)((0,a.Z)({},Re),{},{prefix:e.target.value}))},label:"Prefix",value:(null===Re||void 0===Re?void 0:Re.prefix)||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,children:(0,P.jsxs)("fieldset",{className:ne.fieldGroup,children:[(0,P.jsx)("legend",{className:ne.descriptionText,children:"App Role"}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"vault_approle_engine",name:"vault_approle_engine",onChange:function(e){return Pe((0,a.Z)((0,a.Z)({},Re),{},{approle:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.approle),{},{engine:e.target.value})}))},label:"Engine",value:(null===Re||void 0===Re||null===(n=Re.approle)||void 0===n?void 0:n.engine)||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{type:_n?"text":"password",id:"vault_id",name:"vault_id",onChange:function(e){return Pe((0,a.Z)((0,a.Z)({},Re),{},{approle:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.approle),{},{id:e.target.value})}))},label:"AppRole ID",value:(null===Re||void 0===Re||null===(l=Re.approle)||void 0===l?void 0:l.id)||"",required:!0,error:rl.vault_id||"",overlayIcon:_n?(0,P.jsx)(N.Z,{}):(0,P.jsx)(w.Z,{}),overlayAction:function(){return jn(!_n)}})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{type:Sn?"text":"password",id:"vault_secret",name:"vault_secret",onChange:function(e){return Pe((0,a.Z)((0,a.Z)({},Re),{},{approle:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.approle),{},{secret:e.target.value})}))},label:"AppRole Secret",value:(null===Re||void 0===Re||null===(o=Re.approle)||void 0===o?void 0:o.secret)||"",required:!0,error:rl.vault_secret||"",overlayIcon:Sn?(0,P.jsx)(N.Z,{}):(0,P.jsx)(w.Z,{}),overlayAction:function(){return Rn(!Sn)}})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{type:"number",min:"0",id:"vault_retry",name:"vault_retry",onChange:function(e){return Pe((0,a.Z)((0,a.Z)({},Re),{},{approle:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.approle),{},{retry:e.target.value})}))},label:"Retry (Seconds)",error:rl.vault_retry||"",value:(null===Re||void 0===Re||null===(r=Re.approle)||void 0===r?void 0:r.retry)||""})})]})}),(0,P.jsxs)(x.ZP,{container:!0,className:ne.mutualTlsConfig,children:[(0,P.jsxs)("fieldset",{className:ne.fieldGroup,children:[(0,P.jsx)("legend",{className:ne.descriptionText,children:"Mutual TLS authentication with KMS (optional)"}),An?(0,P.jsx)(k.Z,{variant:"outlined",color:"primary",className:ne.certificateInfo,label:(0,P.jsxs)("div",{children:[(0,P.jsx)(_.Z,{variant:"subtitle1",display:"block",gutterBottom:!0,children:An.name}),(0,P.jsx)(_.Z,{className:ne.italic,variant:"caption",display:"block",gutterBottom:!0,children:An.domains&&An.domains.map((function(e){return(0,P.jsx)("div",{children:e})}))}),(0,P.jsx)(_.Z,{className:ne.bold,variant:"overline",gutterBottom:!0,children:"Expiry:\xa0"}),(0,P.jsx)(_.Z,{variant:"caption",gutterBottom:!0,children:(0,P.jsx)(C(),{format:"YYYY-MM-DD",children:An.expiry})})]}),onDelete:function(){return Zl(An)}},An.name):(0,P.jsxs)(c.Fragment,{children:[(0,P.jsx)(g.Z,{onChange:function(e,n){return Dn({encoded_key:e||"",id:(null===En||void 0===En?void 0:En.id)||"",key:n||"",cert:(null===En||void 0===En?void 0:En.cert)||"",encoded_cert:(null===En||void 0===En?void 0:En.encoded_cert)||""})},accept:".key,.pem",id:"vault_key",name:"vault_key",label:"Key",value:(null===En||void 0===En?void 0:En.key)||""}),(0,P.jsx)(g.Z,{onChange:function(e,n){return Dn({encoded_key:(null===En||void 0===En?void 0:En.encoded_key)||"",id:(null===En||void 0===En?void 0:En.id)||"",key:(null===En||void 0===En?void 0:En.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"vault_cert",name:"vault_cert",label:"Cert",value:(null===En||void 0===En?void 0:En.cert)||""})]})]}),(0,P.jsxs)("fieldset",{className:ne.fieldGroup,children:[(0,P.jsx)("legend",{className:ne.descriptionText,children:"KMS CA certificate (optional)"}),qn?(0,P.jsx)(k.Z,{variant:"outlined",color:"primary",className:ne.certificateInfo,label:(0,P.jsxs)("div",{children:[(0,P.jsx)(_.Z,{variant:"subtitle1",display:"block",gutterBottom:!0,children:qn.name}),(0,P.jsx)(_.Z,{className:ne.italic,variant:"caption",display:"block",gutterBottom:!0,children:qn.domains&&qn.domains.map((function(e){return(0,P.jsx)("div",{children:e})}))}),(0,P.jsx)(_.Z,{className:ne.bold,variant:"overline",gutterBottom:!0,children:"Expiry:\xa0"}),(0,P.jsx)(_.Z,{variant:"caption",gutterBottom:!0,children:(0,P.jsx)(C(),{format:"YYYY-MM-DD",children:qn.expiry})})]}),onDelete:function(){return Zl(qn)}},qn.name):(0,P.jsx)(g.Z,{onChange:function(e,n){return Qn({encoded_key:(null===Hn||void 0===Hn?void 0:Hn.encoded_key)||"",id:(null===Hn||void 0===Hn?void 0:Hn.id)||"",key:(null===Hn||void 0===Hn?void 0:Hn.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"vault_ca",name:"vault_ca",label:"CA",value:(null===Hn||void 0===Hn?void 0:Hn.cert)||""})]})]}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,style:{marginTop:15},children:(0,P.jsxs)("fieldset",{className:ne.fieldGroup,children:[(0,P.jsx)("legend",{className:ne.descriptionText,children:"Status"}),(0,P.jsx)(y.Z,{type:"number",min:"0",id:"vault_ping",name:"vault_ping",onChange:function(e){return Pe((0,a.Z)((0,a.Z)({},Re),{},{status:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.status),{},{ping:e.target.value})}))},label:"Ping (Seconds)",error:rl.vault_ping||"",value:(null===Re||void 0===Re||null===(d=Re.status)||void 0===d?void 0:d.ping)||""})]})})]}),"azure"===ce&&(0,P.jsxs)(c.Fragment,{children:[(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"azure_endpoint",name:"azure_endpoint",onChange:function(e){return Ve((0,a.Z)((0,a.Z)({},De),{},{keyvault:(0,a.Z)((0,a.Z)({},null===De||void 0===De?void 0:De.keyvault),{},{endpoint:e.target.value})}))},label:"Endpoint",error:rl.azure_endpoint||"",value:(null===De||void 0===De||null===(u=De.keyvault)||void 0===u?void 0:u.endpoint)||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,children:(0,P.jsxs)("fieldset",{className:ne.fieldGroup,children:[(0,P.jsx)("legend",{className:ne.descriptionText,children:"Credentials"}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"azure_tenant_id",name:"azure_tenant_id",onChange:function(e){var n;return Ve((0,a.Z)((0,a.Z)({},De),{},{keyvault:(0,a.Z)((0,a.Z)({},null===De||void 0===De?void 0:De.keyvault),{},{credentials:(0,a.Z)((0,a.Z)({},null===De||void 0===De||null===(n=De.keyvault)||void 0===n?void 0:n.credentials),{},{tenant_id:e.target.value})})}))},label:"Tenant ID",value:(null===De||void 0===De||null===(v=De.keyvault)||void 0===v||null===(m=v.credentials)||void 0===m?void 0:m.tenant_id)||"",error:rl.azure_tenant_id||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"azure_client_id",name:"azure_client_id",onChange:function(e){var n;return Ve((0,a.Z)((0,a.Z)({},De),{},{keyvault:(0,a.Z)((0,a.Z)({},null===De||void 0===De?void 0:De.keyvault),{},{credentials:(0,a.Z)((0,a.Z)({},null===De||void 0===De||null===(n=De.keyvault)||void 0===n?void 0:n.credentials),{},{client_id:e.target.value})})}))},label:"Client ID",value:(null===De||void 0===De||null===(b=De.keyvault)||void 0===b||null===(K=b.credentials)||void 0===K?void 0:K.client_id)||"",error:rl.azure_client_id||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"azure_client_secret",name:"azure_client_secret",onChange:function(e){var n;return Ve((0,a.Z)((0,a.Z)({},De),{},{keyvault:(0,a.Z)((0,a.Z)({},null===De||void 0===De?void 0:De.keyvault),{},{credentials:(0,a.Z)((0,a.Z)({},null===De||void 0===De||null===(n=De.keyvault)||void 0===n?void 0:n.credentials),{},{client_secret:e.target.value})})}))},label:"Client Secret",value:(null===De||void 0===De||null===(A=De.keyvault)||void 0===A||null===(I=A.credentials)||void 0===I?void 0:I.client_secret)||"",error:rl.azure_client_secret||""})})]})})]}),"gcp"===ce&&(0,P.jsxs)(c.Fragment,{children:[(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"gcp_project_id",name:"gcp_project_id",onChange:function(e){return Oe((0,a.Z)((0,a.Z)({},Ue),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Ue||void 0===Ue?void 0:Ue.secretmanager),{},{project_id:e.target.value})}))},label:"Project ID",value:(null===Ue||void 0===Ue?void 0:Ue.secretmanager.project_id)||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"gcp_endpoint",name:"gcp_endpoint",onChange:function(e){return Oe((0,a.Z)((0,a.Z)({},Ue),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Ue||void 0===Ue?void 0:Ue.secretmanager),{},{endpoint:e.target.value})}))},label:"Endpoint",value:(null===Ue||void 0===Ue?void 0:Ue.secretmanager.endpoint)||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,children:(0,P.jsxs)("fieldset",{className:ne.fieldGroup,children:[(0,P.jsx)("legend",{className:ne.descriptionText,children:"Credentials"}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"gcp_client_email",name:"gcp_client_email",onChange:function(e){return Oe((0,a.Z)((0,a.Z)({},Ue),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Ue||void 0===Ue?void 0:Ue.secretmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ue||void 0===Ue?void 0:Ue.secretmanager.credentials),{},{client_email:e.target.value})})}))},label:"Client Email",value:(null===Ue||void 0===Ue||null===(B=Ue.secretmanager.credentials)||void 0===B?void 0:B.client_email)||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"gcp_client_id",name:"gcp_client_id",onChange:function(e){return Oe((0,a.Z)((0,a.Z)({},Ue),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Ue||void 0===Ue?void 0:Ue.secretmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ue||void 0===Ue?void 0:Ue.secretmanager.credentials),{},{client_id:e.target.value})})}))},label:"Client ID",value:(null===Ue||void 0===Ue||null===(z=Ue.secretmanager.credentials)||void 0===z?void 0:z.client_id)||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"gcp_private_key_id",name:"gcp_private_key_id",onChange:function(e){return Oe((0,a.Z)((0,a.Z)({},Ue),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Ue||void 0===Ue?void 0:Ue.secretmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ue||void 0===Ue?void 0:Ue.secretmanager.credentials),{},{private_key_id:e.target.value})})}))},label:"Private Key ID",value:(null===Ue||void 0===Ue||null===(q=Ue.secretmanager.credentials)||void 0===q?void 0:q.private_key_id)||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"gcp_private_key",name:"gcp_private_key",onChange:function(e){return Oe((0,a.Z)((0,a.Z)({},Ue),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Ue||void 0===Ue?void 0:Ue.secretmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ue||void 0===Ue?void 0:Ue.secretmanager.credentials),{},{private_key:e.target.value})})}))},label:"Private Key",value:(null===Ue||void 0===Ue||null===(M=Ue.secretmanager.credentials)||void 0===M?void 0:M.private_key)||""})})]})})]}),"aws"===ce&&(0,P.jsxs)(c.Fragment,{children:[(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"aws_endpoint",name:"aws_endpoint",onChange:function(e){return Be((0,a.Z)((0,a.Z)({},Ie),{},{secretsmanager:(0,a.Z)((0,a.Z)({},null===Ie||void 0===Ie?void 0:Ie.secretsmanager),{},{endpoint:e.target.value})}))},label:"Endpoint",value:(null===Ie||void 0===Ie||null===(T=Ie.secretsmanager)||void 0===T?void 0:T.endpoint)||"",required:!0,error:rl.aws_endpoint||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"aws_region",name:"aws_region",onChange:function(e){return Be((0,a.Z)((0,a.Z)({},Ie),{},{secretsmanager:(0,a.Z)((0,a.Z)({},null===Ie||void 0===Ie?void 0:Ie.secretsmanager),{},{region:e.target.value})}))},label:"Region",value:(null===Ie||void 0===Ie||null===(G=Ie.secretsmanager)||void 0===G?void 0:G.region)||"",error:rl.aws_region||"",required:!0})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"aws_kmsKey",name:"aws_kmsKey",onChange:function(e){return Be((0,a.Z)((0,a.Z)({},Ie),{},{secretsmanager:(0,a.Z)((0,a.Z)({},null===Ie||void 0===Ie?void 0:Ie.secretsmanager),{},{kmskey:e.target.value})}))},label:"KMS Key",value:(null===Ie||void 0===Ie||null===(E=Ie.secretsmanager)||void 0===E?void 0:E.kmskey)||""})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,children:(0,P.jsxs)("fieldset",{className:ne.fieldGroup,children:[(0,P.jsx)("legend",{className:ne.descriptionText,children:"Credentials"}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"aws_accessKey",name:"aws_accessKey",onChange:function(e){var n;return Be((0,a.Z)((0,a.Z)({},Ie),{},{secretsmanager:(0,a.Z)((0,a.Z)({},null===Ie||void 0===Ie?void 0:Ie.secretsmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ie||void 0===Ie||null===(n=Ie.secretsmanager)||void 0===n?void 0:n.credentials),{},{accesskey:e.target.value})})}))},label:"Access Key",value:(null===Ie||void 0===Ie||null===(D=Ie.secretsmanager)||void 0===D||null===(V=D.credentials)||void 0===V?void 0:V.accesskey)||"",error:rl.aws_accessKey||"",required:!0})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"aws_secretKey",name:"aws_secretKey",onChange:function(e){var n;return Be((0,a.Z)((0,a.Z)({},Ie),{},{secretsmanager:(0,a.Z)((0,a.Z)({},null===Ie||void 0===Ie?void 0:Ie.secretsmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ie||void 0===Ie||null===(n=Ie.secretsmanager)||void 0===n?void 0:n.credentials),{},{secretkey:e.target.value})})}))},label:"Secret Key",value:(null===Ie||void 0===Ie||null===(Y=Ie.secretsmanager)||void 0===Y||null===(L=Y.credentials)||void 0===L?void 0:L.secretkey)||"",error:rl.aws_secretKey||"",required:!0})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"aws_token",name:"aws_token",onChange:function(e){var n;return Be((0,a.Z)((0,a.Z)({},Ie),{},{secretsmanager:(0,a.Z)((0,a.Z)({},null===Ie||void 0===Ie?void 0:Ie.secretsmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ie||void 0===Ie||null===(n=Ie.secretsmanager)||void 0===n?void 0:n.credentials),{},{token:e.target.value})})}))},label:"Token",value:(null===Ie||void 0===Ie||null===(U=Ie.secretsmanager)||void 0===U||null===(O=U.credentials)||void 0===O?void 0:O.token)||""})})]})})]}),"gemalto"===ce&&(0,P.jsxs)(c.Fragment,{children:[(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"gemalto_endpoint",name:"gemalto_endpoint",onChange:function(e){return Te((0,a.Z)((0,a.Z)({},Me),{},{keysecure:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me?void 0:Me.keysecure),{},{endpoint:e.target.value})}))},label:"Endpoint",value:(null===Me||void 0===Me||null===(W=Me.keysecure)||void 0===W?void 0:W.endpoint)||"",error:rl.gemalto_endpoint||"",required:!0})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,P.jsxs)("fieldset",{className:ne.fieldGroup,children:[(0,P.jsx)("legend",{className:ne.descriptionText,children:"Credentials"}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"gemalto_token",name:"gemalto_token",onChange:function(e){var n;return Te((0,a.Z)((0,a.Z)({},Me),{},{keysecure:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me?void 0:Me.keysecure),{},{credentials:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me||null===(n=Me.keysecure)||void 0===n?void 0:n.credentials),{},{token:e.target.value})})}))},label:"Token",value:(null===Me||void 0===Me||null===(H=Me.keysecure)||void 0===H||null===(Q=H.credentials)||void 0===Q?void 0:Q.token)||"",error:rl.gemalto_token||"",required:!0})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{id:"gemalto_domain",name:"gemalto_domain",onChange:function(e){var n;return Te((0,a.Z)((0,a.Z)({},Me),{},{keysecure:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me?void 0:Me.keysecure),{},{credentials:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me||null===(n=Me.keysecure)||void 0===n?void 0:n.credentials),{},{domain:e.target.value})})}))},label:"Domain",value:(null===Me||void 0===Me||null===($=Me.keysecure)||void 0===$||null===(J=$.credentials)||void 0===J?void 0:J.domain)||"",error:rl.gemalto_domain||"",required:!0})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.formFieldRow,children:(0,P.jsx)(y.Z,{type:"number",min:"0",id:"gemalto_retry",name:"gemalto_retry",onChange:function(e){var n;return Te((0,a.Z)((0,a.Z)({},Me),{},{keysecure:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me?void 0:Me.keysecure),{},{credentials:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me||null===(n=Me.keysecure)||void 0===n?void 0:n.credentials),{},{retry:e.target.value})})}))},label:"Retry (seconds)",value:(null===Me||void 0===Me||null===(X=Me.keysecure)||void 0===X||null===(ee=X.credentials)||void 0===ee?void 0:ee.retry)||"",error:rl.gemalto_retry||""})})]})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,P.jsxs)("fieldset",{className:ne.fieldGroup,children:[(0,P.jsx)("legend",{className:ne.descriptionText,children:"Custom CA Root certificate verification"}),(0,P.jsx)(g.Z,{onChange:function(e,n){},accept:".cer,.crt,.cert,.pem",id:"gemalto_ca",name:"gemalto_ca",label:"CA",value:""}),Xn?(0,P.jsx)(k.Z,{variant:"outlined",color:"primary",className:ne.certificateInfo,label:(0,P.jsxs)("div",{children:[(0,P.jsx)(_.Z,{variant:"subtitle1",display:"block",gutterBottom:!0,children:Xn.name}),(0,P.jsx)(_.Z,{className:ne.italic,variant:"caption",display:"block",gutterBottom:!0,children:Xn.domains&&Xn.domains.map((function(e){return(0,P.jsx)("div",{children:e})}))}),(0,P.jsx)(_.Z,{className:ne.bold,variant:"overline",gutterBottom:!0,children:"Expiry:\xa0"}),(0,P.jsx)(_.Z,{variant:"caption",gutterBottom:!0,children:(0,P.jsx)(C(),{format:"YYYY-MM-DD",children:Xn.expiry})})]}),onDelete:function(){return Zl(Xn)}},Xn.name):(0,P.jsx)(g.Z,{onChange:function(e,n){return tl({encoded_key:(null===il||void 0===il?void 0:il.encoded_key)||"",id:(null===il||void 0===il?void 0:il.id)||"",key:(null===il||void 0===il?void 0:il.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"gemalto_ca",name:"gemalto_ca",label:"CA",value:(null===il||void 0===il?void 0:il.cert)||""})]})})]}),(0,P.jsx)("div",{className:ne.headerElement,children:(0,P.jsx)("h4",{className:ne.h3Section,children:"Additional Configurations"})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,children:(0,P.jsx)(Z.Z,{value:"enableCustomCertsForKES",id:"enableCustomCertsForKES",name:"enableCustomCertsForKES",checked:Qe,onChange:function(e){return $e(!Qe)},label:"Custom Certificates"})}),Qe&&(0,P.jsxs)(c.Fragment,{children:[(0,P.jsx)(x.ZP,{container:!0,children:(0,P.jsx)(x.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,P.jsxs)("fieldset",{className:ne.fieldGroup,children:[(0,P.jsx)("legend",{className:ne.descriptionText,children:"Encryption Service Certificates"}),an?(0,P.jsx)(k.Z,{variant:"outlined",color:"primary",className:ne.certificateInfo,label:(0,P.jsxs)("div",{children:[(0,P.jsx)(_.Z,{variant:"subtitle1",display:"block",gutterBottom:!0,children:an.name}),(0,P.jsx)(_.Z,{className:ne.italic,variant:"caption",display:"block",gutterBottom:!0,children:an.domains&&an.domains.map((function(e){return(0,P.jsx)("div",{children:e})}))}),(0,P.jsx)(_.Z,{className:ne.bold,variant:"overline",gutterBottom:!0,children:"Expiry:\xa0"}),(0,P.jsx)(_.Z,{variant:"caption",gutterBottom:!0,children:(0,P.jsx)(C(),{format:"YYYY-MM-DD",children:an.expiry})})]}),onDelete:function(){return Zl(an)}},an.name):(0,P.jsxs)(c.Fragment,{children:[(0,P.jsx)(g.Z,{onChange:function(e,n){Un({encoded_key:e||"",id:(null===Ln||void 0===Ln?void 0:Ln.id)||"",key:n||"",cert:(null===Ln||void 0===Ln?void 0:Ln.cert)||"",encoded_cert:(null===Ln||void 0===Ln?void 0:Ln.encoded_cert)||""}),sl("serverKey")},accept:".key,.pem",id:"serverKey",name:"serverKey",label:"Key",value:null===Ln||void 0===Ln?void 0:Ln.key}),(0,P.jsx)(g.Z,{onChange:function(e,n){Un({encoded_key:(null===Ln||void 0===Ln?void 0:Ln.encoded_key)||"",id:(null===Ln||void 0===Ln?void 0:Ln.id)||"",key:(null===Ln||void 0===Ln?void 0:Ln.key)||"",cert:n||"",encoded_cert:e||""}),sl("serverCert")},accept:".cer,.crt,.cert,.pem",id:"serverCert",name:"serverCert",label:"Cert",value:null===Ln||void 0===Ln?void 0:Ln.cert})]})]})})}),(0,P.jsx)(x.ZP,{container:!0,style:{marginBottom:15},children:(0,P.jsx)(x.ZP,{item:!0,xs:12,children:(0,P.jsxs)("fieldset",{className:ne.fieldGroup,children:[(0,P.jsx)("legend",{className:ne.descriptionText,children:"Mutual TLS authentication with MinIO"}),sn?(0,P.jsx)(k.Z,{variant:"outlined",color:"primary",className:ne.certificateInfo,label:(0,P.jsxs)("div",{children:[(0,P.jsx)(_.Z,{variant:"subtitle1",display:"block",gutterBottom:!0,children:sn.name}),(0,P.jsx)(_.Z,{className:ne.italic,variant:"caption",display:"block",gutterBottom:!0,children:sn.domains&&sn.domains.map((function(e){return(0,P.jsx)("div",{children:e})}))}),(0,P.jsx)(_.Z,{className:ne.bold,variant:"overline",gutterBottom:!0,children:"Expiry:\xa0"}),(0,P.jsx)(_.Z,{variant:"caption",gutterBottom:!0,children:(0,P.jsx)(C(),{format:"YYYY-MM-DD",children:sn.expiry})})]}),onDelete:function(){return Zl(sn)}},sn.name):(0,P.jsxs)(c.Fragment,{children:[(0,P.jsx)(g.Z,{onChange:function(e,n){pn({encoded_key:e||"",id:(null===mn||void 0===mn?void 0:mn.id)||"",key:n||"",cert:(null===mn||void 0===mn?void 0:mn.cert)||"",encoded_cert:(null===mn||void 0===mn?void 0:mn.encoded_cert)||""}),sl("clientKey")},accept:".key,.pem",id:"clientKey",name:"clientKey",label:"Key",value:null===mn||void 0===mn?void 0:mn.key}),(0,P.jsx)(g.Z,{onChange:function(e,n){pn({encoded_key:(null===mn||void 0===mn?void 0:mn.encoded_key)||"",id:(null===mn||void 0===mn?void 0:mn.id)||"",key:(null===mn||void 0===mn?void 0:mn.key)||"",cert:n||"",encoded_cert:e||""}),sl("clientCert")},accept:".cer,.crt,.cert,.pem",id:"clientCert",name:"clientCert",label:"Cert",value:null===mn||void 0===mn?void 0:mn.cert})]})]})})})]}),(0,P.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,P.jsx)(x.ZP,{item:!0,xs:12,classes:ne.formFieldRow,children:(0,P.jsx)(y.Z,{type:"text",id:"image",name:"image",onChange:function(e){return fe(e.target.value)},label:"Image",placeholder:"minio/kes:v0.17.6",value:ye})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,classes:ne.formFieldRow,children:(0,P.jsx)(y.Z,{type:"number",min:"1",id:"replicas",name:"replicas",onChange:function(e){return Ze(e.target.value)},label:"Replicas",value:pe,required:!0,error:rl.replicas||""})}),(0,P.jsxs)("fieldset",{className:ne.fieldGroup,style:{marginTop:15},children:[(0,P.jsx)("legend",{className:ne.descriptionText,children:"SecurityContext for KES pods"}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.kesSecurityContext,children:(0,P.jsxs)("div",{className:"".concat(ne.multiContainer," ").concat(ne.responsiveContainer),children:[(0,P.jsx)("div",{className:"".concat(ne.formFieldRow," ").concat(ne.rightSpacer),children:(0,P.jsx)(y.Z,{type:"number",id:"kes_securityContext_runAsUser",name:"kes_securityContext_runAsUser",onChange:function(e){we((0,a.Z)((0,a.Z)({},Ne),{},{runAsUser:e.target.value}))},label:"Run As User",value:Ne.runAsUser,required:!0,error:rl.kes_securityContext_runAsUser||"",min:"0"})}),(0,P.jsx)("div",{className:"".concat(ne.formFieldRow," ").concat(ne.rightSpacer),children:(0,P.jsx)(y.Z,{type:"number",id:"kes_securityContext_runAsGroup",name:"kes_securityContext_runAsGroup",onChange:function(e){we((0,a.Z)((0,a.Z)({},Ne),{},{runAsGroup:e.target.value}))},label:"Run As Group",value:Ne.runAsGroup,required:!0,error:rl.kes_securityContext_runAsGroup||"",min:"0"})}),(0,P.jsx)("div",{className:"".concat(ne.formFieldRow," ").concat(ne.rightSpacer),children:(0,P.jsx)(y.Z,{type:"number",id:"kes_securityContext_fsGroup",name:"kes_securityContext_fsGroup",onChange:function(e){we((0,a.Z)((0,a.Z)({},Ne),{},{fsGroup:e.target.value}))},label:"FsGroup",value:Ne.fsGroup,required:!0,error:rl.kes_securityContext_fsGroup||"",min:"0"})})]})}),(0,P.jsx)("br",{}),(0,P.jsx)(x.ZP,{item:!0,xs:12,children:(0,P.jsx)("div",{className:ne.multiContainer,children:(0,P.jsx)(Z.Z,{value:"kesSecurityContextRunAsNonRoot",id:"kes_securityContext_runAsNonRoot",name:"kes_securityContext_runAsNonRoot",checked:Ne.runAsNonRoot,onChange:function(e){var n=e.target.checked;we((0,a.Z)((0,a.Z)({},Ne),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})]})]})}),(0,P.jsx)(x.ZP,{item:!0,xs:12,className:ne.buttonContainer,children:(0,P.jsx)(j.Z,{type:"submit",variant:"contained",color:"primary",disabled:!Cn,onClick:function(){return ml(!0)},children:"Save"})})]})})})))},22512:function(e,n,l){var i=l(72791),t=l(20890),a=l(11135),o=l(25787),r=l(80184);n.Z=(0,o.Z)((function(e){var n;return(0,a.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,l=e.errorMessage,a=e.withBreak,o=void 0===a||a;return(0,r.jsxs)(i.Fragment,{children:[o&&(0,r.jsx)("br",{}),(0,r.jsx)(t.Z,{component:"p",variant:"body1",className:n.errorBlock,children:l})]})}))},99663:function(e,n,l){var i=l(95318);n.Z=void 0;var t=i(l(45649)),a=l(80184),o=(0,t.default)((0,a.jsx)("path",{d:"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"}),"AttachFile");n.Z=o},86711:function(e,n,l){var i=l(95318);n.Z=void 0;var t=i(l(45649)),a=l(80184),o=(0,t.default)((0,a.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");n.Z=o},29823:function(e,n,l){var i=l(95318);n.Z=void 0;var t=i(l(45649)),a=l(80184),o=(0,t.default)((0,a.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");n.Z=o},3579:function(e,n,l){var i=l(95318);n.Z=void 0;var t=i(l(45649)),a=l(80184),o=(0,t.default)((0,a.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"RemoveRedEye");n.Z=o},20165:function(e,n,l){var i=l(95318);n.Z=void 0;var t=i(l(45649)),a=l(80184),o=(0,t.default)((0,a.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");n.Z=o}}]); -//# sourceMappingURL=6683.0395331a.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6683.0395331a.chunk.js.map b/portal-ui/build/static/js/6683.0395331a.chunk.js.map deleted file mode 100644 index 954d7b958..000000000 --- a/portal-ui/build/static/js/6683.0395331a.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/6683.0395331a.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/FormComponents/RadioGroupSelector/RadioGroupSelector.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Tenants/TenantDetails/TenantEncryption.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/AttachFile.js","../node_modules/@mui/icons-material/Cancel.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/RemoveRedEye.js","../node_modules/@mui/icons-material/VisibilityOff.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, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n
    \n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
    \n ) : (\n
    \n
    {value}
    \n {\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
    \n )}\n \n
    \n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Radio, { RadioProps } from \"@mui/material/Radio\";\nimport { InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { fieldBasic, radioIcons, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\n\nexport interface SelectorTypes {\n label: string;\n value: string;\n}\n\ninterface RadioGroupProps {\n selectorOptions: SelectorTypes[];\n currentSelection: string;\n label: string;\n id: string;\n name: string;\n tooltip?: string;\n disableOptions?: boolean;\n onChange: (e: React.ChangeEvent) => void;\n classes: any;\n displayInColumn?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n optionLabel: {\n \"&.Mui-disabled\": {\n \"& .MuiFormControlLabel-label\": {\n color: \"#9c9c9c\",\n },\n },\n \"&:last-child\": {\n marginRight: 0,\n },\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n },\n },\n checkedOption: {\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n fontWeight: 700,\n },\n },\n });\n\nconst radioStyles = makeStyles({\n root: {\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n ...radioIcons,\n});\n\nconst RadioButton = (props: RadioProps) => {\n const classes = radioStyles();\n\n return (\n }\n icon={}\n {...props}\n />\n );\n};\n\nexport const RadioGroupSelector = ({\n selectorOptions = [],\n currentSelection,\n label,\n id,\n name,\n onChange,\n tooltip = \"\",\n disableOptions = false,\n classes,\n displayInColumn = false,\n}: RadioGroupProps) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n
    \n \n \n {selectorOptions.map((selectorOption) => {\n return (\n }\n label={selectorOption.label}\n disabled={disableOptions}\n className={clsx(classes.optionLabel, {\n [classes.checkedOption]:\n selectorOption.value === currentSelection,\n })}\n />\n );\n })}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(RadioGroupSelector);\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\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 { ITenant } from \"../ListTenants/types\";\nimport {\n ICertificateInfo,\n ITenantEncryptionResponse,\n ISecurityContext,\n} from \"../types\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n spacingUtils,\n tenantDetailsStyles,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport Paper from \"@mui/material/Paper\";\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { connect } from \"react-redux\";\nimport { AppState } from \"../../../../store\";\nimport { setTenantDetailsLoad } from \"../actions\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport FileSelector from \"../../Common/FormComponents/FileSelector/FileSelector\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { Button, DialogContentText, Typography } from \"@mui/material\";\nimport Chip from \"@mui/material/Chip\";\nimport Moment from \"react-moment\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport { KeyPair } from \"../ListTenants/utils\";\nimport { clearValidationError } from \"../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\n\ninterface ITenantEncryption {\n classes: any;\n loadingTenant: boolean;\n tenant: ITenant | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...spacingUtils,\n loaderAlign: {\n textAlign: \"center\",\n },\n title: {\n marginTop: 35,\n },\n bold: { fontWeight: \"bold\" },\n italic: { fontStyle: \"italic\" },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n },\n certificateInfo: {\n height: \"auto\",\n margin: 5,\n },\n fileItem: {\n marginRight: 10,\n display: \"flex\",\n \"& div label\": {\n minWidth: 50,\n },\n\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n certInputRow: {\n display: \"flex\",\n alignItems: \"center\",\n borderBottom: \"1px solid #eaeaea\",\n marginBottom: 10,\n },\n caCertsRow: {\n borderBottom: \"1px solid #eaeaea\",\n display: \"flex\",\n alignItems: \"center\",\n marginBottom: 10,\n },\n ...containerForHeader(theme.spacing(4)),\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst TenantEncryption = ({\n classes,\n tenant,\n setErrorSnackMessage,\n}: ITenantEncryption) => {\n const [encryptionEnabled, setEncryptionEnabled] = useState(false);\n const [encryptionType, setEncryptionType] = useState(\"vault\");\n const [replicas, setReplicas] = useState(\"2\");\n const [image, setImage] = useState(\"\");\n const [refreshEncryptionInfo, setRefreshEncryptionInfo] =\n useState(false);\n const [securityContext, setSecurityContext] = useState({\n fsGroup: \"1000\",\n runAsGroup: \"1000\",\n runAsNonRoot: true,\n runAsUser: \"1000\",\n });\n const [vaultConfiguration, setVaultConfiguration] = useState(null);\n const [awsConfiguration, setAWSConfiguration] = useState(null);\n const [gemaltoConfiguration, setGemaltoConfiguration] = useState(null);\n const [azureConfiguration, setAzureConfiguration] = useState(null);\n const [gcpConfiguration, setGCPConfiguration] = useState(null);\n const [enabledCustomCertificates, setEnabledCustomCertificates] =\n useState(false);\n const [updatingEncryption, setUpdatingEncryption] = useState(false);\n const [serverTLSCertificateSecret, setServerTLSCertificateSecret] =\n useState(null);\n const [mTLSCertificateSecret, setMTLSCertificateSecret] =\n useState(null);\n const [mTLSCertificate, setMTLSCertificate] = useState(null);\n const [certificatesToBeRemoved, setCertificatesToBeRemoved] = useState<\n string[]\n >([]);\n const [showVaultAppRoleID, setShowVaultAppRoleID] = useState(false);\n const [isFormValid, setIsFormValid] = useState(false);\n const [showVaultAppRoleSecret, setShowVaultAppRoleSecret] =\n useState(false);\n const [vaultClientCertificateSecret, setVaultClientCertificateSecret] =\n useState(null);\n const [vaultCACertificateSecret, setVaultCACertificateSecret] =\n useState(null);\n const [vaultClientCertificate, setVaultClientCertificate] =\n useState(null);\n const [serverCertificate, setServerCertificate] = useState(\n null\n );\n const [vaultCACertificate, setVaultCACertificate] = useState(\n null\n );\n const [gemaltoCACertificateSecret, setGemaltoCACertificateSecret] =\n useState(null);\n const [gemaltoCACertificate, setGemaltotCACertificate] =\n useState(null);\n const [validationErrors, setValidationErrors] = useState({});\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n const [confirmOpen, setConfirmOpen] = useState(false);\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (encryptionEnabled) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"replicas\",\n required: true,\n value: replicas,\n customValidation: parseInt(replicas) < 1,\n customValidationMessage: \"Replicas needs to be 1 or greater\",\n },\n {\n fieldKey: \"kes_securityContext_runAsUser\",\n required: true,\n value: securityContext.runAsUser,\n customValidation:\n securityContext.runAsUser === \"\" ||\n parseInt(securityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_runAsGroup\",\n required: true,\n value: securityContext.runAsGroup,\n customValidation:\n securityContext.runAsGroup === \"\" ||\n parseInt(securityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_fsGroup\",\n required: true,\n value: securityContext.fsGroup,\n customValidation:\n securityContext.fsGroup === \"\" ||\n parseInt(securityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n\n if (enabledCustomCertificates) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"serverKey\",\n required: false,\n value: serverCertificate?.encoded_key || \"\",\n },\n {\n fieldKey: \"serverCert\",\n required: false,\n value: serverCertificate?.encoded_cert || \"\",\n },\n {\n fieldKey: \"clientKey\",\n required: false,\n value: mTLSCertificate?.encoded_key || \"\",\n },\n {\n fieldKey: \"clientCert\",\n required: false,\n value: mTLSCertificate?.encoded_cert || \"\",\n },\n ];\n }\n\n if (encryptionType === \"vault\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"vault_endpoint\",\n required: true,\n value: vaultConfiguration?.endpoint,\n },\n {\n fieldKey: \"vault_id\",\n required: true,\n value: vaultConfiguration?.approle?.id,\n },\n {\n fieldKey: \"vault_secret\",\n required: true,\n value: vaultConfiguration?.approle?.secret,\n },\n {\n fieldKey: \"vault_ping\",\n required: false,\n value: vaultConfiguration?.status?.ping,\n customValidation: parseInt(vaultConfiguration?.status?.ping) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n {\n fieldKey: \"vault_retry\",\n required: false,\n value: vaultConfiguration?.approle?.retry,\n customValidation: parseInt(vaultConfiguration?.approle?.retry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n if (encryptionType === \"aws\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"aws_endpoint\",\n required: true,\n value: awsConfiguration?.secretsmanager?.endpoint,\n },\n {\n fieldKey: \"aws_region\",\n required: true,\n value: awsConfiguration?.secretsmanager?.region,\n },\n {\n fieldKey: \"aws_accessKey\",\n required: true,\n value: awsConfiguration?.secretsmanager?.credentials?.accesskey,\n },\n {\n fieldKey: \"aws_secretKey\",\n required: true,\n value: awsConfiguration?.secretsmanager?.credentials?.secretkey,\n },\n ];\n }\n\n if (encryptionType === \"gemalto\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"gemalto_endpoint\",\n required: true,\n value: gemaltoConfiguration?.keysecure?.endpoint,\n },\n {\n fieldKey: \"gemalto_token\",\n required: true,\n value: gemaltoConfiguration?.keysecure?.credentials?.token,\n },\n {\n fieldKey: \"gemalto_domain\",\n required: true,\n value: gemaltoConfiguration?.keysecure?.credentials?.domain,\n },\n {\n fieldKey: \"gemalto_retry\",\n required: false,\n value: gemaltoConfiguration?.keysecure?.credentials?.retry,\n customValidation:\n parseInt(gemaltoConfiguration?.keysecure?.credentials?.retry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n if (encryptionType === \"azure\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"azure_endpoint\",\n required: true,\n value: azureConfiguration?.keyvault?.endpoint,\n },\n {\n fieldKey: \"azure_tenant_id\",\n required: true,\n value: azureConfiguration?.keyvault?.credentials?.tenant_id,\n },\n {\n fieldKey: \"azure_client_id\",\n required: true,\n value: azureConfiguration?.keyvault?.credentials?.client_id,\n },\n {\n fieldKey: \"azure_client_secret\",\n required: true,\n value: azureConfiguration?.keyvault?.credentials?.client_secret,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n setIsFormValid(Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n enabledCustomCertificates,\n encryptionEnabled,\n encryptionType,\n serverCertificate?.encoded_key,\n serverCertificate?.encoded_cert,\n mTLSCertificate?.encoded_key,\n mTLSCertificate?.encoded_cert,\n vaultClientCertificate?.encoded_key,\n vaultClientCertificate?.encoded_cert,\n vaultCACertificate?.encoded_key,\n vaultCACertificate?.encoded_cert,\n securityContext,\n vaultConfiguration,\n awsConfiguration,\n gemaltoConfiguration,\n azureConfiguration,\n gcpConfiguration,\n replicas,\n ]);\n\n const fetchEncryptionInfo = () => {\n if (!refreshEncryptionInfo) {\n setRefreshEncryptionInfo(true);\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/encryption`\n )\n .then((resp: ITenantEncryptionResponse) => {\n if (resp.vault) {\n setEncryptionType(\"vault\");\n setVaultConfiguration(resp.vault);\n if (resp.vault.tls) {\n setVaultClientCertificateSecret(resp.vault.tls.crt);\n setVaultCACertificateSecret(resp.vault.tls.ca);\n }\n } else if (resp.aws) {\n setEncryptionType(\"aws\");\n setAWSConfiguration(resp.aws);\n } else if (resp.gemalto) {\n setEncryptionType(\"gemalto\");\n setGemaltoConfiguration(resp.gemalto);\n if (resp.gemalto.keysecure.tls) {\n setGemaltoCACertificateSecret(resp.gemalto.keysecure.tls.ca);\n }\n } else if (resp.gcp) {\n setEncryptionType(\"gcp\");\n setGCPConfiguration(resp.gcp);\n } else if (resp.azure) {\n setEncryptionType(\"azure\");\n setAzureConfiguration(resp.azure);\n }\n\n setEncryptionEnabled(true);\n setImage(resp.image);\n setReplicas(resp.replicas);\n if (resp.securityContext) {\n setSecurityContext(resp.securityContext);\n }\n if (resp.server || resp.mtls_client) {\n setEnabledCustomCertificates(true);\n }\n if (resp.server) {\n setServerTLSCertificateSecret(resp.server);\n }\n if (resp.mtls_client) {\n setMTLSCertificateSecret(resp.mtls_client);\n }\n setRefreshEncryptionInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n console.log(err);\n setRefreshEncryptionInfo(false);\n });\n }\n };\n\n useEffect(() => {\n fetchEncryptionInfo();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const removeCertificate = (certificateInfo: ICertificateInfo) => {\n setCertificatesToBeRemoved([\n ...certificatesToBeRemoved,\n certificateInfo.name,\n ]);\n if (certificateInfo.name === serverTLSCertificateSecret?.name) {\n setServerTLSCertificateSecret(null);\n }\n if (certificateInfo.name === mTLSCertificateSecret?.name) {\n setMTLSCertificateSecret(null);\n }\n if (certificateInfo.name === vaultClientCertificateSecret?.name) {\n setVaultClientCertificateSecret(null);\n }\n if (certificateInfo.name === vaultCACertificateSecret?.name) {\n setVaultCACertificateSecret(null);\n }\n if (certificateInfo.name === gemaltoCACertificateSecret?.name) {\n setGemaltoCACertificateSecret(null);\n }\n };\n\n const updateEncryptionConfiguration = () => {\n if (encryptionEnabled) {\n let insertEncrypt = {};\n switch (encryptionType) {\n case \"gemalto\":\n let gemaltoCAIntroduce = {};\n\n if (gemaltoCACertificate?.encoded_cert) {\n gemaltoCAIntroduce = {\n tls: {\n ca: gemaltoCACertificate?.encoded_cert,\n },\n };\n }\n insertEncrypt = {\n gemalto: {\n keysecure: {\n endpoint: gemaltoConfiguration?.keysecure?.endpoint || \"\",\n credentials: {\n token:\n gemaltoConfiguration?.keysecure?.credentials?.token || \"\",\n domain:\n gemaltoConfiguration?.keysecure?.credentials?.domain || \"\",\n retry: parseInt(\n gemaltoConfiguration?.keysecure?.credentials?.retry\n ),\n },\n ...gemaltoCAIntroduce,\n },\n },\n };\n break;\n case \"aws\":\n insertEncrypt = {\n aws: {\n secretsmanager: {\n endpoint: awsConfiguration?.secretsmanager?.endpoint || \"\",\n region: awsConfiguration?.secretsmanager?.region || \"\",\n kmskey: awsConfiguration?.secretsmanager?.kmskey || \"\",\n credentials: {\n accesskey:\n awsConfiguration?.secretsmanager?.credentials?.accesskey ||\n \"\",\n secretkey:\n awsConfiguration?.secretsmanager?.credentials?.secretkey ||\n \"\",\n token:\n awsConfiguration?.secretsmanager?.credentials?.token || \"\",\n },\n },\n },\n };\n break;\n case \"azure\":\n insertEncrypt = {\n azure: {\n keyvault: {\n endpoint: azureConfiguration?.keyvault?.endpoint || \"\",\n credentials: {\n tenant_id:\n azureConfiguration?.keyvault?.credentials?.tenant_id || \"\",\n client_id:\n azureConfiguration?.keyvault?.credentials?.client_id || \"\",\n client_secret:\n azureConfiguration?.keyvault?.credentials?.client_secret ||\n \"\",\n },\n },\n },\n };\n break;\n case \"gcp\":\n insertEncrypt = {\n gcp: {\n secretmanager: {\n project_id: gcpConfiguration?.secretmanager?.project_id || \"\",\n endpoint: gcpConfiguration?.secretmanager?.endpoint || \"\",\n credentials: {\n client_email:\n gcpConfiguration?.secretmanager?.credentials\n ?.client_email || \"\",\n client_id:\n gcpConfiguration?.secretmanager?.credentials?.client_id ||\n \"\",\n private_key_id:\n gcpConfiguration?.secretmanager?.credentials\n ?.private_key_id || \"\",\n private_key:\n gcpConfiguration?.secretmanager?.credentials?.private_key ||\n \"\",\n },\n },\n },\n };\n break;\n case \"vault\":\n let vaultKeyPair = null;\n let vaultCAInsert = null;\n if (\n vaultClientCertificate?.encoded_key &&\n vaultClientCertificate?.encoded_cert\n ) {\n vaultKeyPair = {\n key: vaultClientCertificate?.encoded_key,\n crt: vaultClientCertificate?.encoded_cert,\n };\n }\n if (vaultCACertificate?.encoded_cert) {\n vaultCAInsert = {\n ca: vaultCACertificate?.encoded_cert,\n };\n }\n let vaultTLS = null;\n if (vaultKeyPair || vaultCAInsert) {\n vaultTLS = {\n tls: {\n ...vaultKeyPair,\n ...vaultCAInsert,\n },\n };\n }\n insertEncrypt = {\n vault: {\n endpoint: vaultConfiguration?.endpoint || \"\",\n engine: vaultConfiguration?.engine || \"\",\n namespace: vaultConfiguration?.namespace || \"\",\n prefix: vaultConfiguration?.prefix || \"\",\n approle: {\n engine: vaultConfiguration?.approle?.engine || \"\",\n id: vaultConfiguration?.approle?.id || \"\",\n secret: vaultConfiguration?.approle?.secret || \"\",\n retry: parseInt(vaultConfiguration?.approle?.retry),\n },\n ...vaultTLS,\n status: {\n ping: parseInt(vaultConfiguration?.status?.ping),\n },\n },\n };\n break;\n }\n\n let encryptionServerKeyPair: any = {};\n let encryptionClientKeyPair: any = {};\n\n if (mTLSCertificate?.encoded_key && mTLSCertificate?.encoded_cert) {\n encryptionClientKeyPair = {\n client: {\n key: mTLSCertificate?.encoded_key,\n crt: mTLSCertificate?.encoded_cert,\n },\n };\n }\n\n if (serverCertificate?.encoded_key && serverCertificate?.encoded_cert) {\n encryptionServerKeyPair = {\n server: {\n key: serverCertificate?.encoded_key,\n crt: serverCertificate?.encoded_cert,\n },\n };\n }\n const dataSend = {\n secretsToBeDeleted: certificatesToBeRemoved || [],\n replicas: replicas,\n securityContext: securityContext,\n image: image,\n ...encryptionClientKeyPair,\n ...encryptionServerKeyPair,\n ...insertEncrypt,\n };\n if (!updatingEncryption) {\n setUpdatingEncryption(true);\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/encryption`,\n dataSend\n )\n .then(() => {\n setConfirmOpen(false);\n setUpdatingEncryption(false);\n fetchEncryptionInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n setUpdatingEncryption(false);\n setConfirmOpen(false);\n setErrorSnackMessage(err);\n });\n }\n } else {\n if (!updatingEncryption) {\n setUpdatingEncryption(true);\n api\n .invoke(\n \"DELETE\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/encryption`,\n {}\n )\n .then(() => {\n fetchEncryptionInfo();\n setUpdatingEncryption(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setUpdatingEncryption(false);\n setErrorSnackMessage(err);\n });\n }\n }\n };\n\n return (\n \n \n {confirmOpen && (\n setConfirmOpen(false)}\n onConfirm={updateEncryptionConfiguration}\n confirmationContent={\n \n {encryptionEnabled\n ? \"Data will be encrypted using and external KMS\"\n : \"Current encrypted information will not be accessible\"}\n \n }\n />\n )}\n

    Encryption

    \n
    \n {\n setEncryptionEnabled(!encryptionEnabled);\n }}\n description=\"\"\n />\n
    \n {encryptionEnabled && (\n \n \n \n {\n setEncryptionType(e.target.value);\n }}\n selectorOptions={[\n { label: \"Vault\", value: \"vault\" },\n { label: \"AWS\", value: \"aws\" },\n { label: \"Gemalto\", value: \"gemalto\" },\n { label: \"GCP\", value: \"gcp\" },\n { label: \"Azure\", value: \"azure\" },\n ]}\n />\n \n {encryptionType === \"vault\" && (\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n endpoint: e.target.value,\n })\n }\n label=\"Endpoint\"\n value={vaultConfiguration?.endpoint || \"\"}\n error={validationErrors[\"vault_ping\"] || \"\"}\n required\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n engine: e.target.value,\n })\n }\n label=\"Engine\"\n value={vaultConfiguration?.engine || \"\"}\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n namespace: e.target.value,\n })\n }\n label=\"Namespace\"\n value={vaultConfiguration?.namespace || \"\"}\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n prefix: e.target.value,\n })\n }\n label=\"Prefix\"\n value={vaultConfiguration?.prefix || \"\"}\n />\n \n\n \n
    \n \n App Role\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n engine: e.target.value,\n },\n })\n }\n label=\"Engine\"\n value={vaultConfiguration?.approle?.engine || \"\"}\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n id: e.target.value,\n },\n })\n }\n label=\"AppRole ID\"\n value={vaultConfiguration?.approle?.id || \"\"}\n required\n error={validationErrors[\"vault_id\"] || \"\"}\n overlayIcon={\n showVaultAppRoleID ? (\n \n ) : (\n \n )\n }\n overlayAction={() =>\n setShowVaultAppRoleID(!showVaultAppRoleID)\n }\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n secret: e.target.value,\n },\n })\n }\n label=\"AppRole Secret\"\n value={vaultConfiguration?.approle?.secret || \"\"}\n required\n error={validationErrors[\"vault_secret\"] || \"\"}\n overlayIcon={\n showVaultAppRoleSecret ? (\n \n ) : (\n \n )\n }\n overlayAction={() =>\n setShowVaultAppRoleSecret(!showVaultAppRoleSecret)\n }\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n retry: e.target.value,\n },\n })\n }\n label=\"Retry (Seconds)\"\n error={validationErrors[\"vault_retry\"] || \"\"}\n value={vaultConfiguration?.approle?.retry || \"\"}\n />\n \n
    \n
    \n \n
    \n \n Mutual TLS authentication with KMS (optional)\n \n {vaultClientCertificateSecret ? (\n \n \n {vaultClientCertificateSecret.name}\n \n \n {vaultClientCertificateSecret.domains &&\n vaultClientCertificateSecret.domains.map(\n (dom) => {\n return
    {dom}
    ;\n }\n )}\n \n \n Expiry: \n \n \n \n {vaultClientCertificateSecret.expiry}\n \n \n \n }\n onDelete={() =>\n removeCertificate(vaultClientCertificateSecret)\n }\n />\n ) : (\n \n \n setVaultClientCertificate({\n encoded_key: encodedValue || \"\",\n id: vaultClientCertificate?.id || \"\",\n key: fileName || \"\",\n cert: vaultClientCertificate?.cert || \"\",\n encoded_cert:\n vaultClientCertificate?.encoded_cert || \"\",\n })\n }\n accept=\".key,.pem\"\n id=\"vault_key\"\n name=\"vault_key\"\n label=\"Key\"\n value={vaultClientCertificate?.key || \"\"}\n />\n \n setVaultClientCertificate({\n encoded_key:\n vaultClientCertificate?.encoded_key || \"\",\n id: vaultClientCertificate?.id || \"\",\n key: vaultClientCertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n })\n }\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_cert\"\n name=\"vault_cert\"\n label=\"Cert\"\n value={vaultClientCertificate?.cert || \"\"}\n />\n \n )}\n
    \n
    \n \n KMS CA certificate (optional)\n \n {vaultCACertificateSecret ? (\n \n \n {vaultCACertificateSecret.name}\n \n \n {vaultCACertificateSecret.domains &&\n vaultCACertificateSecret.domains.map(\n (dom) => {\n return
    {dom}
    ;\n }\n )}\n \n \n Expiry: \n \n \n \n {vaultCACertificateSecret.expiry}\n \n \n \n }\n onDelete={() =>\n removeCertificate(vaultCACertificateSecret)\n }\n />\n ) : (\n \n setVaultCACertificate({\n encoded_key:\n vaultCACertificate?.encoded_key || \"\",\n id: vaultCACertificate?.id || \"\",\n key: vaultCACertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n })\n }\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_ca\"\n name=\"vault_ca\"\n label=\"CA\"\n value={vaultCACertificate?.cert || \"\"}\n />\n )}\n
    \n
    \n \n
    \n \n Status\n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n status: {\n ...vaultConfiguration?.status,\n ping: e.target.value,\n },\n })\n }\n label=\"Ping (Seconds)\"\n error={validationErrors[\"vault_ping\"] || \"\"}\n value={vaultConfiguration?.status?.ping || \"\"}\n />\n
    \n
    \n
    \n )}\n {encryptionType === \"azure\" && (\n \n \n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n error={validationErrors[\"azure_endpoint\"] || \"\"}\n value={azureConfiguration?.keyvault?.endpoint || \"\"}\n />\n \n \n
    \n \n Credentials\n \n \n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n credentials: {\n ...azureConfiguration?.keyvault?.credentials,\n tenant_id: e.target.value,\n },\n },\n })\n }\n label=\"Tenant ID\"\n value={\n azureConfiguration?.keyvault?.credentials\n ?.tenant_id || \"\"\n }\n error={validationErrors[\"azure_tenant_id\"] || \"\"}\n />\n \n \n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n credentials: {\n ...azureConfiguration?.keyvault?.credentials,\n client_id: e.target.value,\n },\n },\n })\n }\n label=\"Client ID\"\n value={\n azureConfiguration?.keyvault?.credentials\n ?.client_id || \"\"\n }\n error={validationErrors[\"azure_client_id\"] || \"\"}\n />\n \n \n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n credentials: {\n ...azureConfiguration?.keyvault?.credentials,\n client_secret: e.target.value,\n },\n },\n })\n }\n label=\"Client Secret\"\n value={\n azureConfiguration?.keyvault?.credentials\n ?.client_secret || \"\"\n }\n error={validationErrors[\"azure_client_secret\"] || \"\"}\n />\n \n
    \n
    \n
    \n )}\n {encryptionType === \"gcp\" && (\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n project_id: e.target.value,\n },\n })\n }\n label=\"Project ID\"\n value={gcpConfiguration?.secretmanager.project_id || \"\"}\n />\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n value={gcpConfiguration?.secretmanager.endpoint || \"\"}\n />\n \n \n
    \n \n Credentials\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n client_email: e.target.value,\n },\n },\n })\n }\n label=\"Client Email\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.client_email || \"\"\n }\n />\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n client_id: e.target.value,\n },\n },\n })\n }\n label=\"Client ID\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.client_id || \"\"\n }\n />\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n private_key_id: e.target.value,\n },\n },\n })\n }\n label=\"Private Key ID\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.private_key_id || \"\"\n }\n />\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n private_key: e.target.value,\n },\n },\n })\n }\n label=\"Private Key\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.private_key || \"\"\n }\n />\n \n
    \n
    \n
    \n )}\n {encryptionType === \"aws\" && (\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n value={awsConfiguration?.secretsmanager?.endpoint || \"\"}\n required\n error={validationErrors[\"aws_endpoint\"] || \"\"}\n />\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n region: e.target.value,\n },\n })\n }\n label=\"Region\"\n value={awsConfiguration?.secretsmanager?.region || \"\"}\n error={validationErrors[\"aws_region\"] || \"\"}\n required\n />\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n kmskey: e.target.value,\n },\n })\n }\n label=\"KMS Key\"\n value={awsConfiguration?.secretsmanager?.kmskey || \"\"}\n />\n \n \n
    \n \n Credentials\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n credentials: {\n ...awsConfiguration?.secretsmanager\n ?.credentials,\n accesskey: e.target.value,\n },\n },\n })\n }\n label=\"Access Key\"\n value={\n awsConfiguration?.secretsmanager?.credentials\n ?.accesskey || \"\"\n }\n error={validationErrors[\"aws_accessKey\"] || \"\"}\n required\n />\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n credentials: {\n ...awsConfiguration?.secretsmanager\n ?.credentials,\n secretkey: e.target.value,\n },\n },\n })\n }\n label=\"Secret Key\"\n value={\n awsConfiguration?.secretsmanager?.credentials\n ?.secretkey || \"\"\n }\n error={validationErrors[\"aws_secretKey\"] || \"\"}\n required\n />\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n credentials: {\n ...awsConfiguration?.secretsmanager\n ?.credentials,\n token: e.target.value,\n },\n },\n })\n }\n label=\"Token\"\n value={\n awsConfiguration?.secretsmanager?.credentials\n ?.token || \"\"\n }\n />\n \n
    \n
    \n
    \n )}\n {encryptionType === \"gemalto\" && (\n \n \n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n value={gemaltoConfiguration?.keysecure?.endpoint || \"\"}\n error={validationErrors[\"gemalto_endpoint\"] || \"\"}\n required\n />\n \n \n
    \n \n Credentials\n \n \n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n credentials: {\n ...gemaltoConfiguration?.keysecure\n ?.credentials,\n token: e.target.value,\n },\n },\n })\n }\n label=\"Token\"\n value={\n gemaltoConfiguration?.keysecure?.credentials\n ?.token || \"\"\n }\n error={validationErrors[\"gemalto_token\"] || \"\"}\n required\n />\n \n \n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n credentials: {\n ...gemaltoConfiguration?.keysecure\n ?.credentials,\n domain: e.target.value,\n },\n },\n })\n }\n label=\"Domain\"\n value={\n gemaltoConfiguration?.keysecure?.credentials\n ?.domain || \"\"\n }\n error={validationErrors[\"gemalto_domain\"] || \"\"}\n required\n />\n \n \n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n credentials: {\n ...gemaltoConfiguration?.keysecure\n ?.credentials,\n retry: e.target.value,\n },\n },\n })\n }\n label=\"Retry (seconds)\"\n value={\n gemaltoConfiguration?.keysecure?.credentials\n ?.retry || \"\"\n }\n error={validationErrors[\"gemalto_retry\"] || \"\"}\n />\n \n
    \n \n \n
    \n \n Custom CA Root certificate verification\n \n {}}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"gemalto_ca\"\n name=\"gemalto_ca\"\n label=\"CA\"\n value={\"\"}\n />\n {gemaltoCACertificateSecret ? (\n \n \n {gemaltoCACertificateSecret.name}\n \n \n {gemaltoCACertificateSecret.domains &&\n gemaltoCACertificateSecret.domains.map(\n (dom) => {\n return
    {dom}
    ;\n }\n )}\n \n \n Expiry: \n \n \n \n {gemaltoCACertificateSecret.expiry}\n \n \n \n }\n onDelete={() =>\n removeCertificate(gemaltoCACertificateSecret)\n }\n />\n ) : (\n \n setGemaltotCACertificate({\n encoded_key:\n gemaltoCACertificate?.encoded_key || \"\",\n id: gemaltoCACertificate?.id || \"\",\n key: gemaltoCACertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n })\n }\n accept=\".cer,.crt,.cert,.pem\"\n id=\"gemalto_ca\"\n name=\"gemalto_ca\"\n label=\"CA\"\n value={gemaltoCACertificate?.cert || \"\"}\n />\n )}\n
    \n \n
    \n )}\n
    \n

    Additional Configurations

    \n
    \n \n \n setEnabledCustomCertificates(!enabledCustomCertificates)\n }\n label={\"Custom Certificates\"}\n />\n \n {enabledCustomCertificates && (\n \n \n \n
    \n \n Encryption Service Certificates\n \n {serverTLSCertificateSecret ? (\n \n \n {serverTLSCertificateSecret.name}\n \n \n {serverTLSCertificateSecret.domains &&\n serverTLSCertificateSecret.domains.map(\n (dom) => {\n return
    {dom}
    ;\n }\n )}\n \n \n Expiry: \n \n \n \n {serverTLSCertificateSecret.expiry}\n \n \n \n }\n onDelete={() =>\n removeCertificate(serverTLSCertificateSecret)\n }\n />\n ) : (\n \n {\n setServerCertificate({\n encoded_key: encodedValue || \"\",\n id: serverCertificate?.id || \"\",\n key: fileName || \"\",\n cert: serverCertificate?.cert || \"\",\n encoded_cert:\n serverCertificate?.encoded_cert || \"\",\n });\n cleanValidation(\"serverKey\");\n }}\n accept=\".key,.pem\"\n id=\"serverKey\"\n name=\"serverKey\"\n label=\"Key\"\n value={serverCertificate?.key}\n />\n {\n setServerCertificate({\n encoded_key:\n serverCertificate?.encoded_key || \"\",\n id: serverCertificate?.id || \"\",\n key: serverCertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n });\n cleanValidation(\"serverCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"serverCert\"\n name=\"serverCert\"\n label=\"Cert\"\n value={serverCertificate?.cert}\n />\n \n )}\n
    \n
    \n
    \n \n \n
    \n \n Mutual TLS authentication with MinIO\n \n {mTLSCertificateSecret ? (\n \n \n {mTLSCertificateSecret.name}\n \n \n {mTLSCertificateSecret.domains &&\n mTLSCertificateSecret.domains.map((dom) => {\n return
    {dom}
    ;\n })}\n \n \n Expiry: \n \n \n \n {mTLSCertificateSecret.expiry}\n \n \n \n }\n onDelete={() =>\n removeCertificate(mTLSCertificateSecret)\n }\n />\n ) : (\n \n {\n setMTLSCertificate({\n encoded_key: encodedValue || \"\",\n id: mTLSCertificate?.id || \"\",\n key: fileName || \"\",\n cert: mTLSCertificate?.cert || \"\",\n encoded_cert:\n mTLSCertificate?.encoded_cert || \"\",\n });\n cleanValidation(\"clientKey\");\n }}\n accept=\".key,.pem\"\n id=\"clientKey\"\n name=\"clientKey\"\n label=\"Key\"\n value={mTLSCertificate?.key}\n />\n {\n setMTLSCertificate({\n encoded_key:\n mTLSCertificate?.encoded_key || \"\",\n id: mTLSCertificate?.id || \"\",\n key: mTLSCertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n });\n cleanValidation(\"clientCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"clientCert\"\n name=\"clientCert\"\n label=\"Cert\"\n value={mTLSCertificate?.cert}\n />\n \n )}\n
    \n
    \n
    \n
    \n )}\n \n \n ) =>\n setImage(e.target.value)\n }\n label=\"Image\"\n placeholder=\"minio/kes:v0.17.6\"\n value={image}\n />\n \n \n ) =>\n setReplicas(e.target.value)\n }\n label=\"Replicas\"\n value={replicas}\n required\n error={validationErrors[\"replicas\"] || \"\"}\n />\n \n\n \n \n SecurityContext for KES pods\n \n \n \n \n \n ) => {\n setSecurityContext({\n ...securityContext,\n runAsUser: e.target.value,\n });\n }}\n label=\"Run As User\"\n value={securityContext.runAsUser}\n required\n error={\n validationErrors[\"kes_securityContext_runAsUser\"] ||\n \"\"\n }\n min=\"0\"\n />\n \n \n \n ) => {\n setSecurityContext({\n ...securityContext,\n runAsGroup: e.target.value,\n });\n }}\n label=\"Run As Group\"\n value={securityContext.runAsGroup}\n required\n error={\n validationErrors[\n \"kes_securityContext_runAsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n \n \n \n ) => {\n setSecurityContext({\n ...securityContext,\n fsGroup: e.target.value,\n });\n }}\n label=\"FsGroup\"\n value={securityContext.fsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_fsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n \n \n \n
    \n \n
    \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setSecurityContext({\n ...securityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
    \n
    \n \n
    \n \n \n )}\n \n setConfirmOpen(true)}\n >\n Save\n \n \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n selectedTenant: state.tenants.tenantDetails.currentTenant,\n tenant: state.tenants.tenantDetails.tenantInfo,\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n setTenantDetailsLoad,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(TenantEncryption));\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
    }\n \n {errorMessage}\n \n
    \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"\n}), 'AttachFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'RemoveRedEye');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","fieldBasic","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","marginTop","fileInputField","margin","flexFlow","fileInputStyles","inputLabel","fontWeight","textBoxContainer","border","paddingLeft","label","classes","onChange","id","name","disabled","tooltip","required","error","accept","value","useState","showFileSelector","setShowSelector","Grid","item","xs","className","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","title","placement","HelpIcon","type","e","fileName","get","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","length","fileProcess","data","IconButton","color","component","onClick","disableRipple","disableFocusRipple","size","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","radioStyles","makeStyles","root","backgroundColor","radioIcons","RadioButton","props","checkedIcon","radioSelectedIcon","icon","radioUnselectedIcon","optionLabel","marginRight","fontSize","checkedOption","selectorOptions","currentSelection","disableOptions","displayInColumn","container","alignItems","radioOptionsLayout","row","style","display","textAlign","map","selectorOption","control","clsx","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","isLoading","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","sx","padding","titleText","closeContainer","closeButton","content","actions","cancelButton","variant","confirmButton","loading","loadingPosition","startIcon","autoFocus","mapDispatchToProps","setErrorSnackMessage","setTenantDetailsLoad","connector","connect","state","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenant","tenantInfo","tenantDetailsStyles","spacingUtils","loaderAlign","bold","italic","fontStyle","paperContainer","certificateInfo","height","fileItem","minWidth","certInputRow","borderBottom","marginBottom","caCertsRow","containerForHeader","spacing","createTenantCommon","formFieldStyles","modalBasic","wizardCommon","encryptionEnabled","setEncryptionEnabled","encryptionType","setEncryptionType","replicas","setReplicas","image","setImage","refreshEncryptionInfo","setRefreshEncryptionInfo","fsGroup","runAsGroup","runAsNonRoot","runAsUser","securityContext","setSecurityContext","vaultConfiguration","setVaultConfiguration","awsConfiguration","setAWSConfiguration","gemaltoConfiguration","setGemaltoConfiguration","azureConfiguration","setAzureConfiguration","gcpConfiguration","setGCPConfiguration","enabledCustomCertificates","setEnabledCustomCertificates","updatingEncryption","setUpdatingEncryption","serverTLSCertificateSecret","setServerTLSCertificateSecret","mTLSCertificateSecret","setMTLSCertificateSecret","mTLSCertificate","setMTLSCertificate","certificatesToBeRemoved","setCertificatesToBeRemoved","showVaultAppRoleID","setShowVaultAppRoleID","isFormValid","setIsFormValid","showVaultAppRoleSecret","setShowVaultAppRoleSecret","vaultClientCertificateSecret","setVaultClientCertificateSecret","vaultCACertificateSecret","setVaultCACertificateSecret","vaultClientCertificate","setVaultClientCertificate","serverCertificate","setServerCertificate","vaultCACertificate","setVaultCACertificate","gemaltoCACertificateSecret","setGemaltoCACertificateSecret","gemaltoCACertificate","setGemaltotCACertificate","validationErrors","setValidationErrors","cleanValidation","fieldName","clearValidationError","confirmOpen","setConfirmOpen","useEffect","encryptionValidation","fieldKey","customValidation","parseInt","customValidationMessage","encoded_key","encoded_cert","endpoint","approle","secret","status","ping","retry","secretsmanager","region","credentials","accesskey","secretkey","keysecure","token","domain","keyvault","tenant_id","client_id","client_secret","commonVal","commonFormValidation","Object","keys","fetchEncryptionInfo","api","namespace","then","resp","vault","tls","crt","ca","aws","gemalto","gcp","azure","server","mtls_client","catch","err","console","log","removeCertificate","Fragment","insertEncrypt","gemaltoCAIntroduce","kmskey","secretmanager","project_id","client_email","private_key_id","private_key","vaultKeyPair","vaultCAInsert","key","vaultTLS","engine","prefix","encryptionServerKeyPair","encryptionClientKeyPair","client","dataSend","secretsToBeDeleted","sectionTitle","actionsTray","indicatorLabels","checked","description","paperWrapper","encryptionTypeOptions","formFieldRow","fieldGroup","descriptionText","overlayIcon","overlayAction","min","mutualTlsConfig","gutterBottom","domains","dom","format","expiry","onDelete","encodedValue","cert","headerElement","h3Section","placeholder","kesSecurityContext","multiContainer","responsiveContainer","rightSpacer","buttonContainer","errorBlock","palette","main","withBreak","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/6683.c02ad0d0.chunk.js b/portal-ui/build/static/js/6683.c02ad0d0.chunk.js new file mode 100644 index 000000000..63baf7c85 --- /dev/null +++ b/portal-ui/build/static/js/6683.c02ad0d0.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6683],{54639:function(e,n,l){l.d(n,{Z:function(){return h}});var i=l(70885),t=l(1413),a=l(72791),o=l(26181),r=l.n(o),d=l(61889),s=l(30829),c=l(20068),u=l(13400),v=l(99663),m=l(86711),p=l(11135),Z=l(25787),x=l(23814),g=l(84570),f=l(22512),y=l(80184),h=(0,Z.Z)((function(e){return(0,p.Z)((0,t.Z)((0,t.Z)((0,t.Z)((0,t.Z)({},x.YI),x.Hr),{},{valueString:{maxWidth:350,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",marginTop:2},fileInputField:{margin:"13px 0","@media (max-width: 900px)":{flexFlow:"column"}}},x.bV),{},{inputLabel:(0,t.Z)((0,t.Z)({},x.YI.inputLabel),{},{fontWeight:"normal"}),textBoxContainer:(0,t.Z)((0,t.Z)({},x.YI.textBoxContainer),{},{maxWidth:"100%",border:"1px solid #eaeaea",paddingLeft:"15px"})}))}))((function(e){var n=e.label,l=e.classes,t=e.onChange,o=e.id,p=e.name,Z=e.disabled,x=void 0!==Z&&Z,h=e.tooltip,_=void 0===h?"":h,j=e.required,k=e.error,b=void 0===k?"":k,C=e.accept,N=void 0===C?"":C,w=e.value,R=void 0===w?"":w,S=(0,a.useState)(!1),F=(0,i.Z)(S,2),P=F[0],K=F[1];return(0,y.jsx)(a.Fragment,{children:(0,y.jsxs)(d.ZP,{item:!0,xs:12,className:"".concat(l.fileInputField," ").concat(l.fieldBottom," ").concat(l.fieldContainer," ").concat(""!==b?l.errorInField:""),children:[""!==n&&(0,y.jsxs)(s.Z,{htmlFor:o,className:"".concat(""!==b?l.fieldLabelError:""," ").concat(l.inputLabel),children:[(0,y.jsxs)("span",{children:[n,j?"*":""]}),""!==_&&(0,y.jsx)("div",{className:l.tooltipContainer,children:(0,y.jsx)(c.Z,{title:_,placement:"top-start",children:(0,y.jsx)("div",{className:l.tooltip,children:(0,y.jsx)(g.Z,{})})})})]}),P||""===R?(0,y.jsxs)("div",{className:l.textBoxContainer,children:[(0,y.jsx)("input",{type:"file",name:p,onChange:function(e){var n=r()(e,"target.files[0].name","");!function(e,n){var l=e.target.files[0],i=new FileReader;i.readAsDataURL(l),i.onload=function(){var e=i.result;if(e){var l=e.toString().split("base64,");2===l.length&&n(l[1])}}}(e,(function(e){t(e,n)}))},accept:N,required:j,disabled:x,className:l.fileInputField}),""!==R&&(0,y.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){K(!1)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,y.jsx)(m.Z,{})}),""!==b&&(0,y.jsx)(f.Z,{errorMessage:b})]}):(0,y.jsxs)("div",{className:l.fileReselect,children:[(0,y.jsx)("div",{className:l.valueString,children:R}),(0,y.jsx)(u.Z,{color:"primary","aria-label":"upload picture",component:"span",onClick:function(){K(!0)},disableRipple:!1,disableFocusRipple:!1,size:"small",children:(0,y.jsx)(v.Z,{})})]})]})})}))},83679:function(e,n,l){var i=l(4942),t=l(1413),a=(l(72791),l(28182)),o=l(61889),r=l(10765),d=l(85523),s=l(61419),c=l(30829),u=l(20068),v=l(11135),m=l(25787),p=l(72455),Z=l(23814),x=l(84570),g=l(80184),f=(0,p.Z)((0,t.Z)({root:{"&:hover":{backgroundColor:"transparent"}}},Z.FU)),y=function(e){var n=f();return(0,g.jsx)(s.Z,(0,t.Z)({className:n.root,disableRipple:!0,color:"default",checkedIcon:(0,g.jsx)("span",{className:n.radioSelectedIcon}),icon:(0,g.jsx)("span",{className:n.radioUnselectedIcon})},e))};n.Z=(0,m.Z)((function(e){return(0,v.Z)((0,t.Z)((0,t.Z)((0,t.Z)({},Z.YI),Z.Hr),{},{optionLabel:{"&.Mui-disabled":{"& .MuiFormControlLabel-label":{color:"#9c9c9c"}},"&:last-child":{marginRight:0},"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E"}},checkedOption:{"& .MuiFormControlLabel-label":{fontSize:12,color:"#07193E",fontWeight:700}}}))}))((function(e){var n=e.selectorOptions,l=void 0===n?[]:n,t=e.currentSelection,s=e.label,v=e.id,m=e.name,p=e.onChange,Z=e.tooltip,f=void 0===Z?"":Z,h=e.disableOptions,_=void 0!==h&&h,j=e.classes,k=e.displayInColumn,b=void 0!==k&&k;return(0,g.jsxs)(o.ZP,{container:!0,alignItems:"center",children:[(0,g.jsx)(o.ZP,{item:!0,xs:!0,children:(0,g.jsxs)(c.Z,{htmlFor:v,className:j.inputLabel,children:[(0,g.jsx)("span",{children:s}),""!==f&&(0,g.jsx)("div",{className:j.tooltipContainer,children:(0,g.jsx)(u.Z,{title:f,placement:"top-start",children:(0,g.jsx)("div",{children:(0,g.jsx)(x.Z,{})})})})]})}),(0,g.jsx)(o.ZP,{item:!0,xs:!0,className:j.radioOptionsLayout,children:(0,g.jsx)(r.Z,{"aria-label":v,id:v,name:m,value:t,onChange:p,row:!b,style:{display:"block",textAlign:"right"},children:l.map((function(e){return(0,g.jsx)(d.Z,{value:e.value,control:(0,g.jsx)(y,{}),label:e.label,disabled:_,className:(0,a.Z)(j.optionLabel,(0,i.Z)({},j.checkedOption,e.value===t))},"rd-".concat(m,"-").concat(e.value))}))})})]})}))},23508:function(e,n,l){var i=l(1413),t=l(72791),a=l(5574),o=l(65661),r=l(39157),d=l(97123),s=l(36151),c=l(59860),u=l(13400),v=l(29823),m=l(11135),p=l(25787),Z=l(23814),x=l(80184);n.Z=(0,p.Z)((function(e){return(0,m.Z)((0,i.Z)({},Z.Qw))}))((function(e){var n=e.isOpen,l=void 0!==n&&n,m=e.onClose,p=e.onCancel,Z=e.onConfirm,g=e.classes,f=void 0===g?{}:g,y=e.title,h=void 0===y?"":y,_=e.isLoading,j=e.confirmationContent,k=e.cancelText,b=void 0===k?"Cancel":k,C=e.confirmText,N=void 0===C?"Confirm":C,w=e.confirmButtonProps,R=void 0===w?{}:w,S=e.cancelButtonProps,F=void 0===S?{}:S,P=e.titleIcon,K=void 0===P?null:P;return(0,x.jsxs)(a.Z,{open:l,onClose:function(e,n){"backdropClick"!==n&&m()},className:f.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,x.jsxs)(o.Z,{className:f.title,children:[(0,x.jsxs)("div",{className:f.titleText,children:[K," ",h]}),(0,x.jsx)("div",{className:f.closeContainer,children:(0,x.jsx)(u.Z,{"aria-label":"close",className:f.closeButton,onClick:m,disableRipple:!0,size:"small",children:(0,x.jsx)(v.Z,{})})})]}),(0,x.jsx)(r.Z,{className:f.content,children:j}),(0,x.jsxs)(d.Z,{className:f.actions,children:[(0,x.jsx)(s.Z,(0,i.Z)((0,i.Z)({className:f.cancelButton,onClick:p||m,disabled:_,type:"button"},F),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:b})),(0,x.jsx)(c.Z,(0,i.Z)((0,i.Z)({className:f.confirmButton,type:"button",onClick:Z,loading:_,disabled:_,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,x.jsx)(t.Fragment,{}),autoFocus:!0,id:"confirm-ok"},R),{},{children:N}))]})]})}))},98952:function(e,n,l){l.d(n,{Z:function(){return j}});l(72791);var i=l(11135),t=l(25787),a=l(90983),o=l(81918),r=l(26445),d=l(61889),s=l(20890),c=l(64554),u=l(94721),v=l(90493),m=l(15021),p=l(20653),Z=l(49900),x=l(52502),g=l(46431),f=l.n(g),y=l(1413),h=l(80184),_=function(e){return(0,h.jsxs)("svg",(0,y.Z)((0,y.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 256 256"},e),{},{children:[(0,h.jsx)("defs",{children:(0,h.jsx)("clipPath",{id:"certificate_svg__a",children:(0,h.jsx)("path",{"data-name":"Rect\\xE1ngulo 2156",fill:"#07193e",d:"M0 0h256v222.048H0z"})})}),(0,h.jsxs)("g",{"data-name":"Grupo 4763",transform:"translate(0 17)",clipPath:"url(#certificate_svg__a)",fill:"#07193e",children:[(0,h.jsx)("path",{"data-name":"Trazado 8152",d:"M240-.002H16a16 16 0 0 0-16 16v160a16 16 0 0 0 16 16h120l4.64-5.6 7.44-9.12A66.72 66.72 0 0 1 256 98.958v-82.96a16 16 0 0 0-16-16m-130.96 149.7H47.3a7.3 7.3 0 1 1 0-14.592h61.74a7.3 7.3 0 1 1 0 14.592m0-56H47.3a7.3 7.3 0 1 1 0-14.592h61.74a7.3 7.3 0 0 1 0 14.592m66.96-39.3a6.419 6.419 0 0 1-6.4 6.4H46.4a6.419 6.419 0 0 1-6.4-6.4v-1.792a6.419 6.419 0 0 1 6.4-6.4h123.2a6.419 6.419 0 0 1 6.4 6.4Z"}),(0,h.jsx)("path",{"data-name":"Trazado 8153",d:"M256 137.486a50.96 50.96 0 1 0-86.16 36.72l-15.52 18.96 7.2 28.88 29.28-35.68a50.018 50.018 0 0 0 28.4 0l29.28 35.68 7.2-28.88-15.52-18.96a50.75 50.75 0 0 0 15.84-36.72m-50.928 29.688a29.688 29.688 0 0 1-.072-59.376h.072a29.688 29.688 0 0 1 0 59.376"})]}),(0,h.jsx)("path",{"data-name":"Rect\\xE1ngulo 2157",fill:"none",d:"M0 0h256v256H0z"})]}))},j=(0,t.Z)((function(e){return(0,i.Z)({root:{padding:0,margin:0,border:0,backgroundColor:"transparent",textDecoration:"underline",cursor:"pointer",fontSize:"inherit",color:e.palette.info.main,fontFamily:"Lato, sans-serif"},certificateIcon:{float:"left",paddingTop:"5px !important",paddingRight:"10px !important"},certificateInfo:{float:"right"},certificateWrapper:{height:"auto",margin:5,border:"1px solid #E2E2E2",userSelect:"text",borderRadius:4,"& h6":{fontWeight:"bold"},"& div":{padding:0}},certificateExpiry:{color:"#616161",display:"flex",alignItems:"center",flexWrap:"wrap",marginBottom:5,"& .label":{fontWeight:"bold"}},certificateDomains:{color:"#616161","& .label":{fontWeight:"bold"}},certificatesList:{border:"1px solid #E2E2E2",borderRadius:4,color:"#616161",textTransform:"lowercase",overflowY:"scroll",maxHeight:145,marginBottom:10},certificatesListItem:{padding:"0px 16px",borderBottom:"1px solid #E2E2E2","& div":{minWidth:0},"& svg":{fontSize:12,marginRight:10,opacity:.5},"& span":{fontSize:12}}})}))((function(e){var n=e.classes,l=e.certificateInfo,i=e.onDelete,t=void 0===i?function(){}:i,g=l.domains||[];return(0,h.jsx)(o.Z,{variant:"outlined",color:"primary",className:n.certificateWrapper,label:(0,h.jsxs)(r.Z,{children:[(0,h.jsx)(d.ZP,{item:!0,xs:1,className:n.certificateIcon,children:(0,h.jsx)(_,{})}),(0,h.jsxs)(d.ZP,{item:!0,xs:11,className:n.certificateInfo,children:[(0,h.jsx)(s.Z,{variant:"subtitle1",display:"block",gutterBottom:!0,children:l.name}),(0,h.jsxs)(c.Z,{className:n.certificateExpiry,children:[(0,h.jsx)(x.Z,{color:"inherit",fontSize:"small"}),"\xa0",(0,h.jsx)("span",{className:"label",children:"Expiry:\xa0"}),(0,h.jsx)("span",{children:(0,h.jsx)(f(),{format:"YYYY/MM/DD",children:l.expiry})})]}),(0,h.jsx)(u.Z,{}),(0,h.jsx)("br",{}),(0,h.jsx)(c.Z,{className:n.certificateDomains,children:(0,h.jsx)("span",{className:"label",children:"".concat(g.length," Domain (s):")})}),(0,h.jsx)(v.Z,{className:n.certificatesList,children:g.map((function(e){return(0,h.jsxs)(m.ZP,{className:n.certificatesListItem,children:[(0,h.jsx)(p.Z,{children:(0,h.jsx)(a.Z,{})}),(0,h.jsx)(Z.Z,{primary:e})]})}))})]})]}),onDelete:t},l.name)}))},76683:function(e,n,l){l.r(n);var i=l(42982),t=l(70885),a=l(1413),o=l(11135),r=l(25787),d=l(23814),s=l(10703),c=l(72791),u=l(42649),v=l(60364),m=l(75460),p=l(81207),Z=l(37516),x=l(61889),g=l(54639),f=l(21435),y=l(83679),h=l(51691),_=l(36151),j=l(20165),k=l(3579),b=l(84741),C=l(40968),N=l(23508),w=l(98952),R=l(80184),S={setErrorSnackMessage:u.Ih,setTenantDetailsLoad:m.V2},F=(0,v.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant,selectedTenant:e.tenants.tenantDetails.currentTenant,tenant:e.tenants.tenantDetails.tenantInfo}}),S);n.default=(0,r.Z)((function(e){return(0,o.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)((0,a.Z)({},d.oZ),d.bK),{},{loaderAlign:{textAlign:"center"},title:{marginTop:35},bold:{fontWeight:"bold"},italic:{fontStyle:"italic"},paperContainer:{padding:"15px 15px 15px 50px"},certificateInfo:{height:"auto",margin:5},fileItem:{marginRight:10,display:"flex","& div label":{minWidth:50},"@media (max-width: 900px)":{flexFlow:"column"}},certInputRow:{display:"flex",alignItems:"center",borderBottom:"1px solid #eaeaea",marginBottom:10},caCertsRow:{borderBottom:"1px solid #eaeaea",display:"flex",alignItems:"center",marginBottom:10}},(0,d.Bz)(e.spacing(4))),d.QV),d.DF),d.oO),d.AK))}))(F((function(e){var n,l,o,r,d,u,v,m,S,F,P,K,I,A,z,E,T,q,G,M,D,B,L,V,U,O,W,H,Y,Q,$,J,X=e.classes,ee=e.tenant,ne=e.setErrorSnackMessage,le=(0,c.useState)(!1),ie=(0,t.Z)(le,2),te=ie[0],ae=ie[1],oe=(0,c.useState)("vault"),re=(0,t.Z)(oe,2),de=re[0],se=re[1],ce=(0,c.useState)("2"),ue=(0,t.Z)(ce,2),ve=ue[0],me=ue[1],pe=(0,c.useState)(""),Ze=(0,t.Z)(pe,2),xe=Ze[0],ge=Ze[1],fe=(0,c.useState)(!1),ye=(0,t.Z)(fe,2),he=ye[0],_e=ye[1],je=(0,c.useState)({fsGroup:"1000",runAsGroup:"1000",runAsNonRoot:!0,runAsUser:"1000"}),ke=(0,t.Z)(je,2),be=ke[0],Ce=ke[1],Ne=(0,c.useState)(null),we=(0,t.Z)(Ne,2),Re=we[0],Se=we[1],Fe=(0,c.useState)(null),Pe=(0,t.Z)(Fe,2),Ke=Pe[0],Ie=Pe[1],Ae=(0,c.useState)(null),ze=(0,t.Z)(Ae,2),Ee=ze[0],Te=ze[1],qe=(0,c.useState)(null),Ge=(0,t.Z)(qe,2),Me=Ge[0],De=Ge[1],Be=(0,c.useState)(null),Le=(0,t.Z)(Be,2),Ve=Le[0],Ue=Le[1],Oe=(0,c.useState)(!1),We=(0,t.Z)(Oe,2),He=We[0],Ye=We[1],Qe=(0,c.useState)(!1),$e=(0,t.Z)(Qe,2),Je=$e[0],Xe=$e[1],en=(0,c.useState)(null),nn=(0,t.Z)(en,2),ln=nn[0],tn=nn[1],an=(0,c.useState)(null),on=(0,t.Z)(an,2),rn=on[0],dn=on[1],sn=(0,c.useState)(null),cn=(0,t.Z)(sn,2),un=cn[0],vn=cn[1],mn=(0,c.useState)([]),pn=(0,t.Z)(mn,2),Zn=pn[0],xn=pn[1],gn=(0,c.useState)(!1),fn=(0,t.Z)(gn,2),yn=fn[0],hn=fn[1],_n=(0,c.useState)(!1),jn=(0,t.Z)(_n,2),kn=jn[0],bn=jn[1],Cn=(0,c.useState)(!1),Nn=(0,t.Z)(Cn,2),wn=Nn[0],Rn=Nn[1],Sn=(0,c.useState)(null),Fn=(0,t.Z)(Sn,2),Pn=Fn[0],Kn=Fn[1],In=(0,c.useState)(null),An=(0,t.Z)(In,2),zn=An[0],En=An[1],Tn=(0,c.useState)(null),qn=(0,t.Z)(Tn,2),Gn=qn[0],Mn=qn[1],Dn=(0,c.useState)(null),Bn=(0,t.Z)(Dn,2),Ln=Bn[0],Vn=Bn[1],Un=(0,c.useState)(null),On=(0,t.Z)(Un,2),Wn=On[0],Hn=On[1],Yn=(0,c.useState)(null),Qn=(0,t.Z)(Yn,2),$n=Qn[0],Jn=Qn[1],Xn=(0,c.useState)(null),el=(0,t.Z)(Xn,2),nl=el[0],ll=el[1],il=(0,c.useState)({}),tl=(0,t.Z)(il,2),al=tl[0],ol=tl[1],rl=function(e){ol((0,b.h)(al,e))},dl=(0,c.useState)(!1),sl=(0,t.Z)(dl,2),cl=sl[0],ul=sl[1];(0,c.useEffect)((function(){var e=[];if(te){var n,l,t,a,o,r,d,s,c,u,v,m,p,Z,x,g,f,y,h,_,j,k,b,N,w,R,S,F;if(e=[].concat((0,i.Z)(e),[{fieldKey:"replicas",required:!0,value:ve,customValidation:parseInt(ve)<1,customValidationMessage:"Replicas needs to be 1 or greater"},{fieldKey:"kes_securityContext_runAsUser",required:!0,value:be.runAsUser,customValidation:""===be.runAsUser||parseInt(be.runAsUser)<0,customValidationMessage:"runAsUser must be present and be 0 or more"},{fieldKey:"kes_securityContext_runAsGroup",required:!0,value:be.runAsGroup,customValidation:""===be.runAsGroup||parseInt(be.runAsGroup)<0,customValidationMessage:"runAsGroup must be present and be 0 or more"},{fieldKey:"kes_securityContext_fsGroup",required:!0,value:be.fsGroup,customValidation:""===be.fsGroup||parseInt(be.fsGroup)<0,customValidationMessage:"fsGroup must be present and be 0 or more"}]),He&&(e=[].concat((0,i.Z)(e),[{fieldKey:"serverKey",required:!1,value:(null===Ln||void 0===Ln?void 0:Ln.encoded_key)||""},{fieldKey:"serverCert",required:!1,value:(null===Ln||void 0===Ln?void 0:Ln.encoded_cert)||""},{fieldKey:"clientKey",required:!1,value:(null===un||void 0===un?void 0:un.encoded_key)||""},{fieldKey:"clientCert",required:!1,value:(null===un||void 0===un?void 0:un.encoded_cert)||""}])),"vault"===de)e=[].concat((0,i.Z)(e),[{fieldKey:"vault_endpoint",required:!0,value:null===Re||void 0===Re?void 0:Re.endpoint},{fieldKey:"vault_id",required:!0,value:null===Re||void 0===Re||null===(n=Re.approle)||void 0===n?void 0:n.id},{fieldKey:"vault_secret",required:!0,value:null===Re||void 0===Re||null===(l=Re.approle)||void 0===l?void 0:l.secret},{fieldKey:"vault_ping",required:!1,value:null===Re||void 0===Re||null===(t=Re.status)||void 0===t?void 0:t.ping,customValidation:parseInt(null===Re||void 0===Re||null===(a=Re.status)||void 0===a?void 0:a.ping)<0,customValidationMessage:"Value needs to be 0 or greater"},{fieldKey:"vault_retry",required:!1,value:null===Re||void 0===Re||null===(o=Re.approle)||void 0===o?void 0:o.retry,customValidation:parseInt(null===Re||void 0===Re||null===(r=Re.approle)||void 0===r?void 0:r.retry)<0,customValidationMessage:"Value needs to be 0 or greater"}]);if("aws"===de)e=[].concat((0,i.Z)(e),[{fieldKey:"aws_endpoint",required:!0,value:null===Ke||void 0===Ke||null===(d=Ke.secretsmanager)||void 0===d?void 0:d.endpoint},{fieldKey:"aws_region",required:!0,value:null===Ke||void 0===Ke||null===(s=Ke.secretsmanager)||void 0===s?void 0:s.region},{fieldKey:"aws_accessKey",required:!0,value:null===Ke||void 0===Ke||null===(c=Ke.secretsmanager)||void 0===c||null===(u=c.credentials)||void 0===u?void 0:u.accesskey},{fieldKey:"aws_secretKey",required:!0,value:null===Ke||void 0===Ke||null===(v=Ke.secretsmanager)||void 0===v||null===(m=v.credentials)||void 0===m?void 0:m.secretkey}]);if("gemalto"===de)e=[].concat((0,i.Z)(e),[{fieldKey:"gemalto_endpoint",required:!0,value:null===Ee||void 0===Ee||null===(p=Ee.keysecure)||void 0===p?void 0:p.endpoint},{fieldKey:"gemalto_token",required:!0,value:null===Ee||void 0===Ee||null===(Z=Ee.keysecure)||void 0===Z||null===(x=Z.credentials)||void 0===x?void 0:x.token},{fieldKey:"gemalto_domain",required:!0,value:null===Ee||void 0===Ee||null===(g=Ee.keysecure)||void 0===g||null===(f=g.credentials)||void 0===f?void 0:f.domain},{fieldKey:"gemalto_retry",required:!1,value:null===Ee||void 0===Ee||null===(y=Ee.keysecure)||void 0===y||null===(h=y.credentials)||void 0===h?void 0:h.retry,customValidation:parseInt(null===Ee||void 0===Ee||null===(_=Ee.keysecure)||void 0===_||null===(j=_.credentials)||void 0===j?void 0:j.retry)<0,customValidationMessage:"Value needs to be 0 or greater"}]);if("azure"===de)e=[].concat((0,i.Z)(e),[{fieldKey:"azure_endpoint",required:!0,value:null===Me||void 0===Me||null===(k=Me.keyvault)||void 0===k?void 0:k.endpoint},{fieldKey:"azure_tenant_id",required:!0,value:null===Me||void 0===Me||null===(b=Me.keyvault)||void 0===b||null===(N=b.credentials)||void 0===N?void 0:N.tenant_id},{fieldKey:"azure_client_id",required:!0,value:null===Me||void 0===Me||null===(w=Me.keyvault)||void 0===w||null===(R=w.credentials)||void 0===R?void 0:R.client_id},{fieldKey:"azure_client_secret",required:!0,value:null===Me||void 0===Me||null===(S=Me.keyvault)||void 0===S||null===(F=S.credentials)||void 0===F?void 0:F.client_secret}])}var P=(0,C.R)(e);bn(0===Object.keys(P).length),ol(P)}),[He,te,de,null===Ln||void 0===Ln?void 0:Ln.encoded_key,null===Ln||void 0===Ln?void 0:Ln.encoded_cert,null===un||void 0===un?void 0:un.encoded_key,null===un||void 0===un?void 0:un.encoded_cert,null===Gn||void 0===Gn?void 0:Gn.encoded_key,null===Gn||void 0===Gn?void 0:Gn.encoded_cert,null===Wn||void 0===Wn?void 0:Wn.encoded_key,null===Wn||void 0===Wn?void 0:Wn.encoded_cert,be,Re,Ke,Ee,Me,Ve,ve]);var vl=function(){he||(_e(!0),p.Z.invoke("GET","/api/v1/namespaces/".concat(null===ee||void 0===ee?void 0:ee.namespace,"/tenants/").concat(null===ee||void 0===ee?void 0:ee.name,"/encryption")).then((function(e){e.vault?(se("vault"),Se(e.vault),e.vault.tls&&(Kn(e.vault.tls.crt),En(e.vault.tls.ca))):e.aws?(se("aws"),Ie(e.aws)):e.gemalto?(se("gemalto"),Te(e.gemalto),e.gemalto.keysecure.tls&&Jn(e.gemalto.keysecure.tls.ca)):e.gcp?(se("gcp"),Ue(e.gcp)):e.azure&&(se("azure"),De(e.azure)),ae(!0),ge(e.image),me(e.replicas),e.securityContext&&Ce(e.securityContext),(e.server||e.mtls_client)&&Ye(!0),e.server&&tn(e.server),e.mtls_client&&dn(e.mtls_client),_e(!1)})).catch((function(e){console.log(e),_e(!1)})))};(0,c.useEffect)((function(){vl()}),[]);var ml=function(e){xn([].concat((0,i.Z)(Zn),[e.name])),e.name===(null===ln||void 0===ln?void 0:ln.name)&&tn(null),e.name===(null===rn||void 0===rn?void 0:rn.name)&&dn(null),e.name===(null===Pn||void 0===Pn?void 0:Pn.name)&&Kn(null),e.name===(null===zn||void 0===zn?void 0:zn.name)&&En(null),e.name===(null===$n||void 0===$n?void 0:$n.name)&&Jn(null)};return(0,R.jsx)(c.Fragment,{children:(0,R.jsxs)(c.Fragment,{children:[cl&&(0,R.jsx)(N.Z,{isOpen:cl,title:te?"Enable encryption at rest for tenant?":"Disable encryption at rest for tenant?",confirmText:te?"Enable":"Disable",cancelText:"Cancel",onClose:function(){return ul(!1)},onConfirm:function(){var e,n,l,i,t,o,r,d,s,c,u,v,m,Z,x,g,f,y,h,_,j,k,b,C,N,w,R,S,F,P,K,I,A,z,E,T,q,G;if(te){var M={};switch(de){case"gemalto":var D={};null!==nl&&void 0!==nl&&nl.encoded_cert&&(D={tls:{ca:null===nl||void 0===nl?void 0:nl.encoded_cert}}),M={gemalto:{keysecure:(0,a.Z)({endpoint:(null===Ee||void 0===Ee||null===(e=Ee.keysecure)||void 0===e?void 0:e.endpoint)||"",credentials:{token:(null===Ee||void 0===Ee||null===(n=Ee.keysecure)||void 0===n||null===(l=n.credentials)||void 0===l?void 0:l.token)||"",domain:(null===Ee||void 0===Ee||null===(i=Ee.keysecure)||void 0===i||null===(t=i.credentials)||void 0===t?void 0:t.domain)||"",retry:parseInt(null===Ee||void 0===Ee||null===(o=Ee.keysecure)||void 0===o||null===(r=o.credentials)||void 0===r?void 0:r.retry)}},D)}};break;case"aws":M={aws:{secretsmanager:{endpoint:(null===Ke||void 0===Ke||null===(d=Ke.secretsmanager)||void 0===d?void 0:d.endpoint)||"",region:(null===Ke||void 0===Ke||null===(s=Ke.secretsmanager)||void 0===s?void 0:s.region)||"",kmskey:(null===Ke||void 0===Ke||null===(c=Ke.secretsmanager)||void 0===c?void 0:c.kmskey)||"",credentials:{accesskey:(null===Ke||void 0===Ke||null===(u=Ke.secretsmanager)||void 0===u||null===(v=u.credentials)||void 0===v?void 0:v.accesskey)||"",secretkey:(null===Ke||void 0===Ke||null===(m=Ke.secretsmanager)||void 0===m||null===(Z=m.credentials)||void 0===Z?void 0:Z.secretkey)||"",token:(null===Ke||void 0===Ke||null===(x=Ke.secretsmanager)||void 0===x||null===(g=x.credentials)||void 0===g?void 0:g.token)||""}}}};break;case"azure":M={azure:{keyvault:{endpoint:(null===Me||void 0===Me||null===(f=Me.keyvault)||void 0===f?void 0:f.endpoint)||"",credentials:{tenant_id:(null===Me||void 0===Me||null===(y=Me.keyvault)||void 0===y||null===(h=y.credentials)||void 0===h?void 0:h.tenant_id)||"",client_id:(null===Me||void 0===Me||null===(_=Me.keyvault)||void 0===_||null===(j=_.credentials)||void 0===j?void 0:j.client_id)||"",client_secret:(null===Me||void 0===Me||null===(k=Me.keyvault)||void 0===k||null===(b=k.credentials)||void 0===b?void 0:b.client_secret)||""}}}};break;case"gcp":M={gcp:{secretmanager:{project_id:(null===Ve||void 0===Ve||null===(C=Ve.secretmanager)||void 0===C?void 0:C.project_id)||"",endpoint:(null===Ve||void 0===Ve||null===(N=Ve.secretmanager)||void 0===N?void 0:N.endpoint)||"",credentials:{client_email:(null===Ve||void 0===Ve||null===(w=Ve.secretmanager)||void 0===w||null===(R=w.credentials)||void 0===R?void 0:R.client_email)||"",client_id:(null===Ve||void 0===Ve||null===(S=Ve.secretmanager)||void 0===S||null===(F=S.credentials)||void 0===F?void 0:F.client_id)||"",private_key_id:(null===Ve||void 0===Ve||null===(P=Ve.secretmanager)||void 0===P||null===(K=P.credentials)||void 0===K?void 0:K.private_key_id)||"",private_key:(null===Ve||void 0===Ve||null===(I=Ve.secretmanager)||void 0===I||null===(A=I.credentials)||void 0===A?void 0:A.private_key)||""}}}};break;case"vault":var B=null,L=null;null!==Gn&&void 0!==Gn&&Gn.encoded_key&&null!==Gn&&void 0!==Gn&&Gn.encoded_cert&&(B={key:null===Gn||void 0===Gn?void 0:Gn.encoded_key,crt:null===Gn||void 0===Gn?void 0:Gn.encoded_cert}),null!==Wn&&void 0!==Wn&&Wn.encoded_cert&&(L={ca:null===Wn||void 0===Wn?void 0:Wn.encoded_cert});var V=null;(B||L)&&(V={tls:(0,a.Z)((0,a.Z)({},B),L)}),M={vault:(0,a.Z)((0,a.Z)({endpoint:(null===Re||void 0===Re?void 0:Re.endpoint)||"",engine:(null===Re||void 0===Re?void 0:Re.engine)||"",namespace:(null===Re||void 0===Re?void 0:Re.namespace)||"",prefix:(null===Re||void 0===Re?void 0:Re.prefix)||"",approle:{engine:(null===Re||void 0===Re||null===(z=Re.approle)||void 0===z?void 0:z.engine)||"",id:(null===Re||void 0===Re||null===(E=Re.approle)||void 0===E?void 0:E.id)||"",secret:(null===Re||void 0===Re||null===(T=Re.approle)||void 0===T?void 0:T.secret)||"",retry:parseInt(null===Re||void 0===Re||null===(q=Re.approle)||void 0===q?void 0:q.retry)}},V),{},{status:{ping:parseInt(null===Re||void 0===Re||null===(G=Re.status)||void 0===G?void 0:G.ping)}})}}var U={},O={};null!==un&&void 0!==un&&un.encoded_key&&null!==un&&void 0!==un&&un.encoded_cert&&(O={client:{key:null===un||void 0===un?void 0:un.encoded_key,crt:null===un||void 0===un?void 0:un.encoded_cert}}),null!==Ln&&void 0!==Ln&&Ln.encoded_key&&null!==Ln&&void 0!==Ln&&Ln.encoded_cert&&(U={server:{key:null===Ln||void 0===Ln?void 0:Ln.encoded_key,crt:null===Ln||void 0===Ln?void 0:Ln.encoded_cert}});var W=(0,a.Z)((0,a.Z)((0,a.Z)({secretsToBeDeleted:Zn||[],replicas:ve,securityContext:be,image:xe},O),U),M);Je||(Xe(!0),p.Z.invoke("PUT","/api/v1/namespaces/".concat(null===ee||void 0===ee?void 0:ee.namespace,"/tenants/").concat(null===ee||void 0===ee?void 0:ee.name,"/encryption"),W).then((function(){ul(!1),Xe(!1),vl()})).catch((function(e){Xe(!1),ul(!1),ne(e)})))}else Je||(Xe(!0),p.Z.invoke("DELETE","/api/v1/namespaces/".concat(null===ee||void 0===ee?void 0:ee.namespace,"/tenants/").concat(null===ee||void 0===ee?void 0:ee.name,"/encryption"),{}).then((function(){vl(),Xe(!1)})).catch((function(e){Xe(!1),ne(e)})))},confirmationContent:(0,R.jsx)(h.Z,{children:te?"Data will be encrypted using and external KMS":"Current encrypted information will not be accessible"})}),(0,R.jsx)("h1",{className:X.sectionTitle,children:"Encryption"}),(0,R.jsx)("div",{className:X.actionsTray,children:(0,R.jsx)(Z.Z,{label:"Encryption at rest",indicatorLabels:["Enabled","Disabled"],checked:te,value:"tenant_encryption",id:"tenant-encryption",name:"tenant-encryption",onChange:function(e){ae(!te)},description:""})}),te&&(0,R.jsx)(s.Z,{className:X.paperWrapper,style:{marginBottom:15},children:(0,R.jsxs)(x.ZP,{container:!0,style:{},children:[(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.encryptionTypeOptions,children:(0,R.jsx)(y.Z,{currentSelection:de,id:"encryptionType",name:"encryptionType",label:"Encryption Options",onChange:function(e){se(e.target.value)},selectorOptions:[{label:"Vault",value:"vault"},{label:"AWS",value:"aws"},{label:"Gemalto",value:"gemalto"},{label:"GCP",value:"gcp"},{label:"Azure",value:"azure"}]})}),"vault"===de&&(0,R.jsxs)(c.Fragment,{children:[(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"vault_endpoint",name:"vault_endpoint",onChange:function(e){return Se((0,a.Z)((0,a.Z)({},Re),{},{endpoint:e.target.value}))},label:"Endpoint",value:(null===Re||void 0===Re?void 0:Re.endpoint)||"",error:al.vault_ping||"",required:!0})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"vault_engine",name:"vault_engine",onChange:function(e){return Se((0,a.Z)((0,a.Z)({},Re),{},{engine:e.target.value}))},label:"Engine",value:(null===Re||void 0===Re?void 0:Re.engine)||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"vault_namespace",name:"vault_namespace",onChange:function(e){return Se((0,a.Z)((0,a.Z)({},Re),{},{namespace:e.target.value}))},label:"Namespace",value:(null===Re||void 0===Re?void 0:Re.namespace)||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"vault_prefix",name:"vault_prefix",onChange:function(e){return Se((0,a.Z)((0,a.Z)({},Re),{},{prefix:e.target.value}))},label:"Prefix",value:(null===Re||void 0===Re?void 0:Re.prefix)||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,children:(0,R.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,R.jsx)("legend",{className:X.descriptionText,children:"App Role"}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"vault_approle_engine",name:"vault_approle_engine",onChange:function(e){return Se((0,a.Z)((0,a.Z)({},Re),{},{approle:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.approle),{},{engine:e.target.value})}))},label:"Engine",value:(null===Re||void 0===Re||null===(n=Re.approle)||void 0===n?void 0:n.engine)||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{type:yn?"text":"password",id:"vault_id",name:"vault_id",onChange:function(e){return Se((0,a.Z)((0,a.Z)({},Re),{},{approle:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.approle),{},{id:e.target.value})}))},label:"AppRole ID",value:(null===Re||void 0===Re||null===(l=Re.approle)||void 0===l?void 0:l.id)||"",required:!0,error:al.vault_id||"",overlayIcon:yn?(0,R.jsx)(j.Z,{}):(0,R.jsx)(k.Z,{}),overlayAction:function(){return hn(!yn)}})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{type:wn?"text":"password",id:"vault_secret",name:"vault_secret",onChange:function(e){return Se((0,a.Z)((0,a.Z)({},Re),{},{approle:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.approle),{},{secret:e.target.value})}))},label:"AppRole Secret",value:(null===Re||void 0===Re||null===(o=Re.approle)||void 0===o?void 0:o.secret)||"",required:!0,error:al.vault_secret||"",overlayIcon:wn?(0,R.jsx)(j.Z,{}):(0,R.jsx)(k.Z,{}),overlayAction:function(){return Rn(!wn)}})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{type:"number",min:"0",id:"vault_retry",name:"vault_retry",onChange:function(e){return Se((0,a.Z)((0,a.Z)({},Re),{},{approle:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.approle),{},{retry:e.target.value})}))},label:"Retry (Seconds)",error:al.vault_retry||"",value:(null===Re||void 0===Re||null===(r=Re.approle)||void 0===r?void 0:r.retry)||""})})]})}),(0,R.jsxs)(x.ZP,{container:!0,className:X.mutualTlsConfig,children:[(0,R.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,R.jsx)("legend",{className:X.descriptionText,children:"Mutual TLS authentication with KMS (optional)"}),Pn?(0,R.jsx)(w.Z,{certificateInfo:Pn,onDelete:function(){return ml(Pn)}}):(0,R.jsxs)(c.Fragment,{children:[(0,R.jsx)(g.Z,{onChange:function(e,n){return Mn({encoded_key:e||"",id:(null===Gn||void 0===Gn?void 0:Gn.id)||"",key:n||"",cert:(null===Gn||void 0===Gn?void 0:Gn.cert)||"",encoded_cert:(null===Gn||void 0===Gn?void 0:Gn.encoded_cert)||""})},accept:".key,.pem",id:"vault_key",name:"vault_key",label:"Key",value:(null===Gn||void 0===Gn?void 0:Gn.key)||""}),(0,R.jsx)(g.Z,{onChange:function(e,n){return Mn({encoded_key:(null===Gn||void 0===Gn?void 0:Gn.encoded_key)||"",id:(null===Gn||void 0===Gn?void 0:Gn.id)||"",key:(null===Gn||void 0===Gn?void 0:Gn.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"vault_cert",name:"vault_cert",label:"Cert",value:(null===Gn||void 0===Gn?void 0:Gn.cert)||""})]})]}),(0,R.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,R.jsx)("legend",{className:X.descriptionText,children:"KMS CA certificate (optional)"}),zn?(0,R.jsx)(w.Z,{certificateInfo:zn,onDelete:function(){return ml(zn)}}):(0,R.jsx)(g.Z,{onChange:function(e,n){return Hn({encoded_key:(null===Wn||void 0===Wn?void 0:Wn.encoded_key)||"",id:(null===Wn||void 0===Wn?void 0:Wn.id)||"",key:(null===Wn||void 0===Wn?void 0:Wn.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"vault_ca",name:"vault_ca",label:"CA",value:(null===Wn||void 0===Wn?void 0:Wn.cert)||""})]})]}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,style:{marginTop:15},children:(0,R.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,R.jsx)("legend",{className:X.descriptionText,children:"Status"}),(0,R.jsx)(f.Z,{type:"number",min:"0",id:"vault_ping",name:"vault_ping",onChange:function(e){return Se((0,a.Z)((0,a.Z)({},Re),{},{status:(0,a.Z)((0,a.Z)({},null===Re||void 0===Re?void 0:Re.status),{},{ping:e.target.value})}))},label:"Ping (Seconds)",error:al.vault_ping||"",value:(null===Re||void 0===Re||null===(d=Re.status)||void 0===d?void 0:d.ping)||""})]})})]}),"azure"===de&&(0,R.jsxs)(c.Fragment,{children:[(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"azure_endpoint",name:"azure_endpoint",onChange:function(e){return De((0,a.Z)((0,a.Z)({},Me),{},{keyvault:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me?void 0:Me.keyvault),{},{endpoint:e.target.value})}))},label:"Endpoint",error:al.azure_endpoint||"",value:(null===Me||void 0===Me||null===(u=Me.keyvault)||void 0===u?void 0:u.endpoint)||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,children:(0,R.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,R.jsx)("legend",{className:X.descriptionText,children:"Credentials"}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"azure_tenant_id",name:"azure_tenant_id",onChange:function(e){var n;return De((0,a.Z)((0,a.Z)({},Me),{},{keyvault:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me?void 0:Me.keyvault),{},{credentials:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me||null===(n=Me.keyvault)||void 0===n?void 0:n.credentials),{},{tenant_id:e.target.value})})}))},label:"Tenant ID",value:(null===Me||void 0===Me||null===(v=Me.keyvault)||void 0===v||null===(m=v.credentials)||void 0===m?void 0:m.tenant_id)||"",error:al.azure_tenant_id||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"azure_client_id",name:"azure_client_id",onChange:function(e){var n;return De((0,a.Z)((0,a.Z)({},Me),{},{keyvault:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me?void 0:Me.keyvault),{},{credentials:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me||null===(n=Me.keyvault)||void 0===n?void 0:n.credentials),{},{client_id:e.target.value})})}))},label:"Client ID",value:(null===Me||void 0===Me||null===(S=Me.keyvault)||void 0===S||null===(F=S.credentials)||void 0===F?void 0:F.client_id)||"",error:al.azure_client_id||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"azure_client_secret",name:"azure_client_secret",onChange:function(e){var n;return De((0,a.Z)((0,a.Z)({},Me),{},{keyvault:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me?void 0:Me.keyvault),{},{credentials:(0,a.Z)((0,a.Z)({},null===Me||void 0===Me||null===(n=Me.keyvault)||void 0===n?void 0:n.credentials),{},{client_secret:e.target.value})})}))},label:"Client Secret",value:(null===Me||void 0===Me||null===(P=Me.keyvault)||void 0===P||null===(K=P.credentials)||void 0===K?void 0:K.client_secret)||"",error:al.azure_client_secret||""})})]})})]}),"gcp"===de&&(0,R.jsxs)(c.Fragment,{children:[(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"gcp_project_id",name:"gcp_project_id",onChange:function(e){return Ue((0,a.Z)((0,a.Z)({},Ve),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Ve||void 0===Ve?void 0:Ve.secretmanager),{},{project_id:e.target.value})}))},label:"Project ID",value:(null===Ve||void 0===Ve?void 0:Ve.secretmanager.project_id)||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"gcp_endpoint",name:"gcp_endpoint",onChange:function(e){return Ue((0,a.Z)((0,a.Z)({},Ve),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Ve||void 0===Ve?void 0:Ve.secretmanager),{},{endpoint:e.target.value})}))},label:"Endpoint",value:(null===Ve||void 0===Ve?void 0:Ve.secretmanager.endpoint)||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,children:(0,R.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,R.jsx)("legend",{className:X.descriptionText,children:"Credentials"}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"gcp_client_email",name:"gcp_client_email",onChange:function(e){return Ue((0,a.Z)((0,a.Z)({},Ve),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Ve||void 0===Ve?void 0:Ve.secretmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ve||void 0===Ve?void 0:Ve.secretmanager.credentials),{},{client_email:e.target.value})})}))},label:"Client Email",value:(null===Ve||void 0===Ve||null===(I=Ve.secretmanager.credentials)||void 0===I?void 0:I.client_email)||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"gcp_client_id",name:"gcp_client_id",onChange:function(e){return Ue((0,a.Z)((0,a.Z)({},Ve),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Ve||void 0===Ve?void 0:Ve.secretmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ve||void 0===Ve?void 0:Ve.secretmanager.credentials),{},{client_id:e.target.value})})}))},label:"Client ID",value:(null===Ve||void 0===Ve||null===(A=Ve.secretmanager.credentials)||void 0===A?void 0:A.client_id)||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"gcp_private_key_id",name:"gcp_private_key_id",onChange:function(e){return Ue((0,a.Z)((0,a.Z)({},Ve),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Ve||void 0===Ve?void 0:Ve.secretmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ve||void 0===Ve?void 0:Ve.secretmanager.credentials),{},{private_key_id:e.target.value})})}))},label:"Private Key ID",value:(null===Ve||void 0===Ve||null===(z=Ve.secretmanager.credentials)||void 0===z?void 0:z.private_key_id)||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"gcp_private_key",name:"gcp_private_key",onChange:function(e){return Ue((0,a.Z)((0,a.Z)({},Ve),{},{secretmanager:(0,a.Z)((0,a.Z)({},null===Ve||void 0===Ve?void 0:Ve.secretmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ve||void 0===Ve?void 0:Ve.secretmanager.credentials),{},{private_key:e.target.value})})}))},label:"Private Key",value:(null===Ve||void 0===Ve||null===(E=Ve.secretmanager.credentials)||void 0===E?void 0:E.private_key)||""})})]})})]}),"aws"===de&&(0,R.jsxs)(c.Fragment,{children:[(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"aws_endpoint",name:"aws_endpoint",onChange:function(e){return Ie((0,a.Z)((0,a.Z)({},Ke),{},{secretsmanager:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke?void 0:Ke.secretsmanager),{},{endpoint:e.target.value})}))},label:"Endpoint",value:(null===Ke||void 0===Ke||null===(T=Ke.secretsmanager)||void 0===T?void 0:T.endpoint)||"",required:!0,error:al.aws_endpoint||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"aws_region",name:"aws_region",onChange:function(e){return Ie((0,a.Z)((0,a.Z)({},Ke),{},{secretsmanager:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke?void 0:Ke.secretsmanager),{},{region:e.target.value})}))},label:"Region",value:(null===Ke||void 0===Ke||null===(q=Ke.secretsmanager)||void 0===q?void 0:q.region)||"",error:al.aws_region||"",required:!0})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"aws_kmsKey",name:"aws_kmsKey",onChange:function(e){return Ie((0,a.Z)((0,a.Z)({},Ke),{},{secretsmanager:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke?void 0:Ke.secretsmanager),{},{kmskey:e.target.value})}))},label:"KMS Key",value:(null===Ke||void 0===Ke||null===(G=Ke.secretsmanager)||void 0===G?void 0:G.kmskey)||""})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,children:(0,R.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,R.jsx)("legend",{className:X.descriptionText,children:"Credentials"}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"aws_accessKey",name:"aws_accessKey",onChange:function(e){var n;return Ie((0,a.Z)((0,a.Z)({},Ke),{},{secretsmanager:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke?void 0:Ke.secretsmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke||null===(n=Ke.secretsmanager)||void 0===n?void 0:n.credentials),{},{accesskey:e.target.value})})}))},label:"Access Key",value:(null===Ke||void 0===Ke||null===(M=Ke.secretsmanager)||void 0===M||null===(D=M.credentials)||void 0===D?void 0:D.accesskey)||"",error:al.aws_accessKey||"",required:!0})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"aws_secretKey",name:"aws_secretKey",onChange:function(e){var n;return Ie((0,a.Z)((0,a.Z)({},Ke),{},{secretsmanager:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke?void 0:Ke.secretsmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke||null===(n=Ke.secretsmanager)||void 0===n?void 0:n.credentials),{},{secretkey:e.target.value})})}))},label:"Secret Key",value:(null===Ke||void 0===Ke||null===(B=Ke.secretsmanager)||void 0===B||null===(L=B.credentials)||void 0===L?void 0:L.secretkey)||"",error:al.aws_secretKey||"",required:!0})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"aws_token",name:"aws_token",onChange:function(e){var n;return Ie((0,a.Z)((0,a.Z)({},Ke),{},{secretsmanager:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke?void 0:Ke.secretsmanager),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ke||void 0===Ke||null===(n=Ke.secretsmanager)||void 0===n?void 0:n.credentials),{},{token:e.target.value})})}))},label:"Token",value:(null===Ke||void 0===Ke||null===(V=Ke.secretsmanager)||void 0===V||null===(U=V.credentials)||void 0===U?void 0:U.token)||""})})]})})]}),"gemalto"===de&&(0,R.jsxs)(c.Fragment,{children:[(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"gemalto_endpoint",name:"gemalto_endpoint",onChange:function(e){return Te((0,a.Z)((0,a.Z)({},Ee),{},{keysecure:(0,a.Z)((0,a.Z)({},null===Ee||void 0===Ee?void 0:Ee.keysecure),{},{endpoint:e.target.value})}))},label:"Endpoint",value:(null===Ee||void 0===Ee||null===(O=Ee.keysecure)||void 0===O?void 0:O.endpoint)||"",error:al.gemalto_endpoint||"",required:!0})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,R.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,R.jsx)("legend",{className:X.descriptionText,children:"Credentials"}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"gemalto_token",name:"gemalto_token",onChange:function(e){var n;return Te((0,a.Z)((0,a.Z)({},Ee),{},{keysecure:(0,a.Z)((0,a.Z)({},null===Ee||void 0===Ee?void 0:Ee.keysecure),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ee||void 0===Ee||null===(n=Ee.keysecure)||void 0===n?void 0:n.credentials),{},{token:e.target.value})})}))},label:"Token",value:(null===Ee||void 0===Ee||null===(W=Ee.keysecure)||void 0===W||null===(H=W.credentials)||void 0===H?void 0:H.token)||"",error:al.gemalto_token||"",required:!0})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{id:"gemalto_domain",name:"gemalto_domain",onChange:function(e){var n;return Te((0,a.Z)((0,a.Z)({},Ee),{},{keysecure:(0,a.Z)((0,a.Z)({},null===Ee||void 0===Ee?void 0:Ee.keysecure),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ee||void 0===Ee||null===(n=Ee.keysecure)||void 0===n?void 0:n.credentials),{},{domain:e.target.value})})}))},label:"Domain",value:(null===Ee||void 0===Ee||null===(Y=Ee.keysecure)||void 0===Y||null===(Q=Y.credentials)||void 0===Q?void 0:Q.domain)||"",error:al.gemalto_domain||"",required:!0})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.formFieldRow,children:(0,R.jsx)(f.Z,{type:"number",min:"0",id:"gemalto_retry",name:"gemalto_retry",onChange:function(e){var n;return Te((0,a.Z)((0,a.Z)({},Ee),{},{keysecure:(0,a.Z)((0,a.Z)({},null===Ee||void 0===Ee?void 0:Ee.keysecure),{},{credentials:(0,a.Z)((0,a.Z)({},null===Ee||void 0===Ee||null===(n=Ee.keysecure)||void 0===n?void 0:n.credentials),{},{retry:e.target.value})})}))},label:"Retry (seconds)",value:(null===Ee||void 0===Ee||null===($=Ee.keysecure)||void 0===$||null===(J=$.credentials)||void 0===J?void 0:J.retry)||"",error:al.gemalto_retry||""})})]})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,R.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,R.jsx)("legend",{className:X.descriptionText,children:"Custom CA Root certificate verification"}),(0,R.jsx)(g.Z,{onChange:function(e,n){},accept:".cer,.crt,.cert,.pem",id:"gemalto_ca",name:"gemalto_ca",label:"CA",value:""}),$n?(0,R.jsx)(w.Z,{certificateInfo:$n,onDelete:function(){return ml($n)}}):(0,R.jsx)(g.Z,{onChange:function(e,n){return ll({encoded_key:(null===nl||void 0===nl?void 0:nl.encoded_key)||"",id:(null===nl||void 0===nl?void 0:nl.id)||"",key:(null===nl||void 0===nl?void 0:nl.key)||"",cert:n||"",encoded_cert:e||""})},accept:".cer,.crt,.cert,.pem",id:"gemalto_ca",name:"gemalto_ca",label:"CA",value:(null===nl||void 0===nl?void 0:nl.cert)||""})]})})]}),(0,R.jsx)("div",{className:X.headerElement,children:(0,R.jsx)("h4",{className:X.h3Section,children:"Additional Configurations"})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,children:(0,R.jsx)(Z.Z,{value:"enableCustomCertsForKES",id:"enableCustomCertsForKES",name:"enableCustomCertsForKES",checked:He,onChange:function(e){return Ye(!He)},label:"Custom Certificates"})}),He&&(0,R.jsxs)(c.Fragment,{children:[(0,R.jsx)(x.ZP,{container:!0,children:(0,R.jsx)(x.ZP,{item:!0,xs:12,style:{marginBottom:15},children:(0,R.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,R.jsx)("legend",{className:X.descriptionText,children:"Encryption Service Certificates"}),ln?(0,R.jsx)(w.Z,{certificateInfo:ln,onDelete:function(){return ml(ln)}}):(0,R.jsxs)(c.Fragment,{children:[(0,R.jsx)(g.Z,{onChange:function(e,n){Vn({encoded_key:e||"",id:(null===Ln||void 0===Ln?void 0:Ln.id)||"",key:n||"",cert:(null===Ln||void 0===Ln?void 0:Ln.cert)||"",encoded_cert:(null===Ln||void 0===Ln?void 0:Ln.encoded_cert)||""}),rl("serverKey")},accept:".key,.pem",id:"serverKey",name:"serverKey",label:"Key",value:null===Ln||void 0===Ln?void 0:Ln.key}),(0,R.jsx)(g.Z,{onChange:function(e,n){Vn({encoded_key:(null===Ln||void 0===Ln?void 0:Ln.encoded_key)||"",id:(null===Ln||void 0===Ln?void 0:Ln.id)||"",key:(null===Ln||void 0===Ln?void 0:Ln.key)||"",cert:n||"",encoded_cert:e||""}),rl("serverCert")},accept:".cer,.crt,.cert,.pem",id:"serverCert",name:"serverCert",label:"Cert",value:null===Ln||void 0===Ln?void 0:Ln.cert})]})]})})}),(0,R.jsx)(x.ZP,{container:!0,style:{marginBottom:15},children:(0,R.jsx)(x.ZP,{item:!0,xs:12,children:(0,R.jsxs)("fieldset",{className:X.fieldGroup,children:[(0,R.jsx)("legend",{className:X.descriptionText,children:"Mutual TLS authentication with MinIO"}),rn?(0,R.jsx)(w.Z,{certificateInfo:rn,onDelete:function(){return ml(rn)}}):(0,R.jsxs)(c.Fragment,{children:[(0,R.jsx)(g.Z,{onChange:function(e,n){vn({encoded_key:e||"",id:(null===un||void 0===un?void 0:un.id)||"",key:n||"",cert:(null===un||void 0===un?void 0:un.cert)||"",encoded_cert:(null===un||void 0===un?void 0:un.encoded_cert)||""}),rl("clientKey")},accept:".key,.pem",id:"clientKey",name:"clientKey",label:"Key",value:null===un||void 0===un?void 0:un.key}),(0,R.jsx)(g.Z,{onChange:function(e,n){vn({encoded_key:(null===un||void 0===un?void 0:un.encoded_key)||"",id:(null===un||void 0===un?void 0:un.id)||"",key:(null===un||void 0===un?void 0:un.key)||"",cert:n||"",encoded_cert:e||""}),rl("clientCert")},accept:".cer,.crt,.cert,.pem",id:"clientCert",name:"clientCert",label:"Cert",value:null===un||void 0===un?void 0:un.cert})]})]})})})]}),(0,R.jsxs)(x.ZP,{item:!0,xs:12,children:[(0,R.jsx)(x.ZP,{item:!0,xs:12,classes:X.formFieldRow,children:(0,R.jsx)(f.Z,{type:"text",id:"image",name:"image",onChange:function(e){return ge(e.target.value)},label:"Image",placeholder:"minio/kes:v0.17.6",value:xe})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,classes:X.formFieldRow,children:(0,R.jsx)(f.Z,{type:"number",min:"1",id:"replicas",name:"replicas",onChange:function(e){return me(e.target.value)},label:"Replicas",value:ve,required:!0,error:al.replicas||""})}),(0,R.jsxs)("fieldset",{className:X.fieldGroup,style:{marginTop:15},children:[(0,R.jsx)("legend",{className:X.descriptionText,children:"SecurityContext for KES pods"}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.kesSecurityContext,children:(0,R.jsxs)("div",{className:"".concat(X.multiContainer," ").concat(X.responsiveContainer),children:[(0,R.jsx)("div",{className:"".concat(X.formFieldRow," ").concat(X.rightSpacer),children:(0,R.jsx)(f.Z,{type:"number",id:"kes_securityContext_runAsUser",name:"kes_securityContext_runAsUser",onChange:function(e){Ce((0,a.Z)((0,a.Z)({},be),{},{runAsUser:e.target.value}))},label:"Run As User",value:be.runAsUser,required:!0,error:al.kes_securityContext_runAsUser||"",min:"0"})}),(0,R.jsx)("div",{className:"".concat(X.formFieldRow," ").concat(X.rightSpacer),children:(0,R.jsx)(f.Z,{type:"number",id:"kes_securityContext_runAsGroup",name:"kes_securityContext_runAsGroup",onChange:function(e){Ce((0,a.Z)((0,a.Z)({},be),{},{runAsGroup:e.target.value}))},label:"Run As Group",value:be.runAsGroup,required:!0,error:al.kes_securityContext_runAsGroup||"",min:"0"})}),(0,R.jsx)("div",{className:"".concat(X.formFieldRow," ").concat(X.rightSpacer),children:(0,R.jsx)(f.Z,{type:"number",id:"kes_securityContext_fsGroup",name:"kes_securityContext_fsGroup",onChange:function(e){Ce((0,a.Z)((0,a.Z)({},be),{},{fsGroup:e.target.value}))},label:"FsGroup",value:be.fsGroup,required:!0,error:al.kes_securityContext_fsGroup||"",min:"0"})})]})}),(0,R.jsx)("br",{}),(0,R.jsx)(x.ZP,{item:!0,xs:12,children:(0,R.jsx)("div",{className:X.multiContainer,children:(0,R.jsx)(Z.Z,{value:"kesSecurityContextRunAsNonRoot",id:"kes_securityContext_runAsNonRoot",name:"kes_securityContext_runAsNonRoot",checked:be.runAsNonRoot,onChange:function(e){var n=e.target.checked;Ce((0,a.Z)((0,a.Z)({},be),{},{runAsNonRoot:n}))},label:"Do not run as Root"})})})]})]})]})}),(0,R.jsx)(x.ZP,{item:!0,xs:12,className:X.buttonContainer,children:(0,R.jsx)(_.Z,{type:"submit",variant:"contained",color:"primary",disabled:!kn,onClick:function(){return ul(!0)},children:"Save"})})]})})})))},22512:function(e,n,l){var i=l(72791),t=l(20890),a=l(11135),o=l(25787),r=l(80184);n.Z=(0,o.Z)((function(e){var n;return(0,a.Z)({errorBlock:{color:(null===(n=e.palette)||void 0===n?void 0:n.error.main)||"#C83B51"}})}))((function(e){var n=e.classes,l=e.errorMessage,a=e.withBreak,o=void 0===a||a;return(0,r.jsxs)(i.Fragment,{children:[o&&(0,r.jsx)("br",{}),(0,r.jsx)(t.Z,{component:"p",variant:"body1",className:n.errorBlock,children:l})]})}))},3579:function(e,n,l){var i=l(95318);n.Z=void 0;var t=i(l(45649)),a=l(80184),o=(0,t.default)((0,a.jsx)("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"RemoveRedEye");n.Z=o},20165:function(e,n,l){var i=l(95318);n.Z=void 0;var t=i(l(45649)),a=l(80184),o=(0,t.default)((0,a.jsx)("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");n.Z=o}}]); +//# sourceMappingURL=6683.c02ad0d0.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6683.c02ad0d0.chunk.js.map b/portal-ui/build/static/js/6683.c02ad0d0.chunk.js.map new file mode 100644 index 000000000..8649d123d --- /dev/null +++ b/portal-ui/build/static/js/6683.c02ad0d0.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6683.c02ad0d0.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/FileSelector/FileSelector.tsx","screens/Console/Common/FormComponents/FileSelector/utils.ts","screens/Console/Common/FormComponents/RadioGroupSelector/RadioGroupSelector.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","icons/CertificateIcon.tsx","screens/Console/Common/TLSCertificate/TLSCertificate.tsx","screens/Console/Tenants/TenantDetails/TenantEncryption.tsx","screens/shared/ErrorBlock.tsx","../node_modules/@mui/icons-material/RemoveRedEye.js","../node_modules/@mui/icons-material/VisibilityOff.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, { useState } from \"react\";\nimport get from \"lodash/get\";\nimport { Grid, InputLabel, Tooltip } from \"@mui/material\";\nimport IconButton from \"@mui/material/IconButton\";\nimport AttachFileIcon from \"@mui/icons-material/AttachFile\";\nimport CancelIcon from \"@mui/icons-material/Cancel\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n fieldBasic,\n fileInputStyles,\n tooltipHelper,\n} from \"../common/styleLibrary\";\nimport { fileProcess } from \"./utils\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\nimport ErrorBlock from \"../../../../shared/ErrorBlock\";\n\ninterface InputBoxProps {\n label: string;\n classes: any;\n onChange: (e: string, i: string) => void;\n id: string;\n name: string;\n disabled?: boolean;\n tooltip?: string;\n required?: boolean;\n error?: string;\n accept?: string;\n value?: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n valueString: {\n maxWidth: 350,\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n marginTop: 2,\n },\n fileInputField: {\n margin: \"13px 0\",\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n ...fileInputStyles,\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontWeight: \"normal\",\n },\n textBoxContainer: {\n ...fieldBasic.textBoxContainer,\n maxWidth: \"100%\",\n border: \"1px solid #eaeaea\",\n paddingLeft: \"15px\",\n },\n });\n\nconst FileSelector = ({\n label,\n classes,\n onChange,\n id,\n name,\n disabled = false,\n tooltip = \"\",\n required,\n error = \"\",\n accept = \"\",\n value = \"\",\n}: InputBoxProps) => {\n const [showFileSelector, setShowSelector] = useState(false);\n\n return (\n \n \n {label !== \"\" && (\n \n \n {label}\n {required ? \"*\" : \"\"}\n \n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n \n )}\n\n {showFileSelector || value === \"\" ? (\n
    \n {\n const fileName = get(e, \"target.files[0].name\", \"\");\n fileProcess(e, (data: any) => {\n onChange(data, fileName);\n });\n }}\n accept={accept}\n required={required}\n disabled={disabled}\n className={classes.fileInputField}\n />\n\n {value !== \"\" && (\n {\n setShowSelector(false);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n )}\n\n {error !== \"\" && }\n
    \n ) : (\n
    \n
    {value}
    \n {\n setShowSelector(true);\n }}\n disableRipple={false}\n disableFocusRipple={false}\n size=\"small\"\n >\n \n \n
    \n )}\n \n
    \n );\n};\n\nexport default withStyles(styles)(FileSelector);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nexport const fileProcess = (evt: any, callback: any) => {\n const file = evt.target.files[0];\n const reader = new FileReader();\n reader.readAsDataURL(file);\n\n reader.onload = () => {\n // reader.readAsDataURL(file) output will be something like: data:application/x-x509-ca-cert;base64,LS0tLS1CRUdJTiBDRVJUSU\n // we care only about the actual base64 part (everything after \"data:application/x-x509-ca-cert;base64,\")\n const fileBase64 = reader.result;\n if (fileBase64) {\n const fileArray = fileBase64.toString().split(\"base64,\");\n\n if (fileArray.length === 2) {\n callback(fileArray[1]);\n }\n }\n };\n};\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React from \"react\";\nimport clsx from \"clsx\";\nimport Grid from \"@mui/material/Grid\";\nimport RadioGroup from \"@mui/material/RadioGroup\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Radio, { RadioProps } from \"@mui/material/Radio\";\nimport { InputLabel, Tooltip } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { fieldBasic, radioIcons, tooltipHelper } from \"../common/styleLibrary\";\nimport HelpIcon from \"../../../../../icons/HelpIcon\";\n\nexport interface SelectorTypes {\n label: string;\n value: string;\n}\n\ninterface RadioGroupProps {\n selectorOptions: SelectorTypes[];\n currentSelection: string;\n label: string;\n id: string;\n name: string;\n tooltip?: string;\n disableOptions?: boolean;\n onChange: (e: React.ChangeEvent) => void;\n classes: any;\n displayInColumn?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...fieldBasic,\n ...tooltipHelper,\n optionLabel: {\n \"&.Mui-disabled\": {\n \"& .MuiFormControlLabel-label\": {\n color: \"#9c9c9c\",\n },\n },\n \"&:last-child\": {\n marginRight: 0,\n },\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n },\n },\n checkedOption: {\n \"& .MuiFormControlLabel-label\": {\n fontSize: 12,\n color: \"#07193E\",\n fontWeight: 700,\n },\n },\n });\n\nconst radioStyles = makeStyles({\n root: {\n \"&:hover\": {\n backgroundColor: \"transparent\",\n },\n },\n ...radioIcons,\n});\n\nconst RadioButton = (props: RadioProps) => {\n const classes = radioStyles();\n\n return (\n }\n icon={}\n {...props}\n />\n );\n};\n\nexport const RadioGroupSelector = ({\n selectorOptions = [],\n currentSelection,\n label,\n id,\n name,\n onChange,\n tooltip = \"\",\n disableOptions = false,\n classes,\n displayInColumn = false,\n}: RadioGroupProps) => {\n return (\n \n \n \n {label}\n {tooltip !== \"\" && (\n
    \n \n
    \n \n
    \n
    \n
    \n )}\n
    \n
    \n \n \n {selectorOptions.map((selectorOption) => {\n return (\n }\n label={selectorOption.label}\n disabled={disableOptions}\n className={clsx(classes.optionLabel, {\n [classes.checkedOption]:\n selectorOption.value === currentSelection,\n })}\n />\n );\n })}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(RadioGroupSelector);\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst CertificateIcon = (props: SVGProps) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\nexport default CertificateIcon;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { ICertificateInfo } from \"../../Tenants/types\";\nimport LanguageIcon from \"@mui/icons-material/Language\";\nimport Chip from \"@mui/material/Chip\";\nimport {\n Typography,\n Divider,\n Box,\n Grid,\n Container,\n ListItemText,\n List,\n ListItem,\n ListItemAvatar,\n} from \"@mui/material\";\nimport EventBusyIcon from \"@mui/icons-material/EventBusy\";\nimport Moment from \"react-moment\";\nimport CertificateIcon from \"../../../../icons/CertificateIcon\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 0,\n margin: 0,\n border: 0,\n backgroundColor: \"transparent\",\n textDecoration: \"underline\",\n cursor: \"pointer\",\n fontSize: \"inherit\",\n color: theme.palette.info.main,\n fontFamily: \"Lato, sans-serif\",\n },\n certificateIcon: {\n float: \"left\",\n paddingTop: \"5px !important\",\n paddingRight: \"10px !important\",\n },\n certificateInfo: { float: \"right\" },\n certificateWrapper: {\n height: \"auto\",\n margin: 5,\n border: \"1px solid #E2E2E2\",\n userSelect: \"text\",\n borderRadius: 4,\n \"& h6\": {\n fontWeight: \"bold\",\n },\n \"& div\": {\n padding: 0,\n },\n },\n certificateExpiry: {\n color: \"#616161\",\n display: \"flex\",\n alignItems: \"center\",\n flexWrap: \"wrap\",\n marginBottom: 5,\n \"& .label\": {\n fontWeight: \"bold\",\n },\n },\n certificateDomains: {\n color: \"#616161\",\n \"& .label\": {\n fontWeight: \"bold\",\n },\n },\n certificatesList: {\n border: \"1px solid #E2E2E2\",\n borderRadius: 4,\n color: \"#616161\",\n textTransform: \"lowercase\",\n overflowY: \"scroll\",\n maxHeight: 145,\n marginBottom: 10,\n },\n certificatesListItem: {\n padding: \"0px 16px\",\n borderBottom: \"1px solid #E2E2E2\",\n \"& div\": {\n minWidth: 0,\n },\n \"& svg\": {\n fontSize: 12,\n marginRight: 10,\n opacity: 0.5,\n },\n \"& span\": {\n fontSize: 12,\n },\n },\n });\n\ninterface ITLSCertificate {\n classes: any;\n certificateInfo: ICertificateInfo;\n onDelete: any;\n}\n\nconst TLSCertificate = ({\n classes,\n certificateInfo,\n onDelete = () => {},\n}: ITLSCertificate) => {\n const certificates = certificateInfo.domains || [];\n return (\n \n \n \n \n \n \n {certificateInfo.name}\n \n \n \n  \n Expiry: \n \n {certificateInfo.expiry}\n \n \n \n
    \n \n {`${certificates.length} Domain (s):`}\n \n \n {certificates.map((dom) => (\n \n \n \n \n \n \n ))}\n \n
    \n \n }\n onDelete={onDelete}\n />\n );\n};\n\nexport default withStyles(styles)(TLSCertificate);\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 { ITenant } from \"../ListTenants/types\";\nimport {\n ICertificateInfo,\n ITenantEncryptionResponse,\n ISecurityContext,\n} from \"../types\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n createTenantCommon,\n formFieldStyles,\n modalBasic,\n spacingUtils,\n tenantDetailsStyles,\n wizardCommon,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport Paper from \"@mui/material/Paper\";\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { connect } from \"react-redux\";\nimport { AppState } from \"../../../../store\";\nimport { setTenantDetailsLoad } from \"../actions\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\nimport FormSwitchWrapper from \"../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport FileSelector from \"../../Common/FormComponents/FileSelector/FileSelector\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport RadioGroupSelector from \"../../Common/FormComponents/RadioGroupSelector/RadioGroupSelector\";\nimport { Button, DialogContentText } from \"@mui/material\";\nimport VisibilityOffIcon from \"@mui/icons-material/VisibilityOff\";\nimport RemoveRedEyeIcon from \"@mui/icons-material/RemoveRedEye\";\nimport { KeyPair } from \"../ListTenants/utils\";\nimport { clearValidationError } from \"../utils\";\nimport {\n commonFormValidation,\n IValidation,\n} from \"../../../../utils/validationFunctions\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport TLSCertificate from \"../../Common/TLSCertificate/TLSCertificate\";\n\ninterface ITenantEncryption {\n classes: any;\n loadingTenant: boolean;\n tenant: ITenant | null;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...spacingUtils,\n loaderAlign: {\n textAlign: \"center\",\n },\n title: {\n marginTop: 35,\n },\n bold: { fontWeight: \"bold\" },\n italic: { fontStyle: \"italic\" },\n paperContainer: {\n padding: \"15px 15px 15px 50px\",\n },\n certificateInfo: {\n height: \"auto\",\n margin: 5,\n },\n fileItem: {\n marginRight: 10,\n display: \"flex\",\n \"& div label\": {\n minWidth: 50,\n },\n\n \"@media (max-width: 900px)\": {\n flexFlow: \"column\",\n },\n },\n certInputRow: {\n display: \"flex\",\n alignItems: \"center\",\n borderBottom: \"1px solid #eaeaea\",\n marginBottom: 10,\n },\n caCertsRow: {\n borderBottom: \"1px solid #eaeaea\",\n display: \"flex\",\n alignItems: \"center\",\n marginBottom: 10,\n },\n ...containerForHeader(theme.spacing(4)),\n ...createTenantCommon,\n ...formFieldStyles,\n ...modalBasic,\n ...wizardCommon,\n });\n\nconst TenantEncryption = ({\n classes,\n tenant,\n setErrorSnackMessage,\n}: ITenantEncryption) => {\n const [encryptionEnabled, setEncryptionEnabled] = useState(false);\n const [encryptionType, setEncryptionType] = useState(\"vault\");\n const [replicas, setReplicas] = useState(\"2\");\n const [image, setImage] = useState(\"\");\n const [refreshEncryptionInfo, setRefreshEncryptionInfo] =\n useState(false);\n const [securityContext, setSecurityContext] = useState({\n fsGroup: \"1000\",\n runAsGroup: \"1000\",\n runAsNonRoot: true,\n runAsUser: \"1000\",\n });\n const [vaultConfiguration, setVaultConfiguration] = useState(null);\n const [awsConfiguration, setAWSConfiguration] = useState(null);\n const [gemaltoConfiguration, setGemaltoConfiguration] = useState(null);\n const [azureConfiguration, setAzureConfiguration] = useState(null);\n const [gcpConfiguration, setGCPConfiguration] = useState(null);\n const [enabledCustomCertificates, setEnabledCustomCertificates] =\n useState(false);\n const [updatingEncryption, setUpdatingEncryption] = useState(false);\n const [serverTLSCertificateSecret, setServerTLSCertificateSecret] =\n useState(null);\n const [mTLSCertificateSecret, setMTLSCertificateSecret] =\n useState(null);\n const [mTLSCertificate, setMTLSCertificate] = useState(null);\n const [certificatesToBeRemoved, setCertificatesToBeRemoved] = useState<\n string[]\n >([]);\n const [showVaultAppRoleID, setShowVaultAppRoleID] = useState(false);\n const [isFormValid, setIsFormValid] = useState(false);\n const [showVaultAppRoleSecret, setShowVaultAppRoleSecret] =\n useState(false);\n const [vaultClientCertificateSecret, setVaultClientCertificateSecret] =\n useState(null);\n const [vaultCACertificateSecret, setVaultCACertificateSecret] =\n useState(null);\n const [vaultClientCertificate, setVaultClientCertificate] =\n useState(null);\n const [serverCertificate, setServerCertificate] = useState(\n null\n );\n const [vaultCACertificate, setVaultCACertificate] = useState(\n null\n );\n const [gemaltoCACertificateSecret, setGemaltoCACertificateSecret] =\n useState(null);\n const [gemaltoCACertificate, setGemaltotCACertificate] =\n useState(null);\n const [validationErrors, setValidationErrors] = useState({});\n const cleanValidation = (fieldName: string) => {\n setValidationErrors(clearValidationError(validationErrors, fieldName));\n };\n const [confirmOpen, setConfirmOpen] = useState(false);\n\n // Validation\n useEffect(() => {\n let encryptionValidation: IValidation[] = [];\n\n if (encryptionEnabled) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"replicas\",\n required: true,\n value: replicas,\n customValidation: parseInt(replicas) < 1,\n customValidationMessage: \"Replicas needs to be 1 or greater\",\n },\n {\n fieldKey: \"kes_securityContext_runAsUser\",\n required: true,\n value: securityContext.runAsUser,\n customValidation:\n securityContext.runAsUser === \"\" ||\n parseInt(securityContext.runAsUser) < 0,\n customValidationMessage: `runAsUser must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_runAsGroup\",\n required: true,\n value: securityContext.runAsGroup,\n customValidation:\n securityContext.runAsGroup === \"\" ||\n parseInt(securityContext.runAsGroup) < 0,\n customValidationMessage: `runAsGroup must be present and be 0 or more`,\n },\n {\n fieldKey: \"kes_securityContext_fsGroup\",\n required: true,\n value: securityContext.fsGroup,\n customValidation:\n securityContext.fsGroup === \"\" ||\n parseInt(securityContext.fsGroup) < 0,\n customValidationMessage: `fsGroup must be present and be 0 or more`,\n },\n ];\n\n if (enabledCustomCertificates) {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"serverKey\",\n required: false,\n value: serverCertificate?.encoded_key || \"\",\n },\n {\n fieldKey: \"serverCert\",\n required: false,\n value: serverCertificate?.encoded_cert || \"\",\n },\n {\n fieldKey: \"clientKey\",\n required: false,\n value: mTLSCertificate?.encoded_key || \"\",\n },\n {\n fieldKey: \"clientCert\",\n required: false,\n value: mTLSCertificate?.encoded_cert || \"\",\n },\n ];\n }\n\n if (encryptionType === \"vault\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"vault_endpoint\",\n required: true,\n value: vaultConfiguration?.endpoint,\n },\n {\n fieldKey: \"vault_id\",\n required: true,\n value: vaultConfiguration?.approle?.id,\n },\n {\n fieldKey: \"vault_secret\",\n required: true,\n value: vaultConfiguration?.approle?.secret,\n },\n {\n fieldKey: \"vault_ping\",\n required: false,\n value: vaultConfiguration?.status?.ping,\n customValidation: parseInt(vaultConfiguration?.status?.ping) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n {\n fieldKey: \"vault_retry\",\n required: false,\n value: vaultConfiguration?.approle?.retry,\n customValidation: parseInt(vaultConfiguration?.approle?.retry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n if (encryptionType === \"aws\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"aws_endpoint\",\n required: true,\n value: awsConfiguration?.secretsmanager?.endpoint,\n },\n {\n fieldKey: \"aws_region\",\n required: true,\n value: awsConfiguration?.secretsmanager?.region,\n },\n {\n fieldKey: \"aws_accessKey\",\n required: true,\n value: awsConfiguration?.secretsmanager?.credentials?.accesskey,\n },\n {\n fieldKey: \"aws_secretKey\",\n required: true,\n value: awsConfiguration?.secretsmanager?.credentials?.secretkey,\n },\n ];\n }\n\n if (encryptionType === \"gemalto\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"gemalto_endpoint\",\n required: true,\n value: gemaltoConfiguration?.keysecure?.endpoint,\n },\n {\n fieldKey: \"gemalto_token\",\n required: true,\n value: gemaltoConfiguration?.keysecure?.credentials?.token,\n },\n {\n fieldKey: \"gemalto_domain\",\n required: true,\n value: gemaltoConfiguration?.keysecure?.credentials?.domain,\n },\n {\n fieldKey: \"gemalto_retry\",\n required: false,\n value: gemaltoConfiguration?.keysecure?.credentials?.retry,\n customValidation:\n parseInt(gemaltoConfiguration?.keysecure?.credentials?.retry) < 0,\n customValidationMessage: \"Value needs to be 0 or greater\",\n },\n ];\n }\n\n if (encryptionType === \"azure\") {\n encryptionValidation = [\n ...encryptionValidation,\n {\n fieldKey: \"azure_endpoint\",\n required: true,\n value: azureConfiguration?.keyvault?.endpoint,\n },\n {\n fieldKey: \"azure_tenant_id\",\n required: true,\n value: azureConfiguration?.keyvault?.credentials?.tenant_id,\n },\n {\n fieldKey: \"azure_client_id\",\n required: true,\n value: azureConfiguration?.keyvault?.credentials?.client_id,\n },\n {\n fieldKey: \"azure_client_secret\",\n required: true,\n value: azureConfiguration?.keyvault?.credentials?.client_secret,\n },\n ];\n }\n }\n\n const commonVal = commonFormValidation(encryptionValidation);\n\n setIsFormValid(Object.keys(commonVal).length === 0);\n\n setValidationErrors(commonVal);\n }, [\n enabledCustomCertificates,\n encryptionEnabled,\n encryptionType,\n serverCertificate?.encoded_key,\n serverCertificate?.encoded_cert,\n mTLSCertificate?.encoded_key,\n mTLSCertificate?.encoded_cert,\n vaultClientCertificate?.encoded_key,\n vaultClientCertificate?.encoded_cert,\n vaultCACertificate?.encoded_key,\n vaultCACertificate?.encoded_cert,\n securityContext,\n vaultConfiguration,\n awsConfiguration,\n gemaltoConfiguration,\n azureConfiguration,\n gcpConfiguration,\n replicas,\n ]);\n\n const fetchEncryptionInfo = () => {\n if (!refreshEncryptionInfo) {\n setRefreshEncryptionInfo(true);\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/encryption`\n )\n .then((resp: ITenantEncryptionResponse) => {\n if (resp.vault) {\n setEncryptionType(\"vault\");\n setVaultConfiguration(resp.vault);\n if (resp.vault.tls) {\n setVaultClientCertificateSecret(resp.vault.tls.crt);\n setVaultCACertificateSecret(resp.vault.tls.ca);\n }\n } else if (resp.aws) {\n setEncryptionType(\"aws\");\n setAWSConfiguration(resp.aws);\n } else if (resp.gemalto) {\n setEncryptionType(\"gemalto\");\n setGemaltoConfiguration(resp.gemalto);\n if (resp.gemalto.keysecure.tls) {\n setGemaltoCACertificateSecret(resp.gemalto.keysecure.tls.ca);\n }\n } else if (resp.gcp) {\n setEncryptionType(\"gcp\");\n setGCPConfiguration(resp.gcp);\n } else if (resp.azure) {\n setEncryptionType(\"azure\");\n setAzureConfiguration(resp.azure);\n }\n\n setEncryptionEnabled(true);\n setImage(resp.image);\n setReplicas(resp.replicas);\n if (resp.securityContext) {\n setSecurityContext(resp.securityContext);\n }\n if (resp.server || resp.mtls_client) {\n setEnabledCustomCertificates(true);\n }\n if (resp.server) {\n setServerTLSCertificateSecret(resp.server);\n }\n if (resp.mtls_client) {\n setMTLSCertificateSecret(resp.mtls_client);\n }\n setRefreshEncryptionInfo(false);\n })\n .catch((err: ErrorResponseHandler) => {\n console.log(err);\n setRefreshEncryptionInfo(false);\n });\n }\n };\n\n useEffect(() => {\n fetchEncryptionInfo();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const removeCertificate = (certificateInfo: ICertificateInfo) => {\n setCertificatesToBeRemoved([\n ...certificatesToBeRemoved,\n certificateInfo.name,\n ]);\n if (certificateInfo.name === serverTLSCertificateSecret?.name) {\n setServerTLSCertificateSecret(null);\n }\n if (certificateInfo.name === mTLSCertificateSecret?.name) {\n setMTLSCertificateSecret(null);\n }\n if (certificateInfo.name === vaultClientCertificateSecret?.name) {\n setVaultClientCertificateSecret(null);\n }\n if (certificateInfo.name === vaultCACertificateSecret?.name) {\n setVaultCACertificateSecret(null);\n }\n if (certificateInfo.name === gemaltoCACertificateSecret?.name) {\n setGemaltoCACertificateSecret(null);\n }\n };\n\n const updateEncryptionConfiguration = () => {\n if (encryptionEnabled) {\n let insertEncrypt = {};\n switch (encryptionType) {\n case \"gemalto\":\n let gemaltoCAIntroduce = {};\n\n if (gemaltoCACertificate?.encoded_cert) {\n gemaltoCAIntroduce = {\n tls: {\n ca: gemaltoCACertificate?.encoded_cert,\n },\n };\n }\n insertEncrypt = {\n gemalto: {\n keysecure: {\n endpoint: gemaltoConfiguration?.keysecure?.endpoint || \"\",\n credentials: {\n token:\n gemaltoConfiguration?.keysecure?.credentials?.token || \"\",\n domain:\n gemaltoConfiguration?.keysecure?.credentials?.domain || \"\",\n retry: parseInt(\n gemaltoConfiguration?.keysecure?.credentials?.retry\n ),\n },\n ...gemaltoCAIntroduce,\n },\n },\n };\n break;\n case \"aws\":\n insertEncrypt = {\n aws: {\n secretsmanager: {\n endpoint: awsConfiguration?.secretsmanager?.endpoint || \"\",\n region: awsConfiguration?.secretsmanager?.region || \"\",\n kmskey: awsConfiguration?.secretsmanager?.kmskey || \"\",\n credentials: {\n accesskey:\n awsConfiguration?.secretsmanager?.credentials?.accesskey ||\n \"\",\n secretkey:\n awsConfiguration?.secretsmanager?.credentials?.secretkey ||\n \"\",\n token:\n awsConfiguration?.secretsmanager?.credentials?.token || \"\",\n },\n },\n },\n };\n break;\n case \"azure\":\n insertEncrypt = {\n azure: {\n keyvault: {\n endpoint: azureConfiguration?.keyvault?.endpoint || \"\",\n credentials: {\n tenant_id:\n azureConfiguration?.keyvault?.credentials?.tenant_id || \"\",\n client_id:\n azureConfiguration?.keyvault?.credentials?.client_id || \"\",\n client_secret:\n azureConfiguration?.keyvault?.credentials?.client_secret ||\n \"\",\n },\n },\n },\n };\n break;\n case \"gcp\":\n insertEncrypt = {\n gcp: {\n secretmanager: {\n project_id: gcpConfiguration?.secretmanager?.project_id || \"\",\n endpoint: gcpConfiguration?.secretmanager?.endpoint || \"\",\n credentials: {\n client_email:\n gcpConfiguration?.secretmanager?.credentials\n ?.client_email || \"\",\n client_id:\n gcpConfiguration?.secretmanager?.credentials?.client_id ||\n \"\",\n private_key_id:\n gcpConfiguration?.secretmanager?.credentials\n ?.private_key_id || \"\",\n private_key:\n gcpConfiguration?.secretmanager?.credentials?.private_key ||\n \"\",\n },\n },\n },\n };\n break;\n case \"vault\":\n let vaultKeyPair = null;\n let vaultCAInsert = null;\n if (\n vaultClientCertificate?.encoded_key &&\n vaultClientCertificate?.encoded_cert\n ) {\n vaultKeyPair = {\n key: vaultClientCertificate?.encoded_key,\n crt: vaultClientCertificate?.encoded_cert,\n };\n }\n if (vaultCACertificate?.encoded_cert) {\n vaultCAInsert = {\n ca: vaultCACertificate?.encoded_cert,\n };\n }\n let vaultTLS = null;\n if (vaultKeyPair || vaultCAInsert) {\n vaultTLS = {\n tls: {\n ...vaultKeyPair,\n ...vaultCAInsert,\n },\n };\n }\n insertEncrypt = {\n vault: {\n endpoint: vaultConfiguration?.endpoint || \"\",\n engine: vaultConfiguration?.engine || \"\",\n namespace: vaultConfiguration?.namespace || \"\",\n prefix: vaultConfiguration?.prefix || \"\",\n approle: {\n engine: vaultConfiguration?.approle?.engine || \"\",\n id: vaultConfiguration?.approle?.id || \"\",\n secret: vaultConfiguration?.approle?.secret || \"\",\n retry: parseInt(vaultConfiguration?.approle?.retry),\n },\n ...vaultTLS,\n status: {\n ping: parseInt(vaultConfiguration?.status?.ping),\n },\n },\n };\n break;\n }\n\n let encryptionServerKeyPair: any = {};\n let encryptionClientKeyPair: any = {};\n\n if (mTLSCertificate?.encoded_key && mTLSCertificate?.encoded_cert) {\n encryptionClientKeyPair = {\n client: {\n key: mTLSCertificate?.encoded_key,\n crt: mTLSCertificate?.encoded_cert,\n },\n };\n }\n\n if (serverCertificate?.encoded_key && serverCertificate?.encoded_cert) {\n encryptionServerKeyPair = {\n server: {\n key: serverCertificate?.encoded_key,\n crt: serverCertificate?.encoded_cert,\n },\n };\n }\n const dataSend = {\n secretsToBeDeleted: certificatesToBeRemoved || [],\n replicas: replicas,\n securityContext: securityContext,\n image: image,\n ...encryptionClientKeyPair,\n ...encryptionServerKeyPair,\n ...insertEncrypt,\n };\n if (!updatingEncryption) {\n setUpdatingEncryption(true);\n api\n .invoke(\n \"PUT\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/encryption`,\n dataSend\n )\n .then(() => {\n setConfirmOpen(false);\n setUpdatingEncryption(false);\n fetchEncryptionInfo();\n })\n .catch((err: ErrorResponseHandler) => {\n setUpdatingEncryption(false);\n setConfirmOpen(false);\n setErrorSnackMessage(err);\n });\n }\n } else {\n if (!updatingEncryption) {\n setUpdatingEncryption(true);\n api\n .invoke(\n \"DELETE\",\n `/api/v1/namespaces/${tenant?.namespace}/tenants/${tenant?.name}/encryption`,\n {}\n )\n .then(() => {\n fetchEncryptionInfo();\n setUpdatingEncryption(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setUpdatingEncryption(false);\n setErrorSnackMessage(err);\n });\n }\n }\n };\n\n return (\n \n \n {confirmOpen && (\n setConfirmOpen(false)}\n onConfirm={updateEncryptionConfiguration}\n confirmationContent={\n \n {encryptionEnabled\n ? \"Data will be encrypted using and external KMS\"\n : \"Current encrypted information will not be accessible\"}\n \n }\n />\n )}\n

    Encryption

    \n
    \n {\n setEncryptionEnabled(!encryptionEnabled);\n }}\n description=\"\"\n />\n
    \n {encryptionEnabled && (\n \n \n \n {\n setEncryptionType(e.target.value);\n }}\n selectorOptions={[\n { label: \"Vault\", value: \"vault\" },\n { label: \"AWS\", value: \"aws\" },\n { label: \"Gemalto\", value: \"gemalto\" },\n { label: \"GCP\", value: \"gcp\" },\n { label: \"Azure\", value: \"azure\" },\n ]}\n />\n \n {encryptionType === \"vault\" && (\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n endpoint: e.target.value,\n })\n }\n label=\"Endpoint\"\n value={vaultConfiguration?.endpoint || \"\"}\n error={validationErrors[\"vault_ping\"] || \"\"}\n required\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n engine: e.target.value,\n })\n }\n label=\"Engine\"\n value={vaultConfiguration?.engine || \"\"}\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n namespace: e.target.value,\n })\n }\n label=\"Namespace\"\n value={vaultConfiguration?.namespace || \"\"}\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n prefix: e.target.value,\n })\n }\n label=\"Prefix\"\n value={vaultConfiguration?.prefix || \"\"}\n />\n \n\n \n
    \n \n App Role\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n engine: e.target.value,\n },\n })\n }\n label=\"Engine\"\n value={vaultConfiguration?.approle?.engine || \"\"}\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n id: e.target.value,\n },\n })\n }\n label=\"AppRole ID\"\n value={vaultConfiguration?.approle?.id || \"\"}\n required\n error={validationErrors[\"vault_id\"] || \"\"}\n overlayIcon={\n showVaultAppRoleID ? (\n \n ) : (\n \n )\n }\n overlayAction={() =>\n setShowVaultAppRoleID(!showVaultAppRoleID)\n }\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n secret: e.target.value,\n },\n })\n }\n label=\"AppRole Secret\"\n value={vaultConfiguration?.approle?.secret || \"\"}\n required\n error={validationErrors[\"vault_secret\"] || \"\"}\n overlayIcon={\n showVaultAppRoleSecret ? (\n \n ) : (\n \n )\n }\n overlayAction={() =>\n setShowVaultAppRoleSecret(!showVaultAppRoleSecret)\n }\n />\n \n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n approle: {\n ...vaultConfiguration?.approle,\n retry: e.target.value,\n },\n })\n }\n label=\"Retry (Seconds)\"\n error={validationErrors[\"vault_retry\"] || \"\"}\n value={vaultConfiguration?.approle?.retry || \"\"}\n />\n \n
    \n
    \n \n
    \n \n Mutual TLS authentication with KMS (optional)\n \n {vaultClientCertificateSecret ? (\n \n removeCertificate(vaultClientCertificateSecret)\n }\n />\n ) : (\n \n \n setVaultClientCertificate({\n encoded_key: encodedValue || \"\",\n id: vaultClientCertificate?.id || \"\",\n key: fileName || \"\",\n cert: vaultClientCertificate?.cert || \"\",\n encoded_cert:\n vaultClientCertificate?.encoded_cert || \"\",\n })\n }\n accept=\".key,.pem\"\n id=\"vault_key\"\n name=\"vault_key\"\n label=\"Key\"\n value={vaultClientCertificate?.key || \"\"}\n />\n \n setVaultClientCertificate({\n encoded_key:\n vaultClientCertificate?.encoded_key || \"\",\n id: vaultClientCertificate?.id || \"\",\n key: vaultClientCertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n })\n }\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_cert\"\n name=\"vault_cert\"\n label=\"Cert\"\n value={vaultClientCertificate?.cert || \"\"}\n />\n \n )}\n
    \n
    \n \n KMS CA certificate (optional)\n \n {vaultCACertificateSecret ? (\n \n removeCertificate(vaultCACertificateSecret)\n }\n />\n ) : (\n \n setVaultCACertificate({\n encoded_key:\n vaultCACertificate?.encoded_key || \"\",\n id: vaultCACertificate?.id || \"\",\n key: vaultCACertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n })\n }\n accept=\".cer,.crt,.cert,.pem\"\n id=\"vault_ca\"\n name=\"vault_ca\"\n label=\"CA\"\n value={vaultCACertificate?.cert || \"\"}\n />\n )}\n
    \n
    \n \n
    \n \n Status\n \n ) =>\n setVaultConfiguration({\n ...vaultConfiguration,\n status: {\n ...vaultConfiguration?.status,\n ping: e.target.value,\n },\n })\n }\n label=\"Ping (Seconds)\"\n error={validationErrors[\"vault_ping\"] || \"\"}\n value={vaultConfiguration?.status?.ping || \"\"}\n />\n
    \n
    \n
    \n )}\n {encryptionType === \"azure\" && (\n \n \n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n error={validationErrors[\"azure_endpoint\"] || \"\"}\n value={azureConfiguration?.keyvault?.endpoint || \"\"}\n />\n \n \n
    \n \n Credentials\n \n \n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n credentials: {\n ...azureConfiguration?.keyvault?.credentials,\n tenant_id: e.target.value,\n },\n },\n })\n }\n label=\"Tenant ID\"\n value={\n azureConfiguration?.keyvault?.credentials\n ?.tenant_id || \"\"\n }\n error={validationErrors[\"azure_tenant_id\"] || \"\"}\n />\n \n \n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n credentials: {\n ...azureConfiguration?.keyvault?.credentials,\n client_id: e.target.value,\n },\n },\n })\n }\n label=\"Client ID\"\n value={\n azureConfiguration?.keyvault?.credentials\n ?.client_id || \"\"\n }\n error={validationErrors[\"azure_client_id\"] || \"\"}\n />\n \n \n ) =>\n setAzureConfiguration({\n ...azureConfiguration,\n keyvault: {\n ...azureConfiguration?.keyvault,\n credentials: {\n ...azureConfiguration?.keyvault?.credentials,\n client_secret: e.target.value,\n },\n },\n })\n }\n label=\"Client Secret\"\n value={\n azureConfiguration?.keyvault?.credentials\n ?.client_secret || \"\"\n }\n error={validationErrors[\"azure_client_secret\"] || \"\"}\n />\n \n
    \n
    \n
    \n )}\n {encryptionType === \"gcp\" && (\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n project_id: e.target.value,\n },\n })\n }\n label=\"Project ID\"\n value={gcpConfiguration?.secretmanager.project_id || \"\"}\n />\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n value={gcpConfiguration?.secretmanager.endpoint || \"\"}\n />\n \n \n
    \n \n Credentials\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n client_email: e.target.value,\n },\n },\n })\n }\n label=\"Client Email\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.client_email || \"\"\n }\n />\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n client_id: e.target.value,\n },\n },\n })\n }\n label=\"Client ID\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.client_id || \"\"\n }\n />\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n private_key_id: e.target.value,\n },\n },\n })\n }\n label=\"Private Key ID\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.private_key_id || \"\"\n }\n />\n \n \n ) =>\n setGCPConfiguration({\n ...gcpConfiguration,\n secretmanager: {\n ...gcpConfiguration?.secretmanager,\n credentials: {\n ...gcpConfiguration?.secretmanager\n .credentials,\n private_key: e.target.value,\n },\n },\n })\n }\n label=\"Private Key\"\n value={\n gcpConfiguration?.secretmanager.credentials\n ?.private_key || \"\"\n }\n />\n \n
    \n
    \n
    \n )}\n {encryptionType === \"aws\" && (\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n value={awsConfiguration?.secretsmanager?.endpoint || \"\"}\n required\n error={validationErrors[\"aws_endpoint\"] || \"\"}\n />\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n region: e.target.value,\n },\n })\n }\n label=\"Region\"\n value={awsConfiguration?.secretsmanager?.region || \"\"}\n error={validationErrors[\"aws_region\"] || \"\"}\n required\n />\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n kmskey: e.target.value,\n },\n })\n }\n label=\"KMS Key\"\n value={awsConfiguration?.secretsmanager?.kmskey || \"\"}\n />\n \n \n
    \n \n Credentials\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n credentials: {\n ...awsConfiguration?.secretsmanager\n ?.credentials,\n accesskey: e.target.value,\n },\n },\n })\n }\n label=\"Access Key\"\n value={\n awsConfiguration?.secretsmanager?.credentials\n ?.accesskey || \"\"\n }\n error={validationErrors[\"aws_accessKey\"] || \"\"}\n required\n />\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n credentials: {\n ...awsConfiguration?.secretsmanager\n ?.credentials,\n secretkey: e.target.value,\n },\n },\n })\n }\n label=\"Secret Key\"\n value={\n awsConfiguration?.secretsmanager?.credentials\n ?.secretkey || \"\"\n }\n error={validationErrors[\"aws_secretKey\"] || \"\"}\n required\n />\n \n \n ) =>\n setAWSConfiguration({\n ...awsConfiguration,\n secretsmanager: {\n ...awsConfiguration?.secretsmanager,\n credentials: {\n ...awsConfiguration?.secretsmanager\n ?.credentials,\n token: e.target.value,\n },\n },\n })\n }\n label=\"Token\"\n value={\n awsConfiguration?.secretsmanager?.credentials\n ?.token || \"\"\n }\n />\n \n
    \n
    \n
    \n )}\n {encryptionType === \"gemalto\" && (\n \n \n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n endpoint: e.target.value,\n },\n })\n }\n label=\"Endpoint\"\n value={gemaltoConfiguration?.keysecure?.endpoint || \"\"}\n error={validationErrors[\"gemalto_endpoint\"] || \"\"}\n required\n />\n \n \n
    \n \n Credentials\n \n \n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n credentials: {\n ...gemaltoConfiguration?.keysecure\n ?.credentials,\n token: e.target.value,\n },\n },\n })\n }\n label=\"Token\"\n value={\n gemaltoConfiguration?.keysecure?.credentials\n ?.token || \"\"\n }\n error={validationErrors[\"gemalto_token\"] || \"\"}\n required\n />\n \n \n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n credentials: {\n ...gemaltoConfiguration?.keysecure\n ?.credentials,\n domain: e.target.value,\n },\n },\n })\n }\n label=\"Domain\"\n value={\n gemaltoConfiguration?.keysecure?.credentials\n ?.domain || \"\"\n }\n error={validationErrors[\"gemalto_domain\"] || \"\"}\n required\n />\n \n \n ) =>\n setGemaltoConfiguration({\n ...gemaltoConfiguration,\n keysecure: {\n ...gemaltoConfiguration?.keysecure,\n credentials: {\n ...gemaltoConfiguration?.keysecure\n ?.credentials,\n retry: e.target.value,\n },\n },\n })\n }\n label=\"Retry (seconds)\"\n value={\n gemaltoConfiguration?.keysecure?.credentials\n ?.retry || \"\"\n }\n error={validationErrors[\"gemalto_retry\"] || \"\"}\n />\n \n
    \n \n \n
    \n \n Custom CA Root certificate verification\n \n {}}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"gemalto_ca\"\n name=\"gemalto_ca\"\n label=\"CA\"\n value={\"\"}\n />\n {gemaltoCACertificateSecret ? (\n \n removeCertificate(gemaltoCACertificateSecret)\n }\n />\n ) : (\n \n setGemaltotCACertificate({\n encoded_key:\n gemaltoCACertificate?.encoded_key || \"\",\n id: gemaltoCACertificate?.id || \"\",\n key: gemaltoCACertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n })\n }\n accept=\".cer,.crt,.cert,.pem\"\n id=\"gemalto_ca\"\n name=\"gemalto_ca\"\n label=\"CA\"\n value={gemaltoCACertificate?.cert || \"\"}\n />\n )}\n
    \n \n
    \n )}\n
    \n

    Additional Configurations

    \n
    \n \n \n setEnabledCustomCertificates(!enabledCustomCertificates)\n }\n label={\"Custom Certificates\"}\n />\n \n {enabledCustomCertificates && (\n \n \n \n
    \n \n Encryption Service Certificates\n \n {serverTLSCertificateSecret ? (\n \n removeCertificate(serverTLSCertificateSecret)\n }\n />\n ) : (\n \n {\n setServerCertificate({\n encoded_key: encodedValue || \"\",\n id: serverCertificate?.id || \"\",\n key: fileName || \"\",\n cert: serverCertificate?.cert || \"\",\n encoded_cert:\n serverCertificate?.encoded_cert || \"\",\n });\n cleanValidation(\"serverKey\");\n }}\n accept=\".key,.pem\"\n id=\"serverKey\"\n name=\"serverKey\"\n label=\"Key\"\n value={serverCertificate?.key}\n />\n {\n setServerCertificate({\n encoded_key:\n serverCertificate?.encoded_key || \"\",\n id: serverCertificate?.id || \"\",\n key: serverCertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n });\n cleanValidation(\"serverCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"serverCert\"\n name=\"serverCert\"\n label=\"Cert\"\n value={serverCertificate?.cert}\n />\n \n )}\n
    \n
    \n
    \n \n \n
    \n \n Mutual TLS authentication with MinIO\n \n {mTLSCertificateSecret ? (\n \n removeCertificate(mTLSCertificateSecret)\n }\n />\n ) : (\n \n {\n setMTLSCertificate({\n encoded_key: encodedValue || \"\",\n id: mTLSCertificate?.id || \"\",\n key: fileName || \"\",\n cert: mTLSCertificate?.cert || \"\",\n encoded_cert:\n mTLSCertificate?.encoded_cert || \"\",\n });\n cleanValidation(\"clientKey\");\n }}\n accept=\".key,.pem\"\n id=\"clientKey\"\n name=\"clientKey\"\n label=\"Key\"\n value={mTLSCertificate?.key}\n />\n {\n setMTLSCertificate({\n encoded_key:\n mTLSCertificate?.encoded_key || \"\",\n id: mTLSCertificate?.id || \"\",\n key: mTLSCertificate?.key || \"\",\n cert: fileName || \"\",\n encoded_cert: encodedValue || \"\",\n });\n cleanValidation(\"clientCert\");\n }}\n accept=\".cer,.crt,.cert,.pem\"\n id=\"clientCert\"\n name=\"clientCert\"\n label=\"Cert\"\n value={mTLSCertificate?.cert}\n />\n \n )}\n
    \n
    \n
    \n
    \n )}\n \n \n ) =>\n setImage(e.target.value)\n }\n label=\"Image\"\n placeholder=\"minio/kes:v0.17.6\"\n value={image}\n />\n \n \n ) =>\n setReplicas(e.target.value)\n }\n label=\"Replicas\"\n value={replicas}\n required\n error={validationErrors[\"replicas\"] || \"\"}\n />\n \n\n \n \n SecurityContext for KES pods\n \n \n \n \n \n ) => {\n setSecurityContext({\n ...securityContext,\n runAsUser: e.target.value,\n });\n }}\n label=\"Run As User\"\n value={securityContext.runAsUser}\n required\n error={\n validationErrors[\"kes_securityContext_runAsUser\"] ||\n \"\"\n }\n min=\"0\"\n />\n \n \n \n ) => {\n setSecurityContext({\n ...securityContext,\n runAsGroup: e.target.value,\n });\n }}\n label=\"Run As Group\"\n value={securityContext.runAsGroup}\n required\n error={\n validationErrors[\n \"kes_securityContext_runAsGroup\"\n ] || \"\"\n }\n min=\"0\"\n />\n \n \n \n ) => {\n setSecurityContext({\n ...securityContext,\n fsGroup: e.target.value,\n });\n }}\n label=\"FsGroup\"\n value={securityContext.fsGroup}\n required\n error={\n validationErrors[\"kes_securityContext_fsGroup\"] ||\n \"\"\n }\n min=\"0\"\n />\n \n \n \n
    \n \n
    \n {\n const targetD = e.target;\n const checked = targetD.checked;\n setSecurityContext({\n ...securityContext,\n runAsNonRoot: checked,\n });\n }}\n label={\"Do not run as Root\"}\n />\n
    \n
    \n \n
    \n \n \n )}\n \n setConfirmOpen(true)}\n >\n Save\n \n \n \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n selectedTenant: state.tenants.tenantDetails.currentTenant,\n tenant: state.tenants.tenantDetails.tenantInfo,\n});\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n setTenantDetailsLoad,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(TenantEncryption));\n","import React from \"react\";\nimport Typography from \"@mui/material/Typography\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n errorBlock: {\n color: theme.palette?.error.main || \"#C83B51\",\n },\n });\n\ninterface IErrorBlockProps {\n classes: any;\n errorMessage: string;\n withBreak?: boolean;\n}\n\nconst ErrorBlock = ({\n classes,\n errorMessage,\n withBreak = true,\n}: IErrorBlockProps) => {\n return (\n \n {withBreak &&
    }\n \n {errorMessage}\n \n
    \n );\n};\n\nexport default withStyles(styles)(ErrorBlock);\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'RemoveRedEye');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78 3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","fieldBasic","tooltipHelper","valueString","maxWidth","whiteSpace","overflow","textOverflow","marginTop","fileInputField","margin","flexFlow","fileInputStyles","inputLabel","fontWeight","textBoxContainer","border","paddingLeft","label","classes","onChange","id","name","disabled","tooltip","required","error","accept","value","useState","showFileSelector","setShowSelector","Grid","item","xs","className","fieldBottom","fieldContainer","errorInField","InputLabel","htmlFor","fieldLabelError","tooltipContainer","Tooltip","title","placement","HelpIcon","type","e","fileName","get","evt","callback","file","target","files","reader","FileReader","readAsDataURL","onload","fileBase64","result","fileArray","toString","split","length","fileProcess","data","IconButton","color","component","onClick","disableRipple","disableFocusRipple","size","Cancel","ErrorBlock","errorMessage","fileReselect","AttachFile","radioStyles","makeStyles","root","backgroundColor","radioIcons","RadioButton","props","checkedIcon","radioSelectedIcon","icon","radioUnselectedIcon","optionLabel","marginRight","fontSize","checkedOption","selectorOptions","currentSelection","disableOptions","displayInColumn","container","alignItems","radioOptionsLayout","row","style","display","textAlign","map","selectorOption","control","clsx","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","isLoading","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","sx","padding","titleText","closeContainer","closeButton","content","actions","cancelButton","variant","confirmButton","loading","loadingPosition","startIcon","autoFocus","xmlns","fill","viewBox","d","transform","clipPath","textDecoration","cursor","palette","info","main","fontFamily","certificateIcon","float","paddingTop","paddingRight","certificateInfo","certificateWrapper","height","userSelect","borderRadius","certificateExpiry","flexWrap","marginBottom","certificateDomains","certificatesList","textTransform","overflowY","maxHeight","certificatesListItem","borderBottom","minWidth","opacity","onDelete","certificates","domains","Chip","Container","Typography","gutterBottom","Box","EventBusy","format","expiry","Divider","List","dom","ListItem","ListItemAvatar","Language","ListItemText","primary","mapDispatchToProps","setErrorSnackMessage","setTenantDetailsLoad","connector","connect","state","loadingTenant","tenants","tenantDetails","selectedTenant","currentTenant","tenant","tenantInfo","tenantDetailsStyles","spacingUtils","loaderAlign","bold","italic","fontStyle","paperContainer","fileItem","certInputRow","caCertsRow","containerForHeader","spacing","createTenantCommon","formFieldStyles","modalBasic","wizardCommon","encryptionEnabled","setEncryptionEnabled","encryptionType","setEncryptionType","replicas","setReplicas","image","setImage","refreshEncryptionInfo","setRefreshEncryptionInfo","fsGroup","runAsGroup","runAsNonRoot","runAsUser","securityContext","setSecurityContext","vaultConfiguration","setVaultConfiguration","awsConfiguration","setAWSConfiguration","gemaltoConfiguration","setGemaltoConfiguration","azureConfiguration","setAzureConfiguration","gcpConfiguration","setGCPConfiguration","enabledCustomCertificates","setEnabledCustomCertificates","updatingEncryption","setUpdatingEncryption","serverTLSCertificateSecret","setServerTLSCertificateSecret","mTLSCertificateSecret","setMTLSCertificateSecret","mTLSCertificate","setMTLSCertificate","certificatesToBeRemoved","setCertificatesToBeRemoved","showVaultAppRoleID","setShowVaultAppRoleID","isFormValid","setIsFormValid","showVaultAppRoleSecret","setShowVaultAppRoleSecret","vaultClientCertificateSecret","setVaultClientCertificateSecret","vaultCACertificateSecret","setVaultCACertificateSecret","vaultClientCertificate","setVaultClientCertificate","serverCertificate","setServerCertificate","vaultCACertificate","setVaultCACertificate","gemaltoCACertificateSecret","setGemaltoCACertificateSecret","gemaltoCACertificate","setGemaltotCACertificate","validationErrors","setValidationErrors","cleanValidation","fieldName","clearValidationError","confirmOpen","setConfirmOpen","useEffect","encryptionValidation","fieldKey","customValidation","parseInt","customValidationMessage","encoded_key","encoded_cert","endpoint","approle","secret","status","ping","retry","secretsmanager","region","credentials","accesskey","secretkey","keysecure","token","domain","keyvault","tenant_id","client_id","client_secret","commonVal","commonFormValidation","Object","keys","fetchEncryptionInfo","api","namespace","then","resp","vault","tls","crt","ca","aws","gemalto","gcp","azure","server","mtls_client","catch","err","console","log","removeCertificate","Fragment","insertEncrypt","gemaltoCAIntroduce","kmskey","secretmanager","project_id","client_email","private_key_id","private_key","vaultKeyPair","vaultCAInsert","key","vaultTLS","engine","prefix","encryptionServerKeyPair","encryptionClientKeyPair","client","dataSend","secretsToBeDeleted","sectionTitle","actionsTray","indicatorLabels","checked","description","paperWrapper","encryptionTypeOptions","formFieldRow","fieldGroup","descriptionText","overlayIcon","overlayAction","min","mutualTlsConfig","encodedValue","cert","headerElement","h3Section","placeholder","kesSecurityContext","multiContainer","responsiveContainer","rightSpacer","buttonContainer","errorBlock","withBreak","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/6763.d86879b4.chunk.js b/portal-ui/build/static/js/6763.e45b988a.chunk.js similarity index 99% rename from portal-ui/build/static/js/6763.d86879b4.chunk.js rename to portal-ui/build/static/js/6763.e45b988a.chunk.js index 9f1dc37c6..86513652b 100644 --- a/portal-ui/build/static/js/6763.d86879b4.chunk.js +++ b/portal-ui/build/static/js/6763.e45b988a.chunk.js @@ -1,2 +1,2 @@ -(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6763],{74794:function(e,n,t){"use strict";var r=t(1413),o=(t(72791),t(61889)),i=t(11135),s=t(25787),a=t(23814),l=t(80184);n.Z=(0,s.Z)((function(e){return(0,i.Z)((0,r.Z)({},a.Bw))}))((function(e){var n=e.classes,t=e.className,r=void 0===t?"":t,i=e.children;return(0,l.jsx)("div",{className:n.contentSpacer,children:(0,l.jsx)(o.ZP,{container:!0,children:(0,l.jsx)(o.ZP,{item:!0,xs:12,className:r,children:i})})})}))},32291:function(e,n,t){"use strict";var r=t(72791),o=t(60364),i=t(61889),s=t(11135),a=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),h=t(3925),f=t(74833),g=t(80184),p={toggleList:h.kQ},m=(0,o.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),p);n.Z=m((0,a.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,o=e.actions,s=e.sidebarOpen,a=e.operatorMode,h=e.managerObjects,p=e.toggleList,m=e.middleComponent;return e.features.includes("hide-menu")?(0,g.jsx)(r.Fragment,{}):(0,g.jsxs)(i.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,g.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:m?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,g.jsx)("div",{className:n.logo,children:a?(0,g.jsx)(d.Z,{}):(0,g.jsx)(u.Z,{})}),(0,g.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),m&&(0,g.jsx)(i.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:m}),(0,g.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:m?3:6,className:n.rightMenu,children:[o&&o,h&&h.length>0&&(0,g.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){p()},id:"object-manager-toggle",size:"large",children:(0,g.jsx)(f.gx,{})})]})]})})))},59114:function(e,n,t){"use strict";var r=t(4942),o=t(1413),i=(t(72791),t(63466)),s=t(74900),a=t(27391),l=t(25787),c=t(11135),d=t(23814),u=t(80184);n.Z=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,o.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,o=e.classes,l=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,h=e.overrideClass,f=e.value,g=(0,r.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(i.Z,{position:d,className:o.adornment,children:(0,u.jsx)(s.Z,{})}));return(0,u.jsx)(a.Z,{placeholder:t,className:h||o.searchField,id:"search-resource",label:"",InputProps:g,onChange:function(e){l(e.target.value)},variant:"standard",value:f})}))},96763:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return A}});var r=t(70885),o=t(1413),i=t(72791),s=t(95087),a=t(11135),l=t(25787),c=t(60364),d=t(61889),u=t(64554),h=t(72426),f=t.n(h),g=t(63722),p=t(26824),m=t(23814),x=t(32291),j=t(74794),v=t(59114),b=t(10703),Z=t(79836),w=t(53382),y=t(39281),C=t(35855),L=t(53994),M=t(56125),P=t(20890),S=t(46431),N=t.n(S),R=t(80184),_=function(e){return(0,R.jsx)("svg",(0,o.Z)((0,o.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 26 26"},e),{},{children:(0,R.jsxs)("g",{id:"Group_2001","data-name":"Group 2001",transform:"translate(1924 369) rotate(180)",children:[(0,R.jsx)("rect",{id:"Rectangle_1114","data-name":"Rectangle 1114",width:"26",height:"26",transform:"translate(1898 343)",fill:"#e5e5e5"}),(0,R.jsx)("g",{id:"noun_chevron_2320228",transform:"translate(1915.2 353.499) rotate(90)",children:(0,R.jsx)("path",{id:"Path_6842","data-name":"Path 6842",d:"M.47,8a.464.464,0,0,1-.329-.141.468.468,0,0,1,0-.67L3.325,4.006.141.811a.468.468,0,0,1,0-.67.468.468,0,0,1,.67,0L4.335,3.665a.464.464,0,0,1,.141.329.427.427,0,0,1-.141.329L.811,7.847A.476.476,0,0,1,.47,8Z",transform:"translate(0 0)",fill:"#5e5e5e"})})]})}))},T=function(e){return(0,R.jsx)("svg",(0,o.Z)((0,o.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 26 26"},e),{},{children:(0,R.jsxs)("g",{id:"Group_2476","data-name":"Group 2476",transform:"translate(-1898 -343)",children:[(0,R.jsx)("rect",{id:"Rectangle_1114","data-name":"Rectangle 1114",width:"26",height:"26",transform:"translate(1898 343)",fill:"#fbfafa"}),(0,R.jsx)("g",{id:"noun_chevron_2320228",transform:"translate(1915.2 353.499) rotate(90)",children:(0,R.jsx)("path",{id:"Path_6842","data-name":"Path 6842",d:"M.47,8a.464.464,0,0,1-.329-.141.468.468,0,0,1,0-.67L3.325,4.006.141.811a.468.468,0,0,1,0-.67.468.468,0,0,1,.67,0L4.335,3.665a.464.464,0,0,1,.141.329.427.427,0,0,1-.141.329L.811,7.847A.476.476,0,0,1,.47,8Z",transform:"translate(0 0)",fill:"#2781b0"})})]})}))},k=function(e){return(0,R.jsxs)("svg",(0,o.Z)((0,o.Z)({id:"WarnFilledIcon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 12 12"},e),{},{className:"min-icon",fill:"currentcolor",children:[(0,R.jsx)("defs",{children:(0,R.jsx)("clipPath",{id:"clip-path",children:(0,R.jsx)("rect",{id:"Rectangle_987","data-name":"Rectangle 987",width:"12",height:"12"})})}),(0,R.jsx)("g",{id:"warning-icon-full",transform:"translate(-0.002 -0.003)",children:(0,R.jsx)("g",{id:"Group_2356","data-name":"Group 2356",transform:"translate(0.002 0.003)","clip-path":"url(#clip-path)",children:(0,R.jsx)("path",{id:"Path_7081","data-name":"Path 7081",d:"M6,0H6a6,6,0,1,0,6,6A6,6,0,0,0,6,0m.964,1.947L6.751,7.434H5.318L5.1,1.947ZM6.04,10.454a1.134,1.134,0,1,1,0-2.269,1.134,1.134,0,0,1,0,2.269",transform:"translate(-0.002 -0.003)"})})})]}))},O=function(e){var n=e.log,t=(0,i.useState)(!1),o=(0,r.Z)(t,2),s=o[0],a=o[1],l="";""!==n.ConsoleMsg?l=n.ConsoleMsg:null!==n.error&&""!==n.error.message&&(l=n.error.message);var c=l.replace(/\u2501|\u250f|\u2513|\u2503|\u2517|\u251b/g,"");c=c.replace(/([^\x20-\x7F])/g,"");var d=(0,R.jsx)(i.Fragment,{});""!==n.ConsoleMsg?d=function(e){var n=e.ConsoleMsg;return n=(n=n.replace(/\x1B/g," ")).replace(/((\[[0-9;]+m))/g,""),(0,R.jsx)("div",{style:{display:"table",tableLayout:"fixed",width:"100%",paddingLeft:10,paddingRight:10},children:(0,R.jsx)("div",{style:{display:"table-cell",whiteSpace:"nowrap",textOverflow:"ellipsis",overflowX:"auto"},children:(0,R.jsx)("pre",{children:n})})})}(n):null!==n.error&&""!==n.error.message&&(d=function(e){var n={color:"#C83B51",fontWeight:400,fontFamily:"monospace",fontSize:"12px"},t={fontFamily:"monospace",fontSize:"12px"};return(0,R.jsxs)(i.Fragment,{children:[(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"API:\xa0"}),(0,R.jsx)("span",{style:n,children:e.api.name})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"Time:\xa0"}),(0,R.jsx)("span",{style:n,children:e.time.toString()})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"DeploymentID:\xa0"}),(0,R.jsx)("span",{style:n,children:e.deploymentid})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"RequestID:\xa0"}),(0,R.jsx)("span",{style:n,children:e.requestID})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"RemoteHost:\xa0"}),(0,R.jsx)("span",{style:n,children:e.remotehost})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"UserAgent:\xa0"}),(0,R.jsx)("span",{style:n,children:e.userAgent})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"Error:\xa0"}),(0,R.jsx)("span",{style:n,children:e.error&&e.error.message})]}),(0,R.jsx)("br",{}),(0,R.jsx)("div",{children:(0,R.jsx)("b",{style:t,children:"Backtrace:\xa0"})}),e.error&&e.error.source.map((function(e,r){return(0,R.jsxs)("div",{children:[(0,R.jsxs)("b",{style:t,children:[r,":\xa0"]}),(0,R.jsx)("span",{style:n,children:e})]})}))]})}(n)),c=c.replace(/((\[[0-9;]+m))/g,"");var h=(0,R.jsx)(N(),{format:"YYYY/MM/DD UTC HH:mm:ss",children:n.time});return 1===n.time.getFullYear()&&(h=(0,R.jsx)(i.Fragment,{children:"n/a"})),(0,R.jsxs)(i.Fragment,{children:[(0,R.jsxs)(C.Z,{sx:{"& > *":{borderBottom:"unset"},cursor:"pointer",borderLeft:"0",borderRight:"0"},style:{backgroundColor:"#FDFDFD"},children:[(0,R.jsx)(L.Z,{onClick:function(){return a(!s)},style:{width:200,color:"#989898",fontSize:12},children:(0,R.jsxs)(u.Z,{sx:{"& .min-icon":{width:12,marginRight:1},fontWeight:"bold",lineHeight:1},children:[(0,R.jsx)(k,{}),h]})}),(0,R.jsx)(L.Z,{onClick:function(){return a(!s)},children:(0,R.jsx)("div",{style:{display:"table",tableLayout:"fixed",width:"100%",paddingLeft:10,paddingRight:10},children:(0,R.jsx)("div",{style:{display:"table-cell",whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"},children:c})})}),(0,R.jsx)(L.Z,{onClick:function(){return a(!s)},style:{width:40},children:(0,R.jsx)(u.Z,{sx:{"& .min-icon":{display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"2px"},"&:hover .min-icon":{fill:"#eaeaea"}},children:s?(0,R.jsx)(_,{}):(0,R.jsx)(T,{})})})]}),s?(0,R.jsxs)(C.Z,{children:[(0,R.jsx)(L.Z,{style:{paddingBottom:0,paddingTop:0,width:200,textTransform:"uppercase",verticalAlign:"top",textAlign:"right",color:"#8399AB",fontWeight:"bold"},children:(0,R.jsx)(M.Z,{in:s,timeout:"auto",unmountOnExit:!0,children:(0,R.jsx)("div",{style:{marginTop:10},children:"Log Details"})})}),(0,R.jsx)(L.Z,{style:{paddingBottom:0,paddingTop:0},children:(0,R.jsx)(M.Z,{in:s,timeout:"auto",unmountOnExit:!0,children:(0,R.jsx)(u.Z,{sx:{margin:1},children:(0,R.jsx)(P.Z,{style:{background:"#efefef",border:"1px solid #dedede",padding:4,fontSize:14,color:"#666666"},children:d})})})}),(0,R.jsx)(L.Z,{style:{paddingBottom:0,paddingTop:0,width:40}})]}):null]},n.time.toString())},E=(0,c.$j)((function(e){return{messages:e.logs.messages}}),{logMessageReceived:g.Qo,logResetMessages:g.i1}),A=(0,l.Z)((function(e){return(0,a.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({logList:{background:"#fff",minHeight:400,height:"calc(100vh - 200px)",overflow:"auto",fontSize:13,borderRadius:4},tab:{paddingLeft:25},logerror:{color:"#A52A2A"},logerror_tab:{color:"#A52A2A",paddingLeft:25},ansidefault:{color:"#000"},highlight:{"& span":{backgroundColor:"#082F5238"}}},m.OR),m.qg),m.o$),(0,m.Bz)(e.spacing(4))))}))(E((function(e){var n=e.classes,t=e.logMessageReceived,o=e.logResetMessages,a=e.messages,l=(0,i.useState)(""),c=(0,r.Z)(l,2),h=c[0],g=c[1];(0,i.useEffect)((function(){o();var e=new URL(window.location.toString()),n=e.port,r=(0,p.x2)(e.protocol),i=new s.w3cwebsocket("".concat(r,"://").concat(e.hostname,":").concat(n,"/ws/console")),a=null;if(null!==i)return i.onopen=function(){console.log("WebSocket Client Connected"),i.send("ok"),a=setInterval((function(){i.send("ok")}),1e4)},i.onmessage=function(e){var n=JSON.parse(e.data.toString());n.time=f()(n.time,"HH:mm:s UTC MM/DD/YYYY").toDate(),n.key=Math.random(),t(n)},i.onclose=function(){clearInterval(a),console.log("connection closed by server")},function(){i.close(1e3),clearInterval(a),console.log("closing websockets")}}),[t,o]);var m=h.toLowerCase(),C=a.filter((function(e){return""===h||(e.ConsoleMsg.toLowerCase().indexOf(m)>=0||(!!(e.error&&e.error.source&&e.error.source.filter((function(e){return e.toLowerCase().indexOf(m)>=0})).length>0)||(!!(e.error&&e.error.message.toLowerCase().indexOf(m)>=0)||!!(e.api&&e.api.name.toLowerCase().indexOf(m)>=0))))}));return(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(x.Z,{label:"Logs"}),(0,R.jsx)(j.Z,{children:(0,R.jsxs)(d.ZP,{container:!0,children:[(0,R.jsx)(d.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,R.jsx)(v.Z,{placeholder:"Filter",onChange:function(e){g(e)},value:h})}),(0,R.jsx)(d.ZP,{item:!0,xs:12,"data-test-id":"logs-list-container",children:C.length?(0,R.jsx)("div",{id:"logs-container",className:n.logList,children:(0,R.jsx)(y.Z,{component:b.Z,sx:{borderBottom:"0px"},children:(0,R.jsx)(Z.Z,{"aria-label":"collapsible table",children:(0,R.jsx)(w.Z,{children:C.map((function(e){return(0,R.jsx)(O,{log:e},e.key)}))})})})}):(0,R.jsx)(u.Z,{sx:{padding:"15px",display:"flex",alignItems:"center",justifyContent:"center"},children:h.trim().length?'No matching logs for "'.concat(h.trim(),'".'):"No logs to display."})})]})})]})})))},26824:function(e,n,t){"use strict";t.d(n,{HE:function(){return i},V9:function(){return r},ci:function(){return o},x2:function(){return s}});var r=1006,o=1008,i=1011,s=function(e){var n="ws";return"https:"===e&&(n="wss"),n}},63466:function(e,n,t){"use strict";t.d(n,{Z:function(){return w}});var r=t(4942),o=t(63366),i=t(87462),s=t(72791),a=t(28182),l=t(90767),c=t(14036),d=t(20890),u=t(93840),h=t(52930),f=t(47630),g=t(95159);function p(e){return(0,g.Z)("MuiInputAdornment",e)}var m,x=(0,t(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),j=t(93736),v=t(80184),b=["children","className","component","disablePointerEvents","disableTypography","position","variant"],Z=(0,f.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["position".concat((0,c.Z)(t.position))],!0===t.disablePointerEvents&&n.disablePointerEvents,n[t.variant]]}})((function(e){var n=e.theme,t=e.ownerState;return(0,i.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:n.palette.action.active},"filled"===t.variant&&(0,r.Z)({},"&.".concat(x.positionStart,"&:not(.").concat(x.hiddenLabel,")"),{marginTop:16}),"start"===t.position&&{marginRight:8},"end"===t.position&&{marginLeft:8},!0===t.disablePointerEvents&&{pointerEvents:"none"})})),w=s.forwardRef((function(e,n){var t=(0,j.Z)({props:e,name:"MuiInputAdornment"}),r=t.children,f=t.className,g=t.component,x=void 0===g?"div":g,w=t.disablePointerEvents,y=void 0!==w&&w,C=t.disableTypography,L=void 0!==C&&C,M=t.position,P=t.variant,S=(0,o.Z)(t,b),N=(0,h.Z)()||{},R=P;P&&N.variant,N&&!R&&(R=N.variant);var _=(0,i.Z)({},t,{hiddenLabel:N.hiddenLabel,size:N.size,disablePointerEvents:y,position:M,variant:R}),T=function(e){var n=e.classes,t=e.disablePointerEvents,r=e.hiddenLabel,o=e.position,i=e.size,s=e.variant,a={root:["root",t&&"disablePointerEvents",o&&"position".concat((0,c.Z)(o)),s,r&&"hiddenLabel",i&&"size".concat((0,c.Z)(i))]};return(0,l.Z)(a,p,n)}(_);return(0,v.jsx)(u.Z.Provider,{value:null,children:(0,v.jsx)(Z,(0,i.Z)({as:x,ownerState:_,className:(0,a.Z)(T.root,f),ref:n},S,{children:"string"!==typeof r||L?(0,v.jsxs)(s.Fragment,{children:["start"===M?m||(m=(0,v.jsx)("span",{className:"notranslate",children:"\u200b"})):null,r]}):(0,v.jsx)(d.Z,{color:"text.secondary",children:r})}))})}))},39281:function(e,n,t){"use strict";t.d(n,{Z:function(){return p}});var r=t(87462),o=t(63366),i=t(72791),s=t(28182),a=t(90767),l=t(93736),c=t(47630),d=t(95159);function u(e){return(0,d.Z)("MuiTableContainer",e)}(0,t(30208).Z)("MuiTableContainer",["root"]);var h=t(80184),f=["className","component"],g=(0,c.ZP)("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:function(e,n){return n.root}})({width:"100%",overflowX:"auto"}),p=i.forwardRef((function(e,n){var t=(0,l.Z)({props:e,name:"MuiTableContainer"}),i=t.className,c=t.component,d=void 0===c?"div":c,p=(0,o.Z)(t,f),m=(0,r.Z)({},t,{component:d}),x=function(e){var n=e.classes;return(0,a.Z)({root:["root"]},u,n)}(m);return(0,h.jsx)(g,(0,r.Z)({ref:n,as:d,className:(0,s.Z)(x.root,i),ownerState:m},p))}))},94210:function(e){var n=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 n()}try{return __global__||n()}finally{delete Object.prototype.__global__}}()},95087:function(e,n,t){var r;if("object"===typeof globalThis)r=globalThis;else try{r=t(94210)}catch(a){}finally{if(r||"undefined"===typeof window||(r=window),!r)throw new Error("Could not determine global this")}var o=r.WebSocket||r.MozWebSocket,i=t(51496);function s(e,n){return n?new o(e,n):new o(e)}o&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(s,e,{get:function(){return o[e]}})})),e.exports={w3cwebsocket:o?s:null,version:i}},51496:function(e,n,t){e.exports=t(19794).version},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); -//# sourceMappingURL=6763.d86879b4.chunk.js.map \ No newline at end of file +(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6763],{74794:function(e,n,t){"use strict";var r=t(1413),o=(t(72791),t(61889)),i=t(11135),s=t(25787),a=t(23814),l=t(80184);n.Z=(0,s.Z)((function(e){return(0,i.Z)((0,r.Z)({},a.Bw))}))((function(e){var n=e.classes,t=e.className,r=void 0===t?"":t,i=e.children;return(0,l.jsx)("div",{className:n.contentSpacer,children:(0,l.jsx)(o.ZP,{container:!0,children:(0,l.jsx)(o.ZP,{item:!0,xs:12,className:r,children:i})})})}))},32291:function(e,n,t){"use strict";var r=t(72791),o=t(60364),i=t(61889),s=t(11135),a=t(25787),l=t(20890),c=t(13400),d=t(95466),u=t(84683),h=t(3925),f=t(13048),g=t(80184),p={toggleList:h.kQ},m=(0,o.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),p);n.Z=m((0,a.Z)((function(e){return(0,s.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var n=e.classes,t=e.label,o=e.actions,s=e.sidebarOpen,a=e.operatorMode,h=e.managerObjects,p=e.toggleList,m=e.middleComponent;return e.features.includes("hide-menu")?(0,g.jsx)(r.Fragment,{}):(0,g.jsxs)(i.ZP,{container:!0,className:"".concat(n.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,g.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:m?3:6,className:n.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!s&&(0,g.jsx)("div",{className:n.logo,children:a?(0,g.jsx)(d.Z,{}):(0,g.jsx)(u.Z,{})}),(0,g.jsx)(l.Z,{variant:"h4",className:n.labelStyle,children:t})]}),m&&(0,g.jsx)(i.ZP,{item:!0,xs:12,sm:12,md:6,className:n.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:m}),(0,g.jsxs)(i.ZP,{item:!0,xs:12,sm:12,md:m?3:6,className:n.rightMenu,children:[o&&o,h&&h.length>0&&(0,g.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){p()},id:"object-manager-toggle",size:"large",children:(0,g.jsx)(f.gx,{})})]})]})})))},59114:function(e,n,t){"use strict";var r=t(4942),o=t(1413),i=(t(72791),t(63466)),s=t(74900),a=t(27391),l=t(25787),c=t(11135),d=t(23814),u=t(80184);n.Z=(0,l.Z)((function(e){return(0,c.Z)({searchField:(0,o.Z)({},d.qg.searchField),adornment:{}})}))((function(e){var n=e.placeholder,t=void 0===n?"":n,o=e.classes,l=e.onChange,c=e.adornmentPosition,d=void 0===c?"end":c,h=e.overrideClass,f=e.value,g=(0,r.Z)({disableUnderline:!0},"".concat(d,"Adornment"),(0,u.jsx)(i.Z,{position:d,className:o.adornment,children:(0,u.jsx)(s.Z,{})}));return(0,u.jsx)(a.Z,{placeholder:t,className:h||o.searchField,id:"search-resource",label:"",InputProps:g,onChange:function(e){l(e.target.value)},variant:"standard",value:f})}))},96763:function(e,n,t){"use strict";t.r(n),t.d(n,{default:function(){return A}});var r=t(70885),o=t(1413),i=t(72791),s=t(95087),a=t(11135),l=t(25787),c=t(60364),d=t(61889),u=t(64554),h=t(72426),f=t.n(h),g=t(63722),p=t(26824),m=t(23814),x=t(32291),j=t(74794),v=t(59114),b=t(10703),Z=t(79836),w=t(53382),y=t(39281),C=t(35855),L=t(53994),M=t(56125),P=t(20890),S=t(46431),N=t.n(S),R=t(80184),_=function(e){return(0,R.jsx)("svg",(0,o.Z)((0,o.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 26 26"},e),{},{children:(0,R.jsxs)("g",{id:"Group_2001","data-name":"Group 2001",transform:"translate(1924 369) rotate(180)",children:[(0,R.jsx)("rect",{id:"Rectangle_1114","data-name":"Rectangle 1114",width:"26",height:"26",transform:"translate(1898 343)",fill:"#e5e5e5"}),(0,R.jsx)("g",{id:"noun_chevron_2320228",transform:"translate(1915.2 353.499) rotate(90)",children:(0,R.jsx)("path",{id:"Path_6842","data-name":"Path 6842",d:"M.47,8a.464.464,0,0,1-.329-.141.468.468,0,0,1,0-.67L3.325,4.006.141.811a.468.468,0,0,1,0-.67.468.468,0,0,1,.67,0L4.335,3.665a.464.464,0,0,1,.141.329.427.427,0,0,1-.141.329L.811,7.847A.476.476,0,0,1,.47,8Z",transform:"translate(0 0)",fill:"#5e5e5e"})})]})}))},T=function(e){return(0,R.jsx)("svg",(0,o.Z)((0,o.Z)({xmlns:"http://www.w3.org/2000/svg",className:"min-icon",fill:"currentcolor",viewBox:"0 0 26 26"},e),{},{children:(0,R.jsxs)("g",{id:"Group_2476","data-name":"Group 2476",transform:"translate(-1898 -343)",children:[(0,R.jsx)("rect",{id:"Rectangle_1114","data-name":"Rectangle 1114",width:"26",height:"26",transform:"translate(1898 343)",fill:"#fbfafa"}),(0,R.jsx)("g",{id:"noun_chevron_2320228",transform:"translate(1915.2 353.499) rotate(90)",children:(0,R.jsx)("path",{id:"Path_6842","data-name":"Path 6842",d:"M.47,8a.464.464,0,0,1-.329-.141.468.468,0,0,1,0-.67L3.325,4.006.141.811a.468.468,0,0,1,0-.67.468.468,0,0,1,.67,0L4.335,3.665a.464.464,0,0,1,.141.329.427.427,0,0,1-.141.329L.811,7.847A.476.476,0,0,1,.47,8Z",transform:"translate(0 0)",fill:"#2781b0"})})]})}))},k=function(e){return(0,R.jsxs)("svg",(0,o.Z)((0,o.Z)({id:"WarnFilledIcon",xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 12 12"},e),{},{className:"min-icon",fill:"currentcolor",children:[(0,R.jsx)("defs",{children:(0,R.jsx)("clipPath",{id:"clip-path",children:(0,R.jsx)("rect",{id:"Rectangle_987","data-name":"Rectangle 987",width:"12",height:"12"})})}),(0,R.jsx)("g",{id:"warning-icon-full",transform:"translate(-0.002 -0.003)",children:(0,R.jsx)("g",{id:"Group_2356","data-name":"Group 2356",transform:"translate(0.002 0.003)","clip-path":"url(#clip-path)",children:(0,R.jsx)("path",{id:"Path_7081","data-name":"Path 7081",d:"M6,0H6a6,6,0,1,0,6,6A6,6,0,0,0,6,0m.964,1.947L6.751,7.434H5.318L5.1,1.947ZM6.04,10.454a1.134,1.134,0,1,1,0-2.269,1.134,1.134,0,0,1,0,2.269",transform:"translate(-0.002 -0.003)"})})})]}))},O=function(e){var n=e.log,t=(0,i.useState)(!1),o=(0,r.Z)(t,2),s=o[0],a=o[1],l="";""!==n.ConsoleMsg?l=n.ConsoleMsg:null!==n.error&&""!==n.error.message&&(l=n.error.message);var c=l.replace(/\u2501|\u250f|\u2513|\u2503|\u2517|\u251b/g,"");c=c.replace(/([^\x20-\x7F])/g,"");var d=(0,R.jsx)(i.Fragment,{});""!==n.ConsoleMsg?d=function(e){var n=e.ConsoleMsg;return n=(n=n.replace(/\x1B/g," ")).replace(/((\[[0-9;]+m))/g,""),(0,R.jsx)("div",{style:{display:"table",tableLayout:"fixed",width:"100%",paddingLeft:10,paddingRight:10},children:(0,R.jsx)("div",{style:{display:"table-cell",whiteSpace:"nowrap",textOverflow:"ellipsis",overflowX:"auto"},children:(0,R.jsx)("pre",{children:n})})})}(n):null!==n.error&&""!==n.error.message&&(d=function(e){var n={color:"#C83B51",fontWeight:400,fontFamily:"monospace",fontSize:"12px"},t={fontFamily:"monospace",fontSize:"12px"};return(0,R.jsxs)(i.Fragment,{children:[(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"API:\xa0"}),(0,R.jsx)("span",{style:n,children:e.api.name})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"Time:\xa0"}),(0,R.jsx)("span",{style:n,children:e.time.toString()})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"DeploymentID:\xa0"}),(0,R.jsx)("span",{style:n,children:e.deploymentid})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"RequestID:\xa0"}),(0,R.jsx)("span",{style:n,children:e.requestID})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"RemoteHost:\xa0"}),(0,R.jsx)("span",{style:n,children:e.remotehost})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"UserAgent:\xa0"}),(0,R.jsx)("span",{style:n,children:e.userAgent})]}),(0,R.jsxs)("div",{children:[(0,R.jsx)("b",{style:t,children:"Error:\xa0"}),(0,R.jsx)("span",{style:n,children:e.error&&e.error.message})]}),(0,R.jsx)("br",{}),(0,R.jsx)("div",{children:(0,R.jsx)("b",{style:t,children:"Backtrace:\xa0"})}),e.error&&e.error.source.map((function(e,r){return(0,R.jsxs)("div",{children:[(0,R.jsxs)("b",{style:t,children:[r,":\xa0"]}),(0,R.jsx)("span",{style:n,children:e})]})}))]})}(n)),c=c.replace(/((\[[0-9;]+m))/g,"");var h=(0,R.jsx)(N(),{format:"YYYY/MM/DD UTC HH:mm:ss",children:n.time});return 1===n.time.getFullYear()&&(h=(0,R.jsx)(i.Fragment,{children:"n/a"})),(0,R.jsxs)(i.Fragment,{children:[(0,R.jsxs)(C.Z,{sx:{"& > *":{borderBottom:"unset"},cursor:"pointer",borderLeft:"0",borderRight:"0"},style:{backgroundColor:"#FDFDFD"},children:[(0,R.jsx)(L.Z,{onClick:function(){return a(!s)},style:{width:200,color:"#989898",fontSize:12},children:(0,R.jsxs)(u.Z,{sx:{"& .min-icon":{width:12,marginRight:1},fontWeight:"bold",lineHeight:1},children:[(0,R.jsx)(k,{}),h]})}),(0,R.jsx)(L.Z,{onClick:function(){return a(!s)},children:(0,R.jsx)("div",{style:{display:"table",tableLayout:"fixed",width:"100%",paddingLeft:10,paddingRight:10},children:(0,R.jsx)("div",{style:{display:"table-cell",whiteSpace:"nowrap",textOverflow:"ellipsis",overflow:"hidden"},children:c})})}),(0,R.jsx)(L.Z,{onClick:function(){return a(!s)},style:{width:40},children:(0,R.jsx)(u.Z,{sx:{"& .min-icon":{display:"flex",alignItems:"center",justifyContent:"center",borderRadius:"2px"},"&:hover .min-icon":{fill:"#eaeaea"}},children:s?(0,R.jsx)(_,{}):(0,R.jsx)(T,{})})})]}),s?(0,R.jsxs)(C.Z,{children:[(0,R.jsx)(L.Z,{style:{paddingBottom:0,paddingTop:0,width:200,textTransform:"uppercase",verticalAlign:"top",textAlign:"right",color:"#8399AB",fontWeight:"bold"},children:(0,R.jsx)(M.Z,{in:s,timeout:"auto",unmountOnExit:!0,children:(0,R.jsx)("div",{style:{marginTop:10},children:"Log Details"})})}),(0,R.jsx)(L.Z,{style:{paddingBottom:0,paddingTop:0},children:(0,R.jsx)(M.Z,{in:s,timeout:"auto",unmountOnExit:!0,children:(0,R.jsx)(u.Z,{sx:{margin:1},children:(0,R.jsx)(P.Z,{style:{background:"#efefef",border:"1px solid #dedede",padding:4,fontSize:14,color:"#666666"},children:d})})})}),(0,R.jsx)(L.Z,{style:{paddingBottom:0,paddingTop:0,width:40}})]}):null]},n.time.toString())},E=(0,c.$j)((function(e){return{messages:e.logs.messages}}),{logMessageReceived:g.Qo,logResetMessages:g.i1}),A=(0,l.Z)((function(e){return(0,a.Z)((0,o.Z)((0,o.Z)((0,o.Z)((0,o.Z)({logList:{background:"#fff",minHeight:400,height:"calc(100vh - 200px)",overflow:"auto",fontSize:13,borderRadius:4},tab:{paddingLeft:25},logerror:{color:"#A52A2A"},logerror_tab:{color:"#A52A2A",paddingLeft:25},ansidefault:{color:"#000"},highlight:{"& span":{backgroundColor:"#082F5238"}}},m.OR),m.qg),m.o$),(0,m.Bz)(e.spacing(4))))}))(E((function(e){var n=e.classes,t=e.logMessageReceived,o=e.logResetMessages,a=e.messages,l=(0,i.useState)(""),c=(0,r.Z)(l,2),h=c[0],g=c[1];(0,i.useEffect)((function(){o();var e=new URL(window.location.toString()),n=e.port,r=(0,p.x2)(e.protocol),i=new s.w3cwebsocket("".concat(r,"://").concat(e.hostname,":").concat(n,"/ws/console")),a=null;if(null!==i)return i.onopen=function(){console.log("WebSocket Client Connected"),i.send("ok"),a=setInterval((function(){i.send("ok")}),1e4)},i.onmessage=function(e){var n=JSON.parse(e.data.toString());n.time=f()(n.time,"HH:mm:s UTC MM/DD/YYYY").toDate(),n.key=Math.random(),t(n)},i.onclose=function(){clearInterval(a),console.log("connection closed by server")},function(){i.close(1e3),clearInterval(a),console.log("closing websockets")}}),[t,o]);var m=h.toLowerCase(),C=a.filter((function(e){return""===h||(e.ConsoleMsg.toLowerCase().indexOf(m)>=0||(!!(e.error&&e.error.source&&e.error.source.filter((function(e){return e.toLowerCase().indexOf(m)>=0})).length>0)||(!!(e.error&&e.error.message.toLowerCase().indexOf(m)>=0)||!!(e.api&&e.api.name.toLowerCase().indexOf(m)>=0))))}));return(0,R.jsxs)(i.Fragment,{children:[(0,R.jsx)(x.Z,{label:"Logs"}),(0,R.jsx)(j.Z,{children:(0,R.jsxs)(d.ZP,{container:!0,children:[(0,R.jsx)(d.ZP,{item:!0,xs:12,className:n.actionsTray,children:(0,R.jsx)(v.Z,{placeholder:"Filter",onChange:function(e){g(e)},value:h})}),(0,R.jsx)(d.ZP,{item:!0,xs:12,"data-test-id":"logs-list-container",children:C.length?(0,R.jsx)("div",{id:"logs-container",className:n.logList,children:(0,R.jsx)(y.Z,{component:b.Z,sx:{borderBottom:"0px"},children:(0,R.jsx)(Z.Z,{"aria-label":"collapsible table",children:(0,R.jsx)(w.Z,{children:C.map((function(e){return(0,R.jsx)(O,{log:e},e.key)}))})})})}):(0,R.jsx)(u.Z,{sx:{padding:"15px",display:"flex",alignItems:"center",justifyContent:"center"},children:h.trim().length?'No matching logs for "'.concat(h.trim(),'".'):"No logs to display."})})]})})]})})))},26824:function(e,n,t){"use strict";t.d(n,{HE:function(){return i},V9:function(){return r},ci:function(){return o},x2:function(){return s}});var r=1006,o=1008,i=1011,s=function(e){var n="ws";return"https:"===e&&(n="wss"),n}},63466:function(e,n,t){"use strict";t.d(n,{Z:function(){return w}});var r=t(4942),o=t(63366),i=t(87462),s=t(72791),a=t(28182),l=t(90767),c=t(14036),d=t(20890),u=t(93840),h=t(52930),f=t(47630),g=t(95159);function p(e){return(0,g.Z)("MuiInputAdornment",e)}var m,x=(0,t(30208).Z)("MuiInputAdornment",["root","filled","standard","outlined","positionStart","positionEnd","disablePointerEvents","hiddenLabel","sizeSmall"]),j=t(93736),v=t(80184),b=["children","className","component","disablePointerEvents","disableTypography","position","variant"],Z=(0,f.ZP)("div",{name:"MuiInputAdornment",slot:"Root",overridesResolver:function(e,n){var t=e.ownerState;return[n.root,n["position".concat((0,c.Z)(t.position))],!0===t.disablePointerEvents&&n.disablePointerEvents,n[t.variant]]}})((function(e){var n=e.theme,t=e.ownerState;return(0,i.Z)({display:"flex",height:"0.01em",maxHeight:"2em",alignItems:"center",whiteSpace:"nowrap",color:n.palette.action.active},"filled"===t.variant&&(0,r.Z)({},"&.".concat(x.positionStart,"&:not(.").concat(x.hiddenLabel,")"),{marginTop:16}),"start"===t.position&&{marginRight:8},"end"===t.position&&{marginLeft:8},!0===t.disablePointerEvents&&{pointerEvents:"none"})})),w=s.forwardRef((function(e,n){var t=(0,j.Z)({props:e,name:"MuiInputAdornment"}),r=t.children,f=t.className,g=t.component,x=void 0===g?"div":g,w=t.disablePointerEvents,y=void 0!==w&&w,C=t.disableTypography,L=void 0!==C&&C,M=t.position,P=t.variant,S=(0,o.Z)(t,b),N=(0,h.Z)()||{},R=P;P&&N.variant,N&&!R&&(R=N.variant);var _=(0,i.Z)({},t,{hiddenLabel:N.hiddenLabel,size:N.size,disablePointerEvents:y,position:M,variant:R}),T=function(e){var n=e.classes,t=e.disablePointerEvents,r=e.hiddenLabel,o=e.position,i=e.size,s=e.variant,a={root:["root",t&&"disablePointerEvents",o&&"position".concat((0,c.Z)(o)),s,r&&"hiddenLabel",i&&"size".concat((0,c.Z)(i))]};return(0,l.Z)(a,p,n)}(_);return(0,v.jsx)(u.Z.Provider,{value:null,children:(0,v.jsx)(Z,(0,i.Z)({as:x,ownerState:_,className:(0,a.Z)(T.root,f),ref:n},S,{children:"string"!==typeof r||L?(0,v.jsxs)(s.Fragment,{children:["start"===M?m||(m=(0,v.jsx)("span",{className:"notranslate",children:"\u200b"})):null,r]}):(0,v.jsx)(d.Z,{color:"text.secondary",children:r})}))})}))},39281:function(e,n,t){"use strict";t.d(n,{Z:function(){return p}});var r=t(87462),o=t(63366),i=t(72791),s=t(28182),a=t(90767),l=t(93736),c=t(47630),d=t(95159);function u(e){return(0,d.Z)("MuiTableContainer",e)}(0,t(30208).Z)("MuiTableContainer",["root"]);var h=t(80184),f=["className","component"],g=(0,c.ZP)("div",{name:"MuiTableContainer",slot:"Root",overridesResolver:function(e,n){return n.root}})({width:"100%",overflowX:"auto"}),p=i.forwardRef((function(e,n){var t=(0,l.Z)({props:e,name:"MuiTableContainer"}),i=t.className,c=t.component,d=void 0===c?"div":c,p=(0,o.Z)(t,f),m=(0,r.Z)({},t,{component:d}),x=function(e){var n=e.classes;return(0,a.Z)({root:["root"]},u,n)}(m);return(0,h.jsx)(g,(0,r.Z)({ref:n,as:d,className:(0,s.Z)(x.root,i),ownerState:m},p))}))},94210:function(e){var n=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 n()}try{return __global__||n()}finally{delete Object.prototype.__global__}}()},95087:function(e,n,t){var r;if("object"===typeof globalThis)r=globalThis;else try{r=t(94210)}catch(a){}finally{if(r||"undefined"===typeof window||(r=window),!r)throw new Error("Could not determine global this")}var o=r.WebSocket||r.MozWebSocket,i=t(51496);function s(e,n){return n?new o(e,n):new o(e)}o&&["CONNECTING","OPEN","CLOSING","CLOSED"].forEach((function(e){Object.defineProperty(s,e,{get:function(){return o[e]}})})),e.exports={w3cwebsocket:o?s:null,version:i}},51496:function(e,n,t){e.exports=t(19794).version},19794:function(e){"use strict";e.exports={version:"1.0.34"}}}]); +//# sourceMappingURL=6763.e45b988a.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6763.d86879b4.chunk.js.map b/portal-ui/build/static/js/6763.e45b988a.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/6763.d86879b4.chunk.js.map rename to portal-ui/build/static/js/6763.e45b988a.chunk.js.map index 84f34f948..ef04cd5e5 100644 --- a/portal-ui/build/static/js/6763.d86879b4.chunk.js.map +++ b/portal-ui/build/static/js/6763.e45b988a.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/6763.d86879b4.chunk.js","mappings":"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","sources":["screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/SearchBox.tsx","icons/BoxArrowUp.tsx","icons/BoxArrowDown.tsx","icons/WarnFilledIcon.tsx","screens/Console/Logs/ErrorLogs/LogLine.tsx","screens/Console/Logs/ErrorLogs/ErrorLogs.tsx","utils/wsUtils.ts","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/@mui/material/TableContainer/tableContainerClasses.js","../node_modules/@mui/material/TableContainer/TableContainer.js","../node_modules/es5-ext/global.js","../node_modules/websocket/lib/browser.js","../node_modules/websocket/lib/version.js"],"sourcesContent":["import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst BoxArrowUp = (props: SVGProps) => (\n \n \n \n \n \n \n \n \n);\n\nexport default BoxArrowUp;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst BoxArrowDown = (props: SVGProps) => (\n \n \n \n \n \n \n \n \n);\n\nexport default BoxArrowDown;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst WarnFilledIcon = (props: SVGProps) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default WarnFilledIcon;\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, { Fragment, useState } from \"react\";\nimport { LogMessage } from \"../types\";\nimport TableRow from \"@mui/material/TableRow\";\nimport TableCell from \"@mui/material/TableCell\";\nimport Collapse from \"@mui/material/Collapse\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Moment from \"react-moment\";\nimport BoxArrowUp from \"../../../../icons/BoxArrowUp\";\nimport BoxArrowDown from \"../../../../icons/BoxArrowDown\";\nimport WarnFilledIcon from \"../../../../icons/WarnFilledIcon\";\n\nconst messageForConsoleMsg = (log: LogMessage) => {\n // regex for terminal colors like e.g. `[31;4m `\n const tColorRegex = /((\\[[0-9;]+m))/g;\n\n let fullMessage = log.ConsoleMsg;\n // remove the 0x1B character\n /* eslint-disable no-control-regex */\n fullMessage = fullMessage.replace(/\\x1B/g, \" \");\n /* eslint-enable no-control-regex */\n // get substring if there was a match for to split what\n // is going to be colored and what not, here we add color\n // only to the first match.\n fullMessage = fullMessage.replace(tColorRegex, \"\");\n return (\n \n \n
    {fullMessage}
    \n \n \n );\n};\nconst messageForError = (log: LogMessage) => {\n const dataStyle = {\n color: \"#C83B51\",\n fontWeight: 400,\n fontFamily: \"monospace\",\n fontSize: \"12px\",\n };\n const labelStyle = {\n fontFamily: \"monospace\",\n fontSize: \"12px\",\n };\n return (\n \n
    \n API: \n {log.api.name}\n
    \n
    \n Time: \n {log.time.toString()}\n
    \n
    \n DeploymentID: \n {log.deploymentid}\n
    \n
    \n RequestID: \n {log.requestID}\n
    \n
    \n RemoteHost: \n {log.remotehost}\n
    \n
    \n UserAgent: \n {log.userAgent}\n
    \n
    \n Error: \n {log.error && log.error.message}\n
    \n
    \n
    \n Backtrace: \n
    \n {log.error &&\n log.error.source.map((e, i) => {\n return (\n
    \n {i}: \n {e}\n
    \n );\n })}\n
    \n );\n};\n\nconst LogLine = (props: { log: LogMessage }) => {\n const { log } = props;\n const [open, setOpen] = useState(false);\n\n let logMessage = \"\";\n if (log.ConsoleMsg !== \"\") {\n logMessage = log.ConsoleMsg;\n } else if (log.error !== null && log.error.message !== \"\") {\n logMessage = log.error.message;\n }\n // remove any non ascii characters, exclude any control codes\n let titleLogMessage = logMessage.replace(/━|┏|┓|┃|┗|┛/g, \"\");\n // remove any non ascii characters, exclude any control codes\n titleLogMessage = titleLogMessage.replace(/([^\\x20-\\x7F])/g, \"\");\n\n // regex for terminal colors like e.g. `[31;4m `\n const tColorRegex = /((\\[[0-9;]+m))/g;\n\n let fullMessage = ;\n if (log.ConsoleMsg !== \"\") {\n fullMessage = messageForConsoleMsg(log);\n } else if (log.error !== null && log.error.message !== \"\") {\n fullMessage = messageForError(log);\n }\n\n titleLogMessage = titleLogMessage.replace(tColorRegex, \"\");\n\n let dateStr = {log.time};\n if (log.time.getFullYear() === 1) {\n dateStr = n/a;\n }\n\n return (\n \n *\": { borderBottom: \"unset\" },\n cursor: \"pointer\",\n borderLeft: \"0\",\n borderRight: \"0\",\n }}\n style={{ backgroundColor: \"#FDFDFD\" }}\n >\n setOpen(!open)}\n style={{ width: 200, color: \"#989898\", fontSize: 12 }}\n >\n \n \n {dateStr}\n \n \n setOpen(!open)}>\n \n \n {titleLogMessage}\n \n \n \n setOpen(!open)} style={{ width: 40 }}>\n \n {open ? : }\n \n \n \n {open ? (\n \n \n \n
    Log Details
    \n
    \n \n \n \n \n \n {fullMessage}\n \n \n \n \n \n
    \n ) : null}\n
    \n );\n};\n\nexport default LogLine;\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, { Fragment, useEffect, useState } from \"react\";\nimport { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { connect } from \"react-redux\";\nimport { Box, Grid } from \"@mui/material\";\nimport moment from \"moment/moment\";\nimport { AppState } from \"../../../../store\";\nimport { logMessageReceived, logResetMessages } from \"../actions\";\nimport { LogMessage } from \"../types\";\nimport { wsProtocol } from \"../../../../utils/wsUtils\";\nimport {\n actionsTray,\n containerForHeader,\n logsCommon,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport SearchBox from \"../../Common/SearchBox\";\nimport Paper from \"@mui/material/Paper\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport LogLine from \"./LogLine\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n logList: {\n background: \"#fff\",\n minHeight: 400,\n height: \"calc(100vh - 200px)\",\n overflow: \"auto\",\n fontSize: 13,\n borderRadius: 4,\n },\n tab: {\n paddingLeft: 25,\n },\n logerror: {\n color: \"#A52A2A\",\n },\n logerror_tab: {\n color: \"#A52A2A\",\n paddingLeft: 25,\n },\n ansidefault: {\n color: \"#000\",\n },\n highlight: {\n \"& span\": {\n backgroundColor: \"#082F5238\",\n },\n },\n ...actionsTray,\n ...searchField,\n ...logsCommon,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface ILogs {\n classes: any;\n logMessageReceived: typeof logMessageReceived;\n logResetMessages: typeof logResetMessages;\n messages: LogMessage[];\n}\n\nconst ErrorLogs = ({\n classes,\n logMessageReceived,\n logResetMessages,\n messages,\n}: ILogs) => {\n const [filter, setFilter] = useState(\"\");\n\n useEffect(() => {\n logResetMessages();\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 const wsProt = wsProtocol(url.protocol);\n\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}/ws/console`\n );\n\n let interval: any | null = null;\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n c.send(\"ok\");\n interval = setInterval(() => {\n c.send(\"ok\");\n }, 10 * 1000);\n };\n c.onmessage = (message: IMessageEvent) => {\n // console.log(message.data.toString())\n // FORMAT: 00:35:17 UTC 01/01/2021\n let m: LogMessage = JSON.parse(message.data.toString());\n m.time = moment(m.time, \"HH:mm:s UTC MM/DD/YYYY\").toDate();\n m.key = Math.random();\n logMessageReceived(m);\n };\n c.onclose = () => {\n clearInterval(interval);\n console.log(\"connection closed by server\");\n };\n return () => {\n c.close(1000);\n clearInterval(interval);\n console.log(\"closing websockets\");\n };\n }\n }, [logMessageReceived, logResetMessages]);\n\n const filtLow = filter.toLowerCase();\n let filteredMessages = messages.filter((m) => {\n if (filter !== \"\") {\n if (m.ConsoleMsg.toLowerCase().indexOf(filtLow) >= 0) {\n return true;\n } else if (\n m.error &&\n m.error.source &&\n m.error.source.filter((x) => {\n return x.toLowerCase().indexOf(filtLow) >= 0;\n }).length > 0\n ) {\n return true;\n } else if (\n m.error &&\n m.error.message.toLowerCase().indexOf(filtLow) >= 0\n ) {\n return true;\n } else if (m.api && m.api.name.toLowerCase().indexOf(filtLow) >= 0) {\n return true;\n }\n return false;\n }\n return true;\n });\n\n return (\n \n \n \n \n \n {\n setFilter(e);\n }}\n value={filter}\n />\n \n \n {filteredMessages.length ? (\n
    \n \n \n \n {filteredMessages.map((m) => {\n return ;\n })}\n \n
    \n \n
    \n ) : (\n \n {filter.trim().length\n ? `No matching logs for \"${filter.trim()}\".`\n : \"No logs to display.\"}\n \n )}\n
    \n
    \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n messages: state.logs.messages,\n});\n\nconst connector = connect(mapState, {\n logMessageReceived: logMessageReceived,\n logResetMessages: logResetMessages,\n});\n\nexport default withStyles(styles)(connector(ErrorLogs));\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseNormalClosure = 1000;\nexport const WSCloseCloseGoingAway = 1001;\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\n\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: theme.palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ?\n /* notranslate needed while Google Translate will not fix zero-width space issue */\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableContainerUtilityClass(slot) {\n return generateUtilityClass('MuiTableContainer', slot);\n}\nconst tableContainerClasses = generateUtilityClasses('MuiTableContainer', ['root']);\nexport default tableContainerClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getTableContainerUtilityClass } from './tableContainerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableContainerUtilityClass, classes);\n};\n\nconst TableContainerRoot = styled('div', {\n name: 'MuiTableContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n width: '100%',\n overflowX: 'auto'\n});\nconst TableContainer = /*#__PURE__*/React.forwardRef(function TableContainer(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableContainer'\n });\n\n const {\n className,\n component = 'div'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TableContainerRoot, _extends({\n ref: ref,\n as: component,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableContainer.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally `Table`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableContainer;","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","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":["withStyles","theme","createStyles","pageContentStyles","classes","className","children","contentSpacer","container","item","xs","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","width","minHeight","display","backgroundColor","left","boxShadow","label","justifyContent","alignItems","labelStyle","color","fontSize","fontWeight","marginLeft","marginTop","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","actions","includes","Fragment","direction","sm","md","sx","paddingTop","variant","length","component","onClick","id","size","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","InputProps","e","target","props","xmlns","viewBox","transform","height","d","log","useState","open","setOpen","logMessage","ConsoleMsg","error","message","titleLogMessage","replace","fullMessage","style","tableLayout","paddingLeft","paddingRight","whiteSpace","textOverflow","overflowX","messageForConsoleMsg","dataStyle","fontFamily","api","name","time","toString","deploymentid","requestID","remotehost","userAgent","source","map","i","messageForError","dateStr","format","getFullYear","TableRow","borderBottom","cursor","borderLeft","borderRight","TableCell","Box","marginRight","lineHeight","overflow","borderRadius","paddingBottom","textTransform","verticalAlign","Collapse","in","timeout","unmountOnExit","margin","Typography","background","border","padding","messages","logs","logMessageReceived","logResetMessages","logList","tab","logerror","logerror_tab","ansidefault","highlight","actionsTray","logsCommon","containerForHeader","spacing","filter","setFilter","useEffect","url","URL","window","location","port","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","interval","onopen","send","setInterval","onmessage","m","JSON","parse","data","moment","toDate","key","Math","random","onclose","clearInterval","close","filtLow","toLowerCase","filteredMessages","indexOf","x","PageHeader","PageLayout","Grid","SearchBox","TableContainer","Paper","Table","TableBody","trim","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr","getInputAdornmentUtilityClass","slot","generateUtilityClass","_span","generateUtilityClasses","_excluded","InputAdornmentRoot","styled","overridesResolver","styles","ownerState","root","capitalize","disablePointerEvents","_extends","maxHeight","action","active","inputAdornmentClasses","pointerEvents","React","inProps","ref","useThemeProps","disableTypography","variantProp","other","_objectWithoutPropertiesLoose","muiFormControl","useFormControl","hiddenLabel","slots","composeClasses","useUtilityClasses","_jsx","FormControlContext","as","clsx","_jsxs","getTableContainerUtilityClass","TableContainerRoot","naiveFallback","self","Error","module","exports","this","globalThis","Object","defineProperty","prototype","get","configurable","__global__","_globalThis","require","NativeWebSocket","WebSocket","MozWebSocket","websocket_version","uri","protocols","forEach","prop"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/6763.e45b988a.chunk.js","mappings":"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","sources":["screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/SearchBox.tsx","icons/BoxArrowUp.tsx","icons/BoxArrowDown.tsx","icons/WarnFilledIcon.tsx","screens/Console/Logs/ErrorLogs/LogLine.tsx","screens/Console/Logs/ErrorLogs/ErrorLogs.tsx","utils/wsUtils.ts","../node_modules/@mui/material/InputAdornment/inputAdornmentClasses.js","../node_modules/@mui/material/InputAdornment/InputAdornment.js","../node_modules/@mui/material/TableContainer/tableContainerClasses.js","../node_modules/@mui/material/TableContainer/TableContainer.js","../node_modules/es5-ext/global.js","../node_modules/websocket/lib/browser.js","../node_modules/websocket/lib/version.js"],"sourcesContent":["import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport SearchIcon from \"../../../icons/SearchIcon\";\nimport TextField from \"@mui/material/TextField\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport { searchField } from \"./FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n searchField: {\n ...searchField.searchField,\n },\n adornment: {},\n });\n\ntype SearchBoxProps = {\n placeholder?: string;\n value: string;\n classes: any;\n onChange: (value: string) => void;\n adornmentPosition?: \"start\" | \"end\";\n overrideClass?: any;\n};\n\nconst SearchBox = ({\n placeholder = \"\",\n classes,\n onChange,\n adornmentPosition = \"end\",\n overrideClass,\n value,\n}: SearchBoxProps) => {\n const inputProps = {\n disableUnderline: true,\n [`${adornmentPosition}Adornment`]: (\n \n \n \n ),\n };\n return (\n {\n onChange(e.target.value);\n }}\n variant=\"standard\"\n value={value}\n />\n );\n};\n\nexport default withStyles(styles)(SearchBox);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst BoxArrowUp = (props: SVGProps) => (\n \n \n \n \n \n \n \n \n);\n\nexport default BoxArrowUp;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst BoxArrowDown = (props: SVGProps) => (\n \n \n \n \n \n \n \n \n);\n\nexport default BoxArrowDown;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2022 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport * as React from \"react\";\nimport { SVGProps } from \"react\";\n\nconst WarnFilledIcon = (props: SVGProps) => {\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n );\n};\n\nexport default WarnFilledIcon;\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, { Fragment, useState } from \"react\";\nimport { LogMessage } from \"../types\";\nimport TableRow from \"@mui/material/TableRow\";\nimport TableCell from \"@mui/material/TableCell\";\nimport Collapse from \"@mui/material/Collapse\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Moment from \"react-moment\";\nimport BoxArrowUp from \"../../../../icons/BoxArrowUp\";\nimport BoxArrowDown from \"../../../../icons/BoxArrowDown\";\nimport WarnFilledIcon from \"../../../../icons/WarnFilledIcon\";\n\nconst messageForConsoleMsg = (log: LogMessage) => {\n // regex for terminal colors like e.g. `[31;4m `\n const tColorRegex = /((\\[[0-9;]+m))/g;\n\n let fullMessage = log.ConsoleMsg;\n // remove the 0x1B character\n /* eslint-disable no-control-regex */\n fullMessage = fullMessage.replace(/\\x1B/g, \" \");\n /* eslint-enable no-control-regex */\n // get substring if there was a match for to split what\n // is going to be colored and what not, here we add color\n // only to the first match.\n fullMessage = fullMessage.replace(tColorRegex, \"\");\n return (\n \n \n
    {fullMessage}
    \n \n \n );\n};\nconst messageForError = (log: LogMessage) => {\n const dataStyle = {\n color: \"#C83B51\",\n fontWeight: 400,\n fontFamily: \"monospace\",\n fontSize: \"12px\",\n };\n const labelStyle = {\n fontFamily: \"monospace\",\n fontSize: \"12px\",\n };\n return (\n \n
    \n API: \n {log.api.name}\n
    \n
    \n Time: \n {log.time.toString()}\n
    \n
    \n DeploymentID: \n {log.deploymentid}\n
    \n
    \n RequestID: \n {log.requestID}\n
    \n
    \n RemoteHost: \n {log.remotehost}\n
    \n
    \n UserAgent: \n {log.userAgent}\n
    \n
    \n Error: \n {log.error && log.error.message}\n
    \n
    \n
    \n Backtrace: \n
    \n {log.error &&\n log.error.source.map((e, i) => {\n return (\n
    \n {i}: \n {e}\n
    \n );\n })}\n
    \n );\n};\n\nconst LogLine = (props: { log: LogMessage }) => {\n const { log } = props;\n const [open, setOpen] = useState(false);\n\n let logMessage = \"\";\n if (log.ConsoleMsg !== \"\") {\n logMessage = log.ConsoleMsg;\n } else if (log.error !== null && log.error.message !== \"\") {\n logMessage = log.error.message;\n }\n // remove any non ascii characters, exclude any control codes\n let titleLogMessage = logMessage.replace(/━|┏|┓|┃|┗|┛/g, \"\");\n // remove any non ascii characters, exclude any control codes\n titleLogMessage = titleLogMessage.replace(/([^\\x20-\\x7F])/g, \"\");\n\n // regex for terminal colors like e.g. `[31;4m `\n const tColorRegex = /((\\[[0-9;]+m))/g;\n\n let fullMessage = ;\n if (log.ConsoleMsg !== \"\") {\n fullMessage = messageForConsoleMsg(log);\n } else if (log.error !== null && log.error.message !== \"\") {\n fullMessage = messageForError(log);\n }\n\n titleLogMessage = titleLogMessage.replace(tColorRegex, \"\");\n\n let dateStr = {log.time};\n if (log.time.getFullYear() === 1) {\n dateStr = n/a;\n }\n\n return (\n \n *\": { borderBottom: \"unset\" },\n cursor: \"pointer\",\n borderLeft: \"0\",\n borderRight: \"0\",\n }}\n style={{ backgroundColor: \"#FDFDFD\" }}\n >\n setOpen(!open)}\n style={{ width: 200, color: \"#989898\", fontSize: 12 }}\n >\n \n \n {dateStr}\n \n \n setOpen(!open)}>\n \n \n {titleLogMessage}\n \n \n \n setOpen(!open)} style={{ width: 40 }}>\n \n {open ? : }\n \n \n \n {open ? (\n \n \n \n
    Log Details
    \n
    \n \n \n \n \n \n {fullMessage}\n \n \n \n \n \n
    \n ) : null}\n
    \n );\n};\n\nexport default LogLine;\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, { Fragment, useEffect, useState } from \"react\";\nimport { IMessageEvent, w3cwebsocket as W3CWebSocket } from \"websocket\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { connect } from \"react-redux\";\nimport { Box, Grid } from \"@mui/material\";\nimport moment from \"moment/moment\";\nimport { AppState } from \"../../../../store\";\nimport { logMessageReceived, logResetMessages } from \"../actions\";\nimport { LogMessage } from \"../types\";\nimport { wsProtocol } from \"../../../../utils/wsUtils\";\nimport {\n actionsTray,\n containerForHeader,\n logsCommon,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport SearchBox from \"../../Common/SearchBox\";\nimport Paper from \"@mui/material/Paper\";\nimport Table from \"@mui/material/Table\";\nimport TableBody from \"@mui/material/TableBody\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport LogLine from \"./LogLine\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n logList: {\n background: \"#fff\",\n minHeight: 400,\n height: \"calc(100vh - 200px)\",\n overflow: \"auto\",\n fontSize: 13,\n borderRadius: 4,\n },\n tab: {\n paddingLeft: 25,\n },\n logerror: {\n color: \"#A52A2A\",\n },\n logerror_tab: {\n color: \"#A52A2A\",\n paddingLeft: 25,\n },\n ansidefault: {\n color: \"#000\",\n },\n highlight: {\n \"& span\": {\n backgroundColor: \"#082F5238\",\n },\n },\n ...actionsTray,\n ...searchField,\n ...logsCommon,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface ILogs {\n classes: any;\n logMessageReceived: typeof logMessageReceived;\n logResetMessages: typeof logResetMessages;\n messages: LogMessage[];\n}\n\nconst ErrorLogs = ({\n classes,\n logMessageReceived,\n logResetMessages,\n messages,\n}: ILogs) => {\n const [filter, setFilter] = useState(\"\");\n\n useEffect(() => {\n logResetMessages();\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 const wsProt = wsProtocol(url.protocol);\n\n const c = new W3CWebSocket(\n `${wsProt}://${url.hostname}:${port}/ws/console`\n );\n\n let interval: any | null = null;\n if (c !== null) {\n c.onopen = () => {\n console.log(\"WebSocket Client Connected\");\n c.send(\"ok\");\n interval = setInterval(() => {\n c.send(\"ok\");\n }, 10 * 1000);\n };\n c.onmessage = (message: IMessageEvent) => {\n // console.log(message.data.toString())\n // FORMAT: 00:35:17 UTC 01/01/2021\n let m: LogMessage = JSON.parse(message.data.toString());\n m.time = moment(m.time, \"HH:mm:s UTC MM/DD/YYYY\").toDate();\n m.key = Math.random();\n logMessageReceived(m);\n };\n c.onclose = () => {\n clearInterval(interval);\n console.log(\"connection closed by server\");\n };\n return () => {\n c.close(1000);\n clearInterval(interval);\n console.log(\"closing websockets\");\n };\n }\n }, [logMessageReceived, logResetMessages]);\n\n const filtLow = filter.toLowerCase();\n let filteredMessages = messages.filter((m) => {\n if (filter !== \"\") {\n if (m.ConsoleMsg.toLowerCase().indexOf(filtLow) >= 0) {\n return true;\n } else if (\n m.error &&\n m.error.source &&\n m.error.source.filter((x) => {\n return x.toLowerCase().indexOf(filtLow) >= 0;\n }).length > 0\n ) {\n return true;\n } else if (\n m.error &&\n m.error.message.toLowerCase().indexOf(filtLow) >= 0\n ) {\n return true;\n } else if (m.api && m.api.name.toLowerCase().indexOf(filtLow) >= 0) {\n return true;\n }\n return false;\n }\n return true;\n });\n\n return (\n \n \n \n \n \n {\n setFilter(e);\n }}\n value={filter}\n />\n \n \n {filteredMessages.length ? (\n
    \n \n \n \n {filteredMessages.map((m) => {\n return ;\n })}\n \n
    \n \n
    \n ) : (\n \n {filter.trim().length\n ? `No matching logs for \"${filter.trim()}\".`\n : \"No logs to display.\"}\n \n )}\n
    \n
    \n
    \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n messages: state.logs.messages,\n});\n\nconst connector = connect(mapState, {\n logMessageReceived: logMessageReceived,\n logResetMessages: logResetMessages,\n});\n\nexport default withStyles(styles)(connector(ErrorLogs));\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// Close codes for websockets defined in RFC 6455\nexport const WSCloseNormalClosure = 1000;\nexport const WSCloseCloseGoingAway = 1001;\nexport const WSCloseAbnormalClosure = 1006;\nexport const WSClosePolicyViolation = 1008;\nexport const WSCloseInternalServerErr = 1011;\n\nexport const wsProtocol = (protocol: string): string => {\n let wsProtocol = \"ws\";\n if (protocol === \"https:\") {\n wsProtocol = \"wss\";\n }\n return wsProtocol;\n};\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getInputAdornmentUtilityClass(slot) {\n return generateUtilityClass('MuiInputAdornment', slot);\n}\nconst inputAdornmentClasses = generateUtilityClasses('MuiInputAdornment', ['root', 'filled', 'standard', 'outlined', 'positionStart', 'positionEnd', 'disablePointerEvents', 'hiddenLabel', 'sizeSmall']);\nexport default inputAdornmentClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\n\nvar _span;\n\nconst _excluded = [\"children\", \"className\", \"component\", \"disablePointerEvents\", \"disableTypography\", \"position\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport Typography from '../Typography';\nimport FormControlContext from '../FormControl/FormControlContext';\nimport useFormControl from '../FormControl/useFormControl';\nimport styled from '../styles/styled';\nimport inputAdornmentClasses, { getInputAdornmentUtilityClass } from './inputAdornmentClasses';\nimport useThemeProps from '../styles/useThemeProps';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n\nconst overridesResolver = (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`position${capitalize(ownerState.position)}`], ownerState.disablePointerEvents === true && styles.disablePointerEvents, styles[ownerState.variant]];\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disablePointerEvents,\n hiddenLabel,\n position,\n size,\n variant\n } = ownerState;\n const slots = {\n root: ['root', disablePointerEvents && 'disablePointerEvents', position && `position${capitalize(position)}`, variant, hiddenLabel && 'hiddenLabel', size && `size${capitalize(size)}`]\n };\n return composeClasses(slots, getInputAdornmentUtilityClass, classes);\n};\n\nconst InputAdornmentRoot = styled('div', {\n name: 'MuiInputAdornment',\n slot: 'Root',\n overridesResolver\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'flex',\n height: '0.01em',\n // Fix IE11 flexbox alignment. To remove at some point.\n maxHeight: '2em',\n alignItems: 'center',\n whiteSpace: 'nowrap',\n color: theme.palette.action.active\n}, ownerState.variant === 'filled' && {\n // Styles applied to the root element if `variant=\"filled\"`.\n [`&.${inputAdornmentClasses.positionStart}&:not(.${inputAdornmentClasses.hiddenLabel})`]: {\n marginTop: 16\n }\n}, ownerState.position === 'start' && {\n // Styles applied to the root element if `position=\"start\"`.\n marginRight: 8\n}, ownerState.position === 'end' && {\n // Styles applied to the root element if `position=\"end\"`.\n marginLeft: 8\n}, ownerState.disablePointerEvents === true && {\n // Styles applied to the root element if `disablePointerEvents={true}`.\n pointerEvents: 'none'\n}));\nconst InputAdornment = /*#__PURE__*/React.forwardRef(function InputAdornment(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiInputAdornment'\n });\n\n const {\n children,\n className,\n component = 'div',\n disablePointerEvents = false,\n disableTypography = false,\n position,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const muiFormControl = useFormControl() || {};\n let variant = variantProp;\n\n if (variantProp && muiFormControl.variant) {\n if (process.env.NODE_ENV !== 'production') {\n if (variantProp === muiFormControl.variant) {\n console.error('MUI: The `InputAdornment` variant infers the variant prop ' + 'you do not have to provide one.');\n }\n }\n }\n\n if (muiFormControl && !variant) {\n variant = muiFormControl.variant;\n }\n\n const ownerState = _extends({}, props, {\n hiddenLabel: muiFormControl.hiddenLabel,\n size: muiFormControl.size,\n disablePointerEvents,\n position,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(FormControlContext.Provider, {\n value: null,\n children: /*#__PURE__*/_jsx(InputAdornmentRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other, {\n children: typeof children === 'string' && !disableTypography ? /*#__PURE__*/_jsx(Typography, {\n color: \"text.secondary\",\n children: children\n }) : /*#__PURE__*/_jsxs(React.Fragment, {\n children: [position === 'start' ?\n /* notranslate needed while Google Translate will not fix zero-width space issue */\n _span || (_span = /*#__PURE__*/_jsx(\"span\", {\n className: \"notranslate\",\n children: \"\\u200B\"\n })) : null, children]\n })\n }))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? InputAdornment.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally an `IconButton` or string.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * Disable pointer events on the root.\n * This allows for the content of the adornment to focus the `input` on click.\n * @default false\n */\n disablePointerEvents: PropTypes.bool,\n\n /**\n * If children is a string then disable wrapping in a Typography component.\n * @default false\n */\n disableTypography: PropTypes.bool,\n\n /**\n * The position this adornment should appear relative to the `Input`.\n */\n position: PropTypes.oneOf(['end', 'start']).isRequired,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The variant to use.\n * Note: If you are using the `TextField` component or the `FormControl` component\n * you do not have to set this manually.\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default InputAdornment;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTableContainerUtilityClass(slot) {\n return generateUtilityClass('MuiTableContainer', slot);\n}\nconst tableContainerClasses = generateUtilityClasses('MuiTableContainer', ['root']);\nexport default tableContainerClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getTableContainerUtilityClass } from './tableContainerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableContainerUtilityClass, classes);\n};\n\nconst TableContainerRoot = styled('div', {\n name: 'MuiTableContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n width: '100%',\n overflowX: 'auto'\n});\nconst TableContainer = /*#__PURE__*/React.forwardRef(function TableContainer(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableContainer'\n });\n\n const {\n className,\n component = 'div'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TableContainerRoot, _extends({\n ref: ref,\n as: component,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableContainer.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally `Table`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableContainer;","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","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":["withStyles","theme","createStyles","pageContentStyles","classes","className","children","contentSpacer","container","item","xs","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","width","minHeight","display","backgroundColor","left","boxShadow","label","justifyContent","alignItems","labelStyle","color","fontSize","fontWeight","marginLeft","marginTop","rightMenu","textAlign","logo","fill","palette","primary","main","middleComponent","actions","includes","Fragment","direction","sm","md","sx","paddingTop","variant","length","component","onClick","id","size","searchField","adornment","placeholder","onChange","adornmentPosition","overrideClass","value","inputProps","disableUnderline","position","InputProps","e","target","props","xmlns","viewBox","transform","height","d","log","useState","open","setOpen","logMessage","ConsoleMsg","error","message","titleLogMessage","replace","fullMessage","style","tableLayout","paddingLeft","paddingRight","whiteSpace","textOverflow","overflowX","messageForConsoleMsg","dataStyle","fontFamily","api","name","time","toString","deploymentid","requestID","remotehost","userAgent","source","map","i","messageForError","dateStr","format","getFullYear","TableRow","borderBottom","cursor","borderLeft","borderRight","TableCell","Box","marginRight","lineHeight","overflow","borderRadius","paddingBottom","textTransform","verticalAlign","Collapse","in","timeout","unmountOnExit","margin","Typography","background","border","padding","messages","logs","logMessageReceived","logResetMessages","logList","tab","logerror","logerror_tab","ansidefault","highlight","actionsTray","logsCommon","containerForHeader","spacing","filter","setFilter","useEffect","url","URL","window","location","port","wsProt","wsProtocol","protocol","c","W3CWebSocket","hostname","interval","onopen","send","setInterval","onmessage","m","JSON","parse","data","moment","toDate","key","Math","random","onclose","clearInterval","close","filtLow","toLowerCase","filteredMessages","indexOf","x","PageHeader","PageLayout","Grid","SearchBox","TableContainer","Paper","Table","TableBody","trim","WSCloseAbnormalClosure","WSClosePolicyViolation","WSCloseInternalServerErr","getInputAdornmentUtilityClass","slot","generateUtilityClass","_span","generateUtilityClasses","_excluded","InputAdornmentRoot","styled","overridesResolver","styles","ownerState","root","capitalize","disablePointerEvents","_extends","maxHeight","action","active","inputAdornmentClasses","pointerEvents","React","inProps","ref","useThemeProps","disableTypography","variantProp","other","_objectWithoutPropertiesLoose","muiFormControl","useFormControl","hiddenLabel","slots","composeClasses","useUtilityClasses","_jsx","FormControlContext","as","clsx","_jsxs","getTableContainerUtilityClass","TableContainerRoot","naiveFallback","self","Error","module","exports","this","globalThis","Object","defineProperty","prototype","get","configurable","__global__","_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/6895.461b05f0.chunk.js b/portal-ui/build/static/js/6895.461b05f0.chunk.js new file mode 100644 index 000000000..a976e0966 --- /dev/null +++ b/portal-ui/build/static/js/6895.461b05f0.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6895],{84669:function(e,t,n){n(72791);var a=n(91523),i=n(11135),r=n(25787),o=n(13048),l=n(64554),s=n(80184);t.Z=(0,r.Z)((function(e){return(0,i.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var t=e.to,n=e.label,i=e.classes,r=e.className,c=e.executeOnClick;return(0,s.jsx)(l.Z,{sx:{display:"flex",alignItems:"center"},children:(0,s.jsx)(a.rU,{to:t,className:"".concat(i.link," ").concat(r||""),onClick:function(){c&&c()},children:(0,s.jsxs)("div",{className:i.iconBox,children:[(0,s.jsx)("div",{className:i.icon,children:(0,s.jsx)(o.xN,{})}),(0,s.jsx)("div",{className:i.label,children:n})]})})})}))},66895:function(e,t,n){n.r(t);var a=n(70885),i=n(1413),r=n(72791),o=n(79271),l=n(91523),s=n(60364),c=n(11135),d=n(25787),u=n(61889),m=n(81207),p=n(23814),f=n(42649),h=n(42209),x=n(32291),b=n(14917),g=n(20068),v=n(13400),Z=n(64554),j=n(28789),y=n(56087),C=n(74794),k=n(14662),T=n(84669),E=n(38442),N=n(75578),I=n(40603),w=n(13048),S=n(80184),B=r.lazy((function(){return Promise.resolve().then(n.bind(n,37746))})),F=r.lazy((function(){return Promise.resolve().then(n.bind(n,56673))})),P=(0,N.Z)(r.lazy((function(){return Promise.all([n.e(3772),n.e(2442),n.e(9968)]).then(n.bind(n,39968))}))),_=(0,N.Z)(r.lazy((function(){return Promise.all([n.e(5171),n.e(2983),n.e(2180)]).then(n.bind(n,47494))}))),A=(0,N.Z)(r.lazy((function(){return Promise.all([n.e(5171),n.e(2983),n.e(8253)]).then(n.bind(n,84738))}))),R=(0,N.Z)(r.lazy((function(){return n.e(3328).then(n.bind(n,63328))}))),M=(0,N.Z)(r.lazy((function(){return Promise.all([n.e(5171),n.e(2983),n.e(1440)]).then(n.bind(n,25702))}))),O=(0,N.Z)(r.lazy((function(){return Promise.all([n.e(3772),n.e(5171),n.e(8354),n.e(2983),n.e(9002)]).then(n.bind(n,32512))}))),L=(0,N.Z)(r.lazy((function(){return Promise.all([n.e(3772),n.e(5171),n.e(2442),n.e(2426),n.e(1520),n.e(6431),n.e(8354),n.e(2983),n.e(2114)]).then(n.bind(n,51))}))),z=(0,s.$j)((function(e){return{session:e.console.session,selectedTab:e.buckets.bucketDetails.selectedTab,distributedSetup:e.system.distributedSetup,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:f.Ih,setBucketDetailsLoad:h.d5,setBucketInfo:h.f4});t.default=(0,d.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({pageContainer:{height:"100%"},screenTitle:{border:0,paddingTop:0}},p.Bw),{},{breadcrumLink:{textDecoration:"none",color:"black"}},p.qg),{},{capitalize:{textTransform:"capitalize"},deleteBtn:{color:"#f44336",border:"1px solid rgba(244, 67, 54, 0.5)",maxWidth:140}},p.bp),p.Si),(0,p.Bz)(e.spacing(4))))}))(z((function(e){var t=e.classes,n=e.match,i=e.history,s=e.setErrorSnackMessage,c=e.distributedSetup,d=e.setBucketDetailsLoad,p=e.loadingBucket,f=e.setBucketInfo,h=e.bucketInfo,N=(0,r.useState)(!1),z=(0,a.Z)(N,2),U=z[0],D=z[1],W=(0,r.useState)(!1),G=(0,a.Z)(W,2),H=G[0],K=G[1],Y=n.params.bucketName,$=null===n||void 0===n?void 0:n.params[0];$=$||"summary";var q=(0,r.useState)($),Q=(0,a.Z)(q,2),V=Q[0],X=Q[1];(0,r.useEffect)((function(){X($)}),[$]),(0,r.useEffect)((function(){U||(d(!0),D(!0))}),[U,d,D]),(0,r.useEffect)((function(){p&&m.Z.invoke("GET","/api/v1/buckets/".concat(Y)).then((function(e){d(!1),f(e)})).catch((function(e){d(!1),s(e)}))}),[Y,p,d,f,s]);var J="/buckets/".concat(Y),ee={events:"/admin/events",replication:"/admin/replication",lifecycle:"/admin/lifecycle",access:"/admin/access",prefix:"/admin/prefix"},te=function(e){var t=ee[e];return t=t?"".concat(J).concat(t):"".concat(J).concat("/admin/summary")};return(0,S.jsxs)(r.Fragment,{children:[H&&(0,S.jsx)(P,{deleteOpen:H,selectedBucket:Y,closeDeleteModalAndRefresh:function(e){!function(e){K(!1),e&&i.push("/buckets")}(e)}}),(0,S.jsx)(x.Z,{label:(0,S.jsx)(T.Z,{to:"/buckets",label:"Buckets"}),actions:(0,S.jsx)(r.Fragment,{children:(0,S.jsx)(g.Z,{title:"Browse Bucket",children:(0,S.jsx)(v.Z,{color:"primary","aria-label":"Browse Bucket",component:"span",onClick:function(){i.push("/buckets/".concat(Y,"/browse"))},size:"large",children:(0,S.jsx)(F,{})})})})}),(0,S.jsxs)(C.Z,{className:t.pageContainer,children:[(0,S.jsx)(u.ZP,{item:!0,xs:12,children:(0,S.jsx)(b.Z,{classes:{screenTitle:t.screenTitle},icon:(0,S.jsx)(r.Fragment,{children:(0,S.jsx)(B,{width:40})}),title:Y,subTitle:(0,S.jsxs)(E.s,{scopes:[y.Ft.S3_GET_BUCKET_POLICY],resource:Y,children:[(0,S.jsx)("span",{style:{fontSize:15},children:"Access: "}),(0,S.jsx)("span",{className:t.capitalize,style:{fontWeight:600,fontSize:15},children:null===h||void 0===h?void 0:h.access.toLowerCase()})]}),actions:(0,S.jsxs)(r.Fragment,{children:[(0,S.jsx)(E.s,{scopes:[y.Ft.S3_DELETE_BUCKET,y.Ft.S3_FORCE_DELETE_BUCKET],resource:Y,errorProps:{disabled:!0},children:(0,S.jsx)(I.Z,{tooltip:"Delete Bucket",onClick:function(){K(!0)},text:"Delete Bucket",icon:(0,S.jsx)(w.XH,{}),color:"secondary",variant:"outlined"})}),(0,S.jsx)(I.Z,{onClick:function(){d(!0)},text:"Refresh",icon:(0,S.jsx)(j.default,{}),color:"primary"})]})})}),(0,S.jsx)(Z.Z,{sx:{border:"1px solid #eaeaea"},children:(0,S.jsxs)(k.Z,{selectedTab:V,isRouteTabs:!0,routes:(0,S.jsx)("div",{className:t.contentSpacer,children:(0,S.jsx)(o.F0,{history:i,children:(0,S.jsxs)(o.rs,{children:[(0,S.jsx)(o.AW,{exact:!0,path:"/buckets/:bucketName/admin/summary",component:R}),(0,S.jsx)(o.AW,{exact:!0,path:"/buckets/:bucketName/admin/events",component:M}),c&&(0,S.jsx)(o.AW,{exact:!0,path:"/buckets/:bucketName/admin/replication",component:O}),c&&(0,S.jsx)(o.AW,{exact:!0,path:"/buckets/:bucketName/admin/lifecycle",component:L}),(0,S.jsx)(o.AW,{exact:!0,path:"/buckets/:bucketName/admin/access",component:A}),(0,S.jsx)(o.AW,{exact:!0,path:"/buckets/:bucketName/admin/prefix",component:_}),(0,S.jsx)(o.AW,{path:"/buckets/:bucketName",component:function(){return(0,S.jsx)(o.l_,{to:"/buckets/".concat(Y,"/admin/summary")})}})]})})}),children:[{tabConfig:{label:"Summary",value:"summary",component:l.rU,to:te("summary")}},{tabConfig:{label:"Events",value:"events",component:l.rU,disabled:!(0,E.F)(Y,[y.Ft.S3_GET_BUCKET_NOTIFICATIONS,y.Ft.S3_PUT_BUCKET_NOTIFICATIONS]),to:te("events")}},{tabConfig:{label:"Replication",value:"replication",component:l.rU,disabled:!c||!(0,E.F)(Y,[y.Ft.S3_GET_REPLICATION_CONFIGURATION,y.Ft.S3_PUT_REPLICATION_CONFIGURATION]),to:te("replication")}},{tabConfig:{label:"Lifecycle",value:"lifecycle",component:l.rU,disabled:!c||!(0,E.F)(Y,[y.Ft.S3_GET_LIFECYCLE_CONFIGURATION,y.Ft.S3_PUT_LIFECYCLE_CONFIGURATION]),to:te("lifecycle")}},{tabConfig:{label:"Access Audit",value:"access",component:l.rU,disabled:!(0,E.F)(Y,[y.Ft.ADMIN_GET_POLICY,y.Ft.ADMIN_LIST_USER_POLICIES,y.Ft.ADMIN_LIST_USERS]),to:te("access")}},{tabConfig:{label:"Access Rules",value:"prefix",component:l.rU,disabled:!(0,E.F)(Y,[y.Ft.S3_GET_BUCKET_POLICY]),to:te("prefix")}}]})})]})]})})))},40603:function(e,t,n){var a=n(1413),i=n(45987),r=(n(72791),n(85531)),o=n(72455),l=n(80184),s=["onClick","text","disabled","tooltip","icon","className"],c=(0,o.Z)((function(e){return{root:{padding:"7px",color:function(t){return function(t){var n=t.variant,a=t.color,i=e.palette.primary.main;return"primary"===a&&"contained"===n?i=e.palette.primary.contrastText:"primary"===a&&"outlined"===n?i=e.palette.primary.main:"secondary"===a&&(i=e.palette.secondary.main),i}(t)},borderColor:function(t){return"secondary"===t.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));t.Z=function(e){var t=c(e),n=e.onClick,o=e.text,d=void 0===o?"":o,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,f=e.icon,h=void 0===f?null:f,x=e.className,b=void 0===x?"":x,g=(0,i.Z)(e,s);return(0,l.jsxs)(r.Z,(0,a.Z)((0,a.Z)({className:b,classes:t,tooltip:p||d,variant:"outlined",onClick:n,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},g),{},{children:[(0,l.jsx)("span",{children:d})," ",h]}))}},85531:function(e,t,n){var a=n(1413),i=n(4942),r=n(45987),o=(n(72791),n(11135)),l=n(25787),s=n(13400),c=n(20068),d=n(28182),u=n(80184),m=["classes","children","variant","tooltip"];t.Z=(0,l.Z)((function(e){return(0,o.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var t=e.classes,n=e.children,o=e.variant,l=void 0===o?"outlined":o,p=e.tooltip,f=(0,r.Z)(e,m),h=(0,u.jsx)(s.Z,(0,a.Z)((0,a.Z)({},f),{},{className:(0,d.Z)(t.root,(0,i.Z)({},t.contained,"contained"===l)),children:n}));return p&&""!==p?(0,u.jsx)(c.Z,{title:p,children:(0,u.jsx)("span",{children:h})}):h}))},75578:function(e,t,n){var a=n(1413),i=n(72791),r=n(80184);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function n(n){return(0,r.jsx)(i.Suspense,{fallback:t,children:(0,r.jsx)(e,(0,a.Z)({},n))})}return n}},32291:function(e,t,n){var a=n(72791),i=n(60364),r=n(61889),o=n(11135),l=n(25787),s=n(20890),c=n(13400),d=n(95466),u=n(84683),m=n(3925),p=n(13048),f=n(80184),h={toggleList:m.kQ},x=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),h);t.Z=x((0,l.Z)((function(e){return(0,o.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,n=e.label,i=e.actions,o=e.sidebarOpen,l=e.operatorMode,m=e.managerObjects,h=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,f.jsx)(a.Fragment,{}):(0,f.jsxs)(r.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,f.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!o&&(0,f.jsx)("div",{className:t.logo,children:l?(0,f.jsx)(d.Z,{}):(0,f.jsx)(u.Z,{})}),(0,f.jsx)(s.Z,{variant:"h4",className:t.labelStyle,children:n})]}),x&&(0,f.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,f.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:t.rightMenu,children:[i&&i,m&&m.length>0&&(0,f.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,f.jsx)(p.gx,{})})]})]})})))},14917:function(e,t,n){n(72791);var a=n(61889),i=n(11135),r=n(25787),o=n(80184);t.Z=(0,r.Z)((function(e){return(0,i.Z)({headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},screenTitle:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem",borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column"}},rightItems:{display:"flex",alignItems:"center"}})}))((function(e){var t=e.classes,n=e.icon,i=e.title,r=e.subTitle,l=e.actions,s=e.className;return(0,o.jsx)(a.ZP,{container:!0,children:(0,o.jsxs)(a.ZP,{item:!0,xs:12,className:"".concat(t.screenTitle," ").concat(s||""),children:[(0,o.jsxs)("div",{className:t.leftItems,children:[n?(0,o.jsx)("div",{className:t.headerBarIcon,children:n}):null,(0,o.jsxs)("div",{className:t.titleColumn,children:[(0,o.jsx)("h1",{style:{margin:0},children:i}),(0,o.jsx)("span",{className:t.headerBarSubheader,children:r})]})]}),(0,o.jsx)("div",{className:t.rightItems,children:l})]})})}))},14662:function(e,t,n){n.d(t,{Z:function(){return P}});var a=n(1413),i=n(70885),r=n(72791),o=n(64554),l=n(43896),s=n(80184),c=r.createContext(null);function d(e){var t=e.children,n=e.value,a=function(){var e=r.useState(null),t=(0,i.Z)(e,2),n=t[0],a=t[1];return r.useEffect((function(){a("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),n}(),o=r.useMemo((function(){return{idPrefix:a,value:n}}),[a,n]);return(0,s.jsx)(c.Provider,{value:o,children:t})}function u(){return r.useContext(c)}function m(e,t){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(t)}function p(e,t){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(t)}var f=n(87462),h=n(63366),x=n(18073),b=["children"],g=r.forwardRef((function(e,t){var n=e.children,a=(0,h.Z)(e,b),i=u();if(null===i)throw new TypeError("No TabContext provided");var o=r.Children.map(n,(function(e){return r.isValidElement(e)?r.cloneElement(e,{"aria-controls":m(i,e.props.value),id:p(i,e.props.value)}):null}));return(0,s.jsx)(x.Z,(0,f.Z)({},a,{ref:t,value:i.value,children:o}))})),v=n(28182),Z=n(47630),j=n(93736),y=n(90767),C=n(95159);function k(e){return(0,C.Z)("MuiTabPanel",e)}(0,n(30208).Z)("MuiTabPanel",["root"]);var T=["children","className","value"],E=(0,Z.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){return{padding:e.theme.spacing(3)}})),N=r.forwardRef((function(e,t){var n=(0,j.Z)({props:e,name:"MuiTabPanel"}),a=n.children,i=n.className,r=n.value,o=(0,h.Z)(n,T),l=(0,f.Z)({},n),c=function(e){var t=e.classes;return(0,y.Z)({root:["root"]},k,t)}(l),d=u();if(null===d)throw new TypeError("No TabContext provided");var x=m(d,r),b=p(d,r);return(0,s.jsx)(E,(0,f.Z)({"aria-labelledby":b,className:(0,v.Z)(c.root,i),hidden:r!==d.value,id:x,ref:t,role:"tabpanel",ownerState:l},o,{children:r===d.value&&a}))})),I=n(25787),w=n(13967),S=n(11135),B=n(95193),F={minHeight:60},P=(0,I.Z)((function(e){return(0,S.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var t=e.children,n=e.classes,c=e.selectedTab,u=void 0===c?"0":c,m=e.routes,p=e.isRouteTabs,f=r.useState(u),h=(0,i.Z)(f,2),x=h[0],b=h[1],v=(0,w.Z)(),Z=(0,B.Z)(v.breakpoints.down("md")),j=[],y=[];return t?(t.forEach((function(e){j.push(e.tabConfig),y.push(e.content)})),(0,s.jsx)(d,{value:"".concat(x),children:(0,s.jsxs)(o.Z,{className:n.tabsContainer,children:[(0,s.jsx)(o.Z,{className:n.tabsHeaderContainer,children:(0,s.jsx)(g,{onChange:function(e,t){b(t)},orientation:Z?"horizontal":"vertical",variant:Z?"scrollable":"standard",scrollButtons:"auto",className:n.tabList,children:j.map((function(e,t){return e?(0,s.jsx)(l.Z,(0,a.Z)((0,a.Z)({className:n.tabHeader,value:"".concat(t),style:F},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(t)):null}))})}),(0,s.jsxs)(o.Z,{className:n.tabContentContainer,children:[p?null:y.map((function(e,t){return(0,s.jsx)(N,{classes:(0,a.Z)({},n.tabPanel),value:"".concat(t),children:e||null},"v-tab-p-".concat(t))})),p?(0,s.jsx)("div",{className:n.tabPanel,children:m}):null]})]})})):null}))},45987:function(e,t,n){n.d(t,{Z:function(){return i}});var a=n(63366);function i(e,t){if(null==e)return{};var n,i,r=(0,a.Z)(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}}}]); +//# sourceMappingURL=6895.461b05f0.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6895.461b05f0.chunk.js.map b/portal-ui/build/static/js/6895.461b05f0.chunk.js.map new file mode 100644 index 000000000..fbe2d84f4 --- /dev/null +++ b/portal-ui/build/static/js/6895.461b05f0.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/6895.461b05f0.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Buckets/BucketDetails/BucketDetails.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/ScreenTitle/ScreenTitle.tsx","../node_modules/@mui/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\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 { Link, Redirect, Route, Router, Switch } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport api from \"../../../../common/api\";\nimport { BucketInfo } from \"../types\";\nimport {\n buttonsStyles,\n containerForHeader,\n hrClass,\n pageContentStyles,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { setBucketDetailsLoad, setBucketInfo } from \"../actions\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\n\nimport ScreenTitle from \"../../Common/ScreenTitle/ScreenTitle\";\nimport { Box, IconButton, Tooltip } from \"@mui/material\";\n\nimport RefreshIcon from \"../../../../icons/RefreshIcon\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport VerticalTabs from \"../../Common/VerticalTabs/VerticalTabs\";\nimport BackLink from \"../../../../common/BackLink\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../../common/SecureComponent\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport RBIconButton from \"./SummaryItems/RBIconButton\";\nimport { TrashIcon } from \"../../../../icons\";\n\nconst BucketsIcon = React.lazy(() => import(\"../../../../icons/BucketsIcon\"));\nconst FolderIcon = React.lazy(() => import(\"../../../../icons/FolderIcon\"));\n\nconst DeleteBucket = withSuspense(\n React.lazy(() => import(\"../ListBuckets/DeleteBucket\"))\n);\nconst AccessRulePanel = withSuspense(\n React.lazy(() => import(\"./AccessRulePanel\"))\n);\nconst AccessDetailsPanel = withSuspense(\n React.lazy(() => import(\"./AccessDetailsPanel\"))\n);\nconst BucketSummaryPanel = withSuspense(\n React.lazy(() => import(\"./BucketSummaryPanel\"))\n);\nconst BucketEventsPanel = withSuspense(\n React.lazy(() => import(\"./BucketEventsPanel\"))\n);\nconst BucketReplicationPanel = withSuspense(\n React.lazy(() => import(\"./BucketReplicationPanel\"))\n);\nconst BucketLifecyclePanel = withSuspense(\n React.lazy(() => import(\"./BucketLifecyclePanel\"))\n);\n\nconst styles = (theme: Theme) =>\n createStyles({\n pageContainer: {\n height: \"100%\",\n },\n screenTitle: {\n border: 0,\n paddingTop: 0,\n },\n ...pageContentStyles,\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n ...searchField,\n capitalize: {\n textTransform: \"capitalize\",\n },\n deleteBtn: {\n color: \"#f44336\",\n border: \"1px solid rgba(244, 67, 54, 0.5)\",\n maxWidth: 140,\n },\n ...hrClass,\n ...buttonsStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IBucketDetailsProps {\n classes: any;\n match: any;\n history: any;\n distributedSetup: boolean;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setBucketDetailsLoad: typeof setBucketDetailsLoad;\n loadingBucket: boolean;\n setBucketInfo: typeof setBucketInfo;\n bucketInfo: BucketInfo | null;\n}\n\nconst BucketDetails = ({\n classes,\n match,\n history,\n setErrorSnackMessage,\n distributedSetup,\n setBucketDetailsLoad,\n loadingBucket,\n setBucketInfo,\n bucketInfo,\n}: IBucketDetailsProps) => {\n const [iniLoad, setIniLoad] = useState(false);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const bucketName = match.params[\"bucketName\"];\n\n let selTab = match?.params[\"0\"];\n selTab = selTab ? selTab : \"summary\";\n\n const [activeTab, setActiveTab] = useState(selTab);\n\n useEffect(() => {\n setActiveTab(selTab);\n }, [selTab]);\n\n useEffect(() => {\n if (!iniLoad) {\n setBucketDetailsLoad(true);\n setIniLoad(true);\n }\n }, [iniLoad, setBucketDetailsLoad, setIniLoad]);\n\n useEffect(() => {\n if (loadingBucket) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}`)\n .then((res: BucketInfo) => {\n setBucketDetailsLoad(false);\n setBucketInfo(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setBucketDetailsLoad(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n bucketName,\n loadingBucket,\n setBucketDetailsLoad,\n setBucketInfo,\n setErrorSnackMessage,\n ]);\n\n let topLevelRoute = `/buckets/${bucketName}`;\n const defaultRoute = \"/admin/summary\";\n\n const manageBucketRoutes: Record = {\n events: \"/admin/events\",\n replication: \"/admin/replication\",\n lifecycle: \"/admin/lifecycle\",\n access: \"/admin/access\",\n prefix: \"/admin/prefix\",\n };\n\n const getRoutePath = (routeKey: string) => {\n let path = manageBucketRoutes[routeKey];\n if (!path) {\n path = `${topLevelRoute}${defaultRoute}`;\n } else {\n path = `${topLevelRoute}${path}`;\n }\n return path;\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n if (refresh) {\n history.push(\"/buckets\");\n }\n };\n\n const openBucketBrowser = () => {\n history.push(`/buckets/${bucketName}/browse`);\n };\n\n return (\n \n {deleteOpen && (\n {\n closeDeleteModalAndRefresh(refresh);\n }}\n />\n )}\n }\n actions={\n \n \n \n \n \n \n \n }\n />\n \n \n \n \n \n }\n title={bucketName}\n subTitle={\n \n Access: \n \n {bucketInfo?.access.toLowerCase()}\n
    \n \n }\n actions={\n \n \n {\n setDeleteOpen(true);\n }}\n text={\"Delete Bucket\"}\n icon={}\n color={\"secondary\"}\n variant={\"outlined\"}\n />\n \n {\n setBucketDetailsLoad(true);\n }}\n text={`Refresh`}\n icon={}\n color={\"primary\"}\n />\n \n }\n />\n \n \n \n \n \n \n \n {distributedSetup && (\n \n )}\n {distributedSetup && (\n \n )}\n\n \n \n (\n \n )}\n />\n \n \n \n }\n >\n {{\n tabConfig: {\n label: \"Summary\",\n value: \"summary\",\n component: Link,\n to: getRoutePath(\"summary\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Events\",\n value: \"events\",\n component: Link,\n disabled: !hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_NOTIFICATIONS,\n IAM_SCOPES.S3_PUT_BUCKET_NOTIFICATIONS,\n ]),\n to: getRoutePath(\"events\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Replication\",\n value: \"replication\",\n component: Link,\n disabled:\n !distributedSetup ||\n !hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_REPLICATION_CONFIGURATION,\n IAM_SCOPES.S3_PUT_REPLICATION_CONFIGURATION,\n ]),\n to: getRoutePath(\"replication\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Lifecycle\",\n value: \"lifecycle\",\n component: Link,\n disabled:\n !distributedSetup ||\n !hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_LIFECYCLE_CONFIGURATION,\n IAM_SCOPES.S3_PUT_LIFECYCLE_CONFIGURATION,\n ]),\n to: getRoutePath(\"lifecycle\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Access Audit\",\n value: \"access\",\n component: Link,\n disabled: !hasPermission(bucketName, [\n IAM_SCOPES.ADMIN_GET_POLICY,\n IAM_SCOPES.ADMIN_LIST_USER_POLICIES,\n IAM_SCOPES.ADMIN_LIST_USERS,\n ]),\n to: getRoutePath(\"access\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Access Rules\",\n value: \"prefix\",\n component: Link,\n disabled: !hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_POLICY,\n ]),\n to: getRoutePath(\"prefix\"),\n },\n }}\n \n \n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n session: state.console.session,\n selectedTab: state.buckets.bucketDetails.selectedTab,\n distributedSetup: state.system.distributedSetup,\n loadingBucket: state.buckets.bucketDetails.loadingBucket,\n bucketInfo: state.buckets.bucketDetails.bucketInfo,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setBucketDetailsLoad,\n setBucketInfo,\n});\n\nexport default withStyles(styles)(connector(BucketDetails));\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 BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n className = \"\",\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n

    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IScreenTitle {\n classes: any;\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n screenTitle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n },\n });\n\nconst ScreenTitle = ({\n classes,\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n return (\n \n \n
    \n {icon ?
    {icon}
    : null}\n
    \n

    {title}

    \n {subTitle}\n
    \n
    \n\n
    {actions}
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ScreenTitle);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of `` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n
    {routes}
    \n ) : null}\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","BucketsIcon","React","FolderIcon","DeleteBucket","withSuspense","AccessRulePanel","AccessDetailsPanel","BucketSummaryPanel","BucketEventsPanel","BucketReplicationPanel","BucketLifecyclePanel","connector","connect","state","session","console","selectedTab","buckets","bucketDetails","distributedSetup","system","loadingBucket","bucketInfo","setErrorSnackMessage","setBucketDetailsLoad","setBucketInfo","pageContainer","screenTitle","border","pageContentStyles","breadcrumLink","searchField","capitalize","textTransform","deleteBtn","maxWidth","hrClass","buttonsStyles","containerForHeader","spacing","match","history","useState","iniLoad","setIniLoad","deleteOpen","setDeleteOpen","bucketName","params","selTab","activeTab","setActiveTab","useEffect","api","then","res","catch","err","topLevelRoute","manageBucketRoutes","events","replication","lifecycle","access","prefix","getRoutePath","routeKey","path","Fragment","selectedBucket","closeDeleteModalAndRefresh","refresh","push","actions","title","component","size","item","xs","subTitle","scopes","IAM_SCOPES","resource","style","toLowerCase","errorProps","disabled","tooltip","text","variant","isRouteTabs","routes","contentSpacer","exact","tabConfig","value","Link","hasPermission","useStyles","makeStyles","root","padding","props","tgtColor","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","restProps","borderWidth","borderStyle","backgroundColor","opacity","contained","dark","children","rest","button","clsx","WrappedComponent","fallback","ComponentWithSuspense","Suspense","mapDispatchToProps","toggleList","sidebarOpen","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","headerContainer","minHeight","left","boxShadow","justifyContent","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","includes","container","direction","sm","md","length","id","headerBarIcon","headerBarSubheader","borderBottom","flexFlow","titleColumn","leftItems","rightItems","margin","Context","TabContext","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","child","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","name","overridesResolver","styles","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","hidden","role","tabStripStyle","tabsContainer","tabsHeaderContainer","borderRight","marginBottom","tabContentContainer","tabPanel","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","content","Box","onChange","event","newValue","orientation","scrollButtons","tabList","map","index","Tab","tabHeader","disableRipple","disableTouchRipple","focusRipple","_objectWithoutProperties","source","excluded","key","i","target","Object","getOwnPropertySymbols","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/6895.4a8032ca.chunk.js b/portal-ui/build/static/js/6895.4a8032ca.chunk.js deleted file mode 100644 index 3504847b1..000000000 --- a/portal-ui/build/static/js/6895.4a8032ca.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[6895],{84669:function(e,t,n){n(72791);var a=n(91523),i=n(11135),r=n(25787),o=n(74833),l=n(64554),s=n(80184);t.Z=(0,r.Z)((function(e){return(0,i.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var t=e.to,n=e.label,i=e.classes,r=e.className,c=e.executeOnClick;return(0,s.jsx)(l.Z,{sx:{display:"flex",alignItems:"center"},children:(0,s.jsx)(a.rU,{to:t,className:"".concat(i.link," ").concat(r||""),onClick:function(){c&&c()},children:(0,s.jsxs)("div",{className:i.iconBox,children:[(0,s.jsx)("div",{className:i.icon,children:(0,s.jsx)(o.xN,{})}),(0,s.jsx)("div",{className:i.label,children:n})]})})})}))},66895:function(e,t,n){n.r(t);var a=n(70885),i=n(1413),r=n(72791),o=n(79271),l=n(91523),s=n(60364),c=n(11135),d=n(25787),u=n(61889),m=n(81207),p=n(23814),f=n(42649),h=n(42209),x=n(32291),b=n(14917),g=n(20068),v=n(13400),Z=n(64554),j=n(28789),y=n(56087),C=n(74794),k=n(14662),T=n(84669),E=n(38442),N=n(75578),I=n(40603),w=n(74833),S=n(80184),B=r.lazy((function(){return Promise.resolve().then(n.bind(n,37746))})),F=r.lazy((function(){return Promise.resolve().then(n.bind(n,56673))})),P=(0,N.Z)(r.lazy((function(){return Promise.all([n.e(3772),n.e(2442),n.e(9968)]).then(n.bind(n,39968))}))),_=(0,N.Z)(r.lazy((function(){return Promise.all([n.e(5171),n.e(2983),n.e(2180)]).then(n.bind(n,47494))}))),A=(0,N.Z)(r.lazy((function(){return Promise.all([n.e(5171),n.e(2983),n.e(8253)]).then(n.bind(n,84738))}))),R=(0,N.Z)(r.lazy((function(){return n.e(3328).then(n.bind(n,63328))}))),M=(0,N.Z)(r.lazy((function(){return Promise.all([n.e(5171),n.e(2983),n.e(1440)]).then(n.bind(n,25702))}))),O=(0,N.Z)(r.lazy((function(){return Promise.all([n.e(3772),n.e(5171),n.e(8354),n.e(2983),n.e(9002)]).then(n.bind(n,32512))}))),L=(0,N.Z)(r.lazy((function(){return Promise.all([n.e(3772),n.e(5171),n.e(2442),n.e(2426),n.e(1520),n.e(6431),n.e(8354),n.e(2983),n.e(2114)]).then(n.bind(n,51))}))),z=(0,s.$j)((function(e){return{session:e.console.session,selectedTab:e.buckets.bucketDetails.selectedTab,distributedSetup:e.system.distributedSetup,loadingBucket:e.buckets.bucketDetails.loadingBucket,bucketInfo:e.buckets.bucketDetails.bucketInfo}}),{setErrorSnackMessage:f.Ih,setBucketDetailsLoad:h.d5,setBucketInfo:h.f4});t.default=(0,d.Z)((function(e){return(0,c.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)((0,i.Z)({pageContainer:{height:"100%"},screenTitle:{border:0,paddingTop:0}},p.Bw),{},{breadcrumLink:{textDecoration:"none",color:"black"}},p.qg),{},{capitalize:{textTransform:"capitalize"},deleteBtn:{color:"#f44336",border:"1px solid rgba(244, 67, 54, 0.5)",maxWidth:140}},p.bp),p.Si),(0,p.Bz)(e.spacing(4))))}))(z((function(e){var t=e.classes,n=e.match,i=e.history,s=e.setErrorSnackMessage,c=e.distributedSetup,d=e.setBucketDetailsLoad,p=e.loadingBucket,f=e.setBucketInfo,h=e.bucketInfo,N=(0,r.useState)(!1),z=(0,a.Z)(N,2),U=z[0],D=z[1],W=(0,r.useState)(!1),G=(0,a.Z)(W,2),H=G[0],K=G[1],Y=n.params.bucketName,$=null===n||void 0===n?void 0:n.params[0];$=$||"summary";var q=(0,r.useState)($),Q=(0,a.Z)(q,2),V=Q[0],X=Q[1];(0,r.useEffect)((function(){X($)}),[$]),(0,r.useEffect)((function(){U||(d(!0),D(!0))}),[U,d,D]),(0,r.useEffect)((function(){p&&m.Z.invoke("GET","/api/v1/buckets/".concat(Y)).then((function(e){d(!1),f(e)})).catch((function(e){d(!1),s(e)}))}),[Y,p,d,f,s]);var J="/buckets/".concat(Y),ee={events:"/admin/events",replication:"/admin/replication",lifecycle:"/admin/lifecycle",access:"/admin/access",prefix:"/admin/prefix"},te=function(e){var t=ee[e];return t=t?"".concat(J).concat(t):"".concat(J).concat("/admin/summary")};return(0,S.jsxs)(r.Fragment,{children:[H&&(0,S.jsx)(P,{deleteOpen:H,selectedBucket:Y,closeDeleteModalAndRefresh:function(e){!function(e){K(!1),e&&i.push("/buckets")}(e)}}),(0,S.jsx)(x.Z,{label:(0,S.jsx)(T.Z,{to:"/buckets",label:"Buckets"}),actions:(0,S.jsx)(r.Fragment,{children:(0,S.jsx)(g.Z,{title:"Browse Bucket",children:(0,S.jsx)(v.Z,{color:"primary","aria-label":"Browse Bucket",component:"span",onClick:function(){i.push("/buckets/".concat(Y,"/browse"))},size:"large",children:(0,S.jsx)(F,{})})})})}),(0,S.jsxs)(C.Z,{className:t.pageContainer,children:[(0,S.jsx)(u.ZP,{item:!0,xs:12,children:(0,S.jsx)(b.Z,{classes:{screenTitle:t.screenTitle},icon:(0,S.jsx)(r.Fragment,{children:(0,S.jsx)(B,{width:40})}),title:Y,subTitle:(0,S.jsxs)(E.s,{scopes:[y.Ft.S3_GET_BUCKET_POLICY],resource:Y,children:[(0,S.jsx)("span",{style:{fontSize:15},children:"Access: "}),(0,S.jsx)("span",{className:t.capitalize,style:{fontWeight:600,fontSize:15},children:null===h||void 0===h?void 0:h.access.toLowerCase()})]}),actions:(0,S.jsxs)(r.Fragment,{children:[(0,S.jsx)(E.s,{scopes:[y.Ft.S3_DELETE_BUCKET,y.Ft.S3_FORCE_DELETE_BUCKET],resource:Y,errorProps:{disabled:!0},children:(0,S.jsx)(I.Z,{tooltip:"Delete Bucket",onClick:function(){K(!0)},text:"Delete Bucket",icon:(0,S.jsx)(w.XH,{}),color:"secondary",variant:"outlined"})}),(0,S.jsx)(I.Z,{onClick:function(){d(!0)},text:"Refresh",icon:(0,S.jsx)(j.default,{}),color:"primary"})]})})}),(0,S.jsx)(Z.Z,{sx:{border:"1px solid #eaeaea"},children:(0,S.jsxs)(k.Z,{selectedTab:V,isRouteTabs:!0,routes:(0,S.jsx)("div",{className:t.contentSpacer,children:(0,S.jsx)(o.F0,{history:i,children:(0,S.jsxs)(o.rs,{children:[(0,S.jsx)(o.AW,{exact:!0,path:"/buckets/:bucketName/admin/summary",component:R}),(0,S.jsx)(o.AW,{exact:!0,path:"/buckets/:bucketName/admin/events",component:M}),c&&(0,S.jsx)(o.AW,{exact:!0,path:"/buckets/:bucketName/admin/replication",component:O}),c&&(0,S.jsx)(o.AW,{exact:!0,path:"/buckets/:bucketName/admin/lifecycle",component:L}),(0,S.jsx)(o.AW,{exact:!0,path:"/buckets/:bucketName/admin/access",component:A}),(0,S.jsx)(o.AW,{exact:!0,path:"/buckets/:bucketName/admin/prefix",component:_}),(0,S.jsx)(o.AW,{path:"/buckets/:bucketName",component:function(){return(0,S.jsx)(o.l_,{to:"/buckets/".concat(Y,"/admin/summary")})}})]})})}),children:[{tabConfig:{label:"Summary",value:"summary",component:l.rU,to:te("summary")}},{tabConfig:{label:"Events",value:"events",component:l.rU,disabled:!(0,E.F)(Y,[y.Ft.S3_GET_BUCKET_NOTIFICATIONS,y.Ft.S3_PUT_BUCKET_NOTIFICATIONS]),to:te("events")}},{tabConfig:{label:"Replication",value:"replication",component:l.rU,disabled:!c||!(0,E.F)(Y,[y.Ft.S3_GET_REPLICATION_CONFIGURATION,y.Ft.S3_PUT_REPLICATION_CONFIGURATION]),to:te("replication")}},{tabConfig:{label:"Lifecycle",value:"lifecycle",component:l.rU,disabled:!c||!(0,E.F)(Y,[y.Ft.S3_GET_LIFECYCLE_CONFIGURATION,y.Ft.S3_PUT_LIFECYCLE_CONFIGURATION]),to:te("lifecycle")}},{tabConfig:{label:"Access Audit",value:"access",component:l.rU,disabled:!(0,E.F)(Y,[y.Ft.ADMIN_GET_POLICY,y.Ft.ADMIN_LIST_USER_POLICIES,y.Ft.ADMIN_LIST_USERS]),to:te("access")}},{tabConfig:{label:"Access Rules",value:"prefix",component:l.rU,disabled:!(0,E.F)(Y,[y.Ft.S3_GET_BUCKET_POLICY]),to:te("prefix")}}]})})]})]})})))},40603:function(e,t,n){var a=n(1413),i=n(45987),r=(n(72791),n(85531)),o=n(72455),l=n(80184),s=["onClick","text","disabled","tooltip","icon"],c=(0,o.Z)((function(e){return{root:{padding:"7px",color:function(t){return function(t){var n=t.variant,a=t.color,i=e.palette.primary.main;return"primary"===a&&"contained"===n?i=e.palette.primary.contrastText:"primary"===a&&"outlined"===n?i=e.palette.primary.main:"secondary"===a&&(i=e.palette.secondary.main),i}(t)},borderColor:function(t){return"secondary"===t.color?e.palette.secondary.main:e.palette.primary.main},"& svg.min-icon":{width:12,marginLeft:function(e){return e.text?"5px":"0px"},"@media (max-width: 900px)":{width:16,marginLeft:"0px !important"}}}}}));t.Z=function(e){var t=c(e),n=e.onClick,o=e.text,d=void 0===o?"":o,u=e.disabled,m=void 0!==u&&u,p=e.tooltip,f=e.icon,h=void 0===f?null:f,x=(0,i.Z)(e,s);return(0,l.jsxs)(r.Z,(0,a.Z)((0,a.Z)({classes:t,tooltip:p||d,variant:"outlined",onClick:n,disabled:m,color:"secondary",size:"medium",sx:{border:"1px solid #f44336","& span":{fontSize:14,"@media (max-width: 900px)":{display:"none"}}}},x),{},{children:[(0,l.jsx)("span",{children:d})," ",h]}))}},85531:function(e,t,n){var a=n(1413),i=n(4942),r=n(45987),o=(n(72791),n(11135)),l=n(25787),s=n(13400),c=n(20068),d=n(28182),u=n(80184),m=["classes","children","variant","tooltip"];t.Z=(0,l.Z)((function(e){return(0,o.Z)({root:{padding:8,marginLeft:8,borderWidth:1,borderColor:"#696969",color:"#696969",borderStyle:"solid",borderRadius:3,"& .min-icon":{width:20},"& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.main,borderRadius:3,opacity:.3},"&:disabled":{color:"#EBEBEB",borderColor:"#EBEBEB"}},contained:{borderColor:e.palette.primary.main,background:e.palette.primary.main,color:"white","& .MuiTouchRipple-root span":{backgroundColor:e.palette.primary.dark,borderRadius:3,opacity:.3},"&:hover":{backgroundColor:e.palette.primary.light,color:"#FFF"}}})}))((function(e){var t=e.classes,n=e.children,o=e.variant,l=void 0===o?"outlined":o,p=e.tooltip,f=(0,r.Z)(e,m),h=(0,u.jsx)(s.Z,(0,a.Z)((0,a.Z)({},f),{},{className:(0,d.Z)(t.root,(0,i.Z)({},t.contained,"contained"===l)),children:n}));return p&&""!==p?(0,u.jsx)(c.Z,{title:p,children:(0,u.jsx)("span",{children:h})}):h}))},75578:function(e,t,n){var a=n(1413),i=n(72791),r=n(80184);t.Z=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:null;function n(n){return(0,r.jsx)(i.Suspense,{fallback:t,children:(0,r.jsx)(e,(0,a.Z)({},n))})}return n}},32291:function(e,t,n){var a=n(72791),i=n(60364),r=n(61889),o=n(11135),l=n(25787),s=n(20890),c=n(13400),d=n(95466),u=n(84683),m=n(3925),p=n(74833),f=n(80184),h={toggleList:m.kQ},x=(0,i.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),h);t.Z=x((0,l.Z)((function(e){return(0,o.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,n=e.label,i=e.actions,o=e.sidebarOpen,l=e.operatorMode,m=e.managerObjects,h=e.toggleList,x=e.middleComponent;return e.features.includes("hide-menu")?(0,f.jsx)(a.Fragment,{}):(0,f.jsxs)(r.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,f.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!o&&(0,f.jsx)("div",{className:t.logo,children:l?(0,f.jsx)(d.Z,{}):(0,f.jsx)(u.Z,{})}),(0,f.jsx)(s.Z,{variant:"h4",className:t.labelStyle,children:n})]}),x&&(0,f.jsx)(r.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:x}),(0,f.jsxs)(r.ZP,{item:!0,xs:12,sm:12,md:x?3:6,className:t.rightMenu,children:[i&&i,m&&m.length>0&&(0,f.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,f.jsx)(p.gx,{})})]})]})})))},14917:function(e,t,n){n(72791);var a=n(61889),i=n(11135),r=n(25787),o=n(80184);t.Z=(0,r.Z)((function(e){return(0,i.Z)({headerBarIcon:{marginRight:".7rem",color:e.palette.primary.main,"& .min-icon":{width:44,height:44}},headerBarSubheader:{color:"grey","@media (max-width: 900px)":{maxWidth:200}},screenTitle:{display:"flex",alignItems:"center",justifyContent:"space-between",padding:"1rem",borderBottom:"1px solid #EAEAEA","@media (max-width: 600px)":{flexFlow:"column"}},titleColumn:{height:"auto",justifyContent:"center",display:"flex",flexFlow:"column",alignItems:"flex-start","& h1":{fontSize:19}},leftItems:{display:"flex",alignItems:"center","@media (max-width: 600px)":{flexFlow:"column"}},rightItems:{display:"flex",alignItems:"center"}})}))((function(e){var t=e.classes,n=e.icon,i=e.title,r=e.subTitle,l=e.actions,s=e.className;return(0,o.jsx)(a.ZP,{container:!0,children:(0,o.jsxs)(a.ZP,{item:!0,xs:12,className:"".concat(t.screenTitle," ").concat(s||""),children:[(0,o.jsxs)("div",{className:t.leftItems,children:[n?(0,o.jsx)("div",{className:t.headerBarIcon,children:n}):null,(0,o.jsxs)("div",{className:t.titleColumn,children:[(0,o.jsx)("h1",{style:{margin:0},children:i}),(0,o.jsx)("span",{className:t.headerBarSubheader,children:r})]})]}),(0,o.jsx)("div",{className:t.rightItems,children:l})]})})}))},14662:function(e,t,n){n.d(t,{Z:function(){return P}});var a=n(1413),i=n(70885),r=n(72791),o=n(64554),l=n(43896),s=n(80184),c=r.createContext(null);function d(e){var t=e.children,n=e.value,a=function(){var e=r.useState(null),t=(0,i.Z)(e,2),n=t[0],a=t[1];return r.useEffect((function(){a("mui-p-".concat(Math.round(1e5*Math.random())))}),[]),n}(),o=r.useMemo((function(){return{idPrefix:a,value:n}}),[a,n]);return(0,s.jsx)(c.Provider,{value:o,children:t})}function u(){return r.useContext(c)}function m(e,t){return null===e.idPrefix?null:"".concat(e.idPrefix,"-P-").concat(t)}function p(e,t){return null===e.idPrefix?null:"".concat(e.idPrefix,"-T-").concat(t)}var f=n(87462),h=n(63366),x=n(18073),b=["children"],g=r.forwardRef((function(e,t){var n=e.children,a=(0,h.Z)(e,b),i=u();if(null===i)throw new TypeError("No TabContext provided");var o=r.Children.map(n,(function(e){return r.isValidElement(e)?r.cloneElement(e,{"aria-controls":m(i,e.props.value),id:p(i,e.props.value)}):null}));return(0,s.jsx)(x.Z,(0,f.Z)({},a,{ref:t,value:i.value,children:o}))})),v=n(28182),Z=n(47630),j=n(93736),y=n(90767),C=n(95159);function k(e){return(0,C.Z)("MuiTabPanel",e)}(0,n(30208).Z)("MuiTabPanel",["root"]);var T=["children","className","value"],E=(0,Z.ZP)("div",{name:"MuiTabPanel",slot:"Root",overridesResolver:function(e,t){return t.root}})((function(e){return{padding:e.theme.spacing(3)}})),N=r.forwardRef((function(e,t){var n=(0,j.Z)({props:e,name:"MuiTabPanel"}),a=n.children,i=n.className,r=n.value,o=(0,h.Z)(n,T),l=(0,f.Z)({},n),c=function(e){var t=e.classes;return(0,y.Z)({root:["root"]},k,t)}(l),d=u();if(null===d)throw new TypeError("No TabContext provided");var x=m(d,r),b=p(d,r);return(0,s.jsx)(E,(0,f.Z)({"aria-labelledby":b,className:(0,v.Z)(c.root,i),hidden:r!==d.value,id:x,ref:t,role:"tabpanel",ownerState:l},o,{children:r===d.value&&a}))})),I=n(25787),w=n(13967),S=n(11135),B=n(95193),F={minHeight:60},P=(0,I.Z)((function(e){return(0,S.Z)({tabsContainer:{display:"flex",height:"100%",width:"100%"},tabsHeaderContainer:{width:"300px",background:"#F8F8F8",borderRight:"1px solid #EAEAEA","& .MuiTabs-root":{"& .MuiTabs-indicator":{display:"none"},"& .MuiTab-root":{display:"flex",flexFlow:"row",alignItems:"center",justifyContent:"flex-start",borderBottom:"1px solid #EAEAEA","& .MuiSvgIcon-root":{marginRight:8,marginBottom:0},"&.Mui-selected":{background:"#E5E5E5",fontWeight:600}},"&. MuiTabs-scroller":{display:"none"}}},tabContentContainer:{width:"100%","& .MuiTabPanel-root":{height:"100%"}},tabPanel:{height:"100%"},"@media (max-width: 900px)":{tabsContainer:{flexFlow:"column",flexDirection:"column"},tabsHeaderContainer:{width:"100%",borderBottom:" 1px solid #EAEAEA","& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root":{borderBottom:" 0px"}}}})}))((function(e){var t=e.children,n=e.classes,c=e.selectedTab,u=void 0===c?"0":c,m=e.routes,p=e.isRouteTabs,f=r.useState(u),h=(0,i.Z)(f,2),x=h[0],b=h[1],v=(0,w.Z)(),Z=(0,B.Z)(v.breakpoints.down("md")),j=[],y=[];return t?(t.forEach((function(e){j.push(e.tabConfig),y.push(e.content)})),(0,s.jsx)(d,{value:"".concat(x),children:(0,s.jsxs)(o.Z,{className:n.tabsContainer,children:[(0,s.jsx)(o.Z,{className:n.tabsHeaderContainer,children:(0,s.jsx)(g,{onChange:function(e,t){b(t)},orientation:Z?"horizontal":"vertical",variant:Z?"scrollable":"standard",scrollButtons:"auto",className:n.tabList,children:j.map((function(e,t){return e?(0,s.jsx)(l.Z,(0,a.Z)((0,a.Z)({className:n.tabHeader,value:"".concat(t),style:F},e),{},{disableRipple:!0,disableTouchRipple:!0,focusRipple:!0}),"v-tab-".concat(t)):null}))})}),(0,s.jsxs)(o.Z,{className:n.tabContentContainer,children:[p?null:y.map((function(e,t){return(0,s.jsx)(N,{classes:(0,a.Z)({},n.tabPanel),value:"".concat(t),children:e||null},"v-tab-p-".concat(t))})),p?(0,s.jsx)("div",{className:n.tabPanel,children:m}):null]})]})})):null}))},45987:function(e,t,n){n.d(t,{Z:function(){return i}});var a=n(63366);function i(e,t){if(null==e)return{};var n,i,r=(0,a.Z)(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(i=0;i=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(r[n]=e[n])}return r}}}]); -//# sourceMappingURL=6895.4a8032ca.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/6895.4a8032ca.chunk.js.map b/portal-ui/build/static/js/6895.4a8032ca.chunk.js.map deleted file mode 100644 index 27d2d40d5..000000000 --- a/portal-ui/build/static/js/6895.4a8032ca.chunk.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"file":"static/js/6895.4a8032ca.chunk.js","mappings":"4LA6GA,KAAeA,EAAAA,EAAAA,IArFA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXC,KAAM,CACJC,QAAS,QACTC,eAAgB,OAChB,WAAY,CACVC,MAAOL,EAAMM,QAAQC,QAAQC,QAGjCC,QAAS,CACPN,QAAS,OACTO,cAAe,MACf,UAAW,CACTC,WAAY,qBAEdC,OAAQ,OACRC,cAAe,EACfC,WAAY,EACZC,aAAc,GACdC,YAAa,EACbC,aAAc,GAEhBC,KAAM,CACJC,WAAY,EACZC,YAAa,OACbC,WAAY,SACZC,MAAO,OACP,cAAe,CACbjB,MAAOL,EAAMM,QAAQC,QAAQC,MAC7Bc,MAAO,OACPV,OAAQ,SAGZW,MAAO,CACLJ,WAAY,EACZE,WAAY,SACZP,WAAY,EACZU,SAAU,OACVC,WAAY,IACZpB,MAAOL,EAAMM,QAAQC,QAAQC,WA8CnC,EAlCiB,SAAC,GAMA,IALhBkB,EAKe,EALfA,GACAH,EAIe,EAJfA,MACAI,EAGe,EAHfA,QACAC,EAEe,EAFfA,UACAC,EACe,EADfA,eAEA,OACE,SAAC,IAAD,CACEC,GAAI,CACF3B,QAAS,OACTkB,WAAY,UAHhB,UAME,SAAC,KAAD,CACEK,GAAIA,EACJE,UAAS,UAAKD,EAAQzB,KAAb,YAAqB0B,GAAwB,IACtDG,QAAS,WACHF,GACFA,KALN,UASE,iBAAKD,UAAWD,EAAQlB,QAAxB,WACE,gBAAKmB,UAAWD,EAAQT,KAAxB,UACE,SAAC,KAAD,OAEF,gBAAKU,UAAWD,EAAQJ,MAAxB,SAAgCA,e,oVC/CpCS,EAAcC,EAAAA,MAAW,kBAAM,2CAC/BC,EAAaD,EAAAA,MAAW,kBAAM,2CAE9BE,GAAeC,EAAAA,EAAAA,GACnBH,EAAAA,MAAW,kBAAM,uEAEbI,GAAkBD,EAAAA,EAAAA,GACtBH,EAAAA,MAAW,kBAAM,uEAEbK,GAAqBF,EAAAA,EAAAA,GACzBH,EAAAA,MAAW,kBAAM,uEAEbM,GAAqBH,EAAAA,EAAAA,GACzBH,EAAAA,MAAW,kBAAM,oCAEbO,GAAoBJ,EAAAA,EAAAA,GACxBH,EAAAA,MAAW,kBAAM,uEAEbQ,GAAyBL,EAAAA,EAAAA,GAC7BH,EAAAA,MAAW,kBAAM,2FAEbS,GAAuBN,EAAAA,EAAAA,GAC3BH,EAAAA,MAAW,kBAAM,gIAoWbU,GAAYC,EAAAA,EAAAA,KARD,SAACC,GAAD,MAAsB,CACrCC,QAASD,EAAME,QAAQD,QACvBE,YAAaH,EAAMI,QAAQC,cAAcF,YACzCG,iBAAkBN,EAAMO,OAAOD,iBAC/BE,cAAeR,EAAMI,QAAQC,cAAcG,cAC3CC,WAAYT,EAAMI,QAAQC,cAAcI,cAGN,CAClCC,qBAAAA,EAAAA,GACAC,qBAAAA,EAAAA,GACAC,cAAAA,EAAAA,KAGF,WAAe1D,EAAAA,EAAAA,IAvWA,SAACC,GAAD,OACbC,EAAAA,EAAAA,IAAa,wCACXyD,cAAe,CACb9C,OAAQ,QAEV+C,YAAa,CACXC,OAAQ,EACR9C,WAAY,IAEX+C,EAAAA,IARO,IASVC,cAAe,CACb1D,eAAgB,OAChBC,MAAO,UAEN0D,EAAAA,IAbO,IAcVC,WAAY,CACVC,cAAe,cAEjBC,UAAW,CACT7D,MAAO,UACPuD,OAAQ,mCACRO,SAAU,MAETC,EAAAA,IACAC,EAAAA,KACAC,EAAAA,EAAAA,IAAmBtE,EAAMuE,QAAQ,QA8UxC,CAAkC5B,GA/TZ,SAAC,GAUK,IAT1BhB,EASyB,EATzBA,QACA6C,EAQyB,EARzBA,MACAC,EAOyB,EAPzBA,QACAlB,EAMyB,EANzBA,qBACAJ,EAKyB,EALzBA,iBACAK,EAIyB,EAJzBA,qBACAH,EAGyB,EAHzBA,cACAI,EAEyB,EAFzBA,cACAH,EACyB,EADzBA,WAEA,GAA8BoB,EAAAA,EAAAA,WAAkB,GAAhD,eAAOC,EAAP,KAAgBC,EAAhB,KACA,GAAoCF,EAAAA,EAAAA,WAAkB,GAAtD,eAAOG,EAAP,KAAmBC,EAAnB,KACMC,EAAaP,EAAMQ,OAAN,WAEfC,EAAM,OAAGT,QAAH,IAAGA,OAAH,EAAGA,EAAOQ,OAAO,GAC3BC,EAASA,GAAkB,UAE3B,OAAkCP,EAAAA,EAAAA,UAASO,GAA3C,eAAOC,EAAP,KAAkBC,EAAlB,MAEAC,EAAAA,EAAAA,YAAU,WACRD,EAAaF,KACZ,CAACA,KAEJG,EAAAA,EAAAA,YAAU,WACHT,IACHnB,GAAqB,GACrBoB,GAAW,MAEZ,CAACD,EAASnB,EAAsBoB,KAEnCQ,EAAAA,EAAAA,YAAU,WACJ/B,GACFgC,EAAAA,EAAAA,OACU,MADV,0BACoCN,IACjCO,MAAK,SAACC,GACL/B,GAAqB,GACrBC,EAAc8B,MAEfC,OAAM,SAACC,GACNjC,GAAqB,GACrBD,EAAqBkC,QAG1B,CACDV,EACA1B,EACAG,EACAC,EACAF,IAGF,IAAImC,EAAa,mBAAeX,GAG1BY,GAA0C,CAC9CC,OAAQ,gBACRC,YAAa,qBACbC,UAAW,mBACXC,OAAQ,gBACRC,OAAQ,iBAGJC,GAAe,SAACC,GACpB,IAAIC,EAAOR,GAAmBO,GAM9B,OAFEC,EAHGA,EAGC,UAAMT,GAAN,OAAsBS,GAFtB,UAAMT,GAAN,OAba,mBA+BrB,OACE,UAAC,EAAAU,SAAD,WACGvB,IACC,SAAC1C,EAAD,CACE0C,WAAYA,EACZwB,eAAgBtB,EAChBuB,2BAA4B,SAACC,IAjBF,SAACA,GAClCzB,GAAc,GACVyB,GACF9B,EAAQ+B,KAAK,YAePF,CAA2BC,OAIjC,SAAC,IAAD,CACEhF,OAAO,SAAC,IAAD,CAAUG,GAAI,WAAYH,MAAO,YACxCkF,SACE,SAAC,EAAAL,SAAD,WACE,SAAC,IAAD,CAASM,MAAO,gBAAhB,UACE,SAAC,IAAD,CACErG,MAAM,UACN,aAAW,gBACXsG,UAAU,OACV5E,QAxBY,WACxB0C,EAAQ+B,KAAR,mBAAyBzB,EAAzB,aAwBY6B,KAAK,QALP,UAOE,SAAC1E,EAAD,aAMV,UAAC,IAAD,CAAYN,UAAWD,EAAQ+B,cAA/B,WACE,SAAC,KAAD,CAAMmD,MAAI,EAACC,GAAI,GAAf,UACE,SAAC,IAAD,CACEnF,QAAS,CACPgC,YAAahC,EAAQgC,aAEvBzC,MACE,SAAC,EAAAkF,SAAD,WACE,SAACpE,EAAD,CAAaV,MAAO,OAGxBoF,MAAO3B,EACPgC,UACE,UAAC,IAAD,CACEC,OAAQ,CAACC,EAAAA,GAAAA,sBACTC,SAAUnC,EAFZ,WAIE,iBAAMoC,MAAO,CAAE3F,SAAU,IAAzB,uBACA,iBACEI,UAAWD,EAAQqC,WACnBmD,MAAO,CAAE1F,WAAY,IAAKD,SAAU,IAFtC,gBAIG8B,QAJH,IAIGA,OAJH,EAIGA,EAAYyC,OAAOqB,mBAI1BX,SACE,UAAC,EAAAL,SAAD,YACE,SAAC,IAAD,CACEY,OAAQ,CACNC,EAAAA,GAAAA,iBACAA,EAAAA,GAAAA,wBAEFC,SAAUnC,EACVsC,WAAY,CAAEC,UAAU,GAN1B,UAQE,SAAC,IAAD,CACEC,QAAS,gBACTxF,QAAS,WACP+C,GAAc,IAEhB0C,KAAM,gBACNtG,MAAM,SAAC,KAAD,IACNb,MAAO,YACPoH,QAAS,gBAGb,SAAC,IAAD,CACE1F,QAAS,WACPyB,GAAqB,IAEvBgE,KAAI,UACJtG,MAAM,SAAC,UAAD,IACNb,MAAO,oBAMjB,SAAC,IAAD,CAAKyB,GAAI,CAAE8B,OAAQ,qBAAnB,UACE,UAAC,IAAD,CACEZ,YAAakC,EACbwC,aAAW,EACXC,QACE,gBAAK/F,UAAWD,EAAQiG,cAAxB,UACE,SAAC,KAAD,CAAQnD,QAASA,EAAjB,UACE,UAAC,KAAD,YACE,SAAC,KAAD,CACEoD,OAAK,EACL1B,KAAK,qCACLQ,UAAWpE,KAEb,SAAC,KAAD,CACEsF,OAAK,EACL1B,KAAK,oCACLQ,UAAWnE,IAEZW,IACC,SAAC,KAAD,CACE0E,OAAK,EACL1B,KAAK,yCACLQ,UAAWlE,IAGdU,IACC,SAAC,KAAD,CACE0E,OAAK,EACL1B,KAAK,uCACLQ,UAAWjE,KAIf,SAAC,KAAD,CACEmF,OAAK,EACL1B,KAAK,oCACLQ,UAAWrE,KAEb,SAAC,KAAD,CACEuF,OAAK,EACL1B,KAAK,oCACLQ,UAAWtE,KAEb,SAAC,KAAD,CACE8D,KAAK,uBACLQ,UAAW,kBACT,SAAC,KAAD,CAAUjF,GAAE,mBAAcqD,EAAd,8BA7C1B,UAqDG,CACC+C,UAAW,CACTvG,MAAO,UACPwG,MAAO,UACPpB,UAAWqB,EAAAA,GACXtG,GAAIuE,GAAa,aAGpB,CACC6B,UAAW,CACTvG,MAAO,SACPwG,MAAO,SACPpB,UAAWqB,EAAAA,GACXV,WAAWW,EAAAA,EAAAA,GAAclD,EAAY,CACnCkC,EAAAA,GAAAA,4BACAA,EAAAA,GAAAA,8BAEFvF,GAAIuE,GAAa,YAGpB,CACC6B,UAAW,CACTvG,MAAO,cACPwG,MAAO,cACPpB,UAAWqB,EAAAA,GACXV,UACGnE,KACA8E,EAAAA,EAAAA,GAAclD,EAAY,CACzBkC,EAAAA,GAAAA,iCACAA,EAAAA,GAAAA,mCAEJvF,GAAIuE,GAAa,iBAGpB,CACC6B,UAAW,CACTvG,MAAO,YACPwG,MAAO,YACPpB,UAAWqB,EAAAA,GACXV,UACGnE,KACA8E,EAAAA,EAAAA,GAAclD,EAAY,CACzBkC,EAAAA,GAAAA,+BACAA,EAAAA,GAAAA,iCAEJvF,GAAIuE,GAAa,eAGpB,CACC6B,UAAW,CACTvG,MAAO,eACPwG,MAAO,SACPpB,UAAWqB,EAAAA,GACXV,WAAWW,EAAAA,EAAAA,GAAclD,EAAY,CACnCkC,EAAAA,GAAAA,iBACAA,EAAAA,GAAAA,yBACAA,EAAAA,GAAAA,mBAEFvF,GAAIuE,GAAa,YAGpB,CACC6B,UAAW,CACTvG,MAAO,eACPwG,MAAO,SACPpB,UAAWqB,EAAAA,GACXV,WAAWW,EAAAA,EAAAA,GAAclD,EAAY,CACnCkC,EAAAA,GAAAA,uBAEFvF,GAAIuE,GAAa,4B,4IC5X3BiC,GAAYC,EAAAA,EAAAA,IAAW,SAACnI,GAiB5B,MAAO,CACLoI,KAAM,CACJC,QAAS,MACThI,MAAO,SAACiI,GAAD,OAnBY,SAACA,GACtB,IAAQb,EAAmBa,EAAnBb,QAASpH,EAAUiI,EAAVjI,MAEbkI,EAAWvI,EAAMM,QAAQC,QAAQiI,KAUrC,MARc,YAAVnI,GAAmC,cAAZoH,EACzBc,EAAWvI,EAAMM,QAAQC,QAAQkI,aACd,YAAVpI,GAAmC,aAAZoH,EAChCc,EAAWvI,EAAMM,QAAQC,QAAQiI,KACd,cAAVnI,IACTkI,EAAWvI,EAAMM,QAAQoI,UAAUF,MAG9BD,EAM0BI,CAAeL,IAC9CM,YAAa,SAACN,GAAD,MACK,cAAhBA,EAAMjI,MACFL,EAAMM,QAAQoI,UAAUF,KACxBxI,EAAMM,QAAQC,QAAQiI,MAC5B,iBAAkB,CAChBlH,MAAO,GACPuH,WAAY,SAACP,GAAD,OAAyBA,EAAMd,KAAO,MAAQ,OAC1D,4BAA6B,CAC3BlG,MAAO,GACPuH,WAAY,wBA2CtB,IApCqB,SAACP,GACpB,IAAM3G,EAAUuG,EAAUI,GAGxBvG,EAMEuG,EANFvG,QADF,EAOIuG,EALFd,KAAAA,OAFF,MAES,GAFT,IAOIc,EAJFhB,SAAAA,OAHF,SAIEC,EAGEe,EAHFf,QAJF,EAOIe,EAFFpH,KAAAA,OALF,MAKS,KALT,EAMK4H,GANL,OAOIR,EAPJ,GASA,OACE,UAAC,KAAD,gBACE3G,QAASA,EACT4F,QAASA,GAAWC,EACpBC,QAAQ,WACR1F,QAASA,EACTuF,SAAUA,EACVjH,MAAM,YACNuG,KAAK,SACL9E,GAAI,CACF8B,OAAQ,oBACR,SAAU,CACRpC,SAAU,GACV,4BAA6B,CAC3BrB,QAAS,WAIX2I,GAjBN,eAmBE,0BAAOtB,IAnBT,IAmBuBtG,Q,mLCL3B,KAAenB,EAAAA,EAAAA,IA5EA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXmI,KAAM,CACJC,QAAS,EACTQ,WAAY,EACZE,YAAa,EACbH,YAAa,UACbvI,MAAO,UACP2I,YAAa,QACb/H,aAAc,EACd,cAAe,CAEbK,MAAO,IAET,8BAA+B,CAC7B2H,gBAAiBjJ,EAAMM,QAAQC,QAAQiI,KACvCvH,aAAc,EACdiI,QAAS,IAEX,aAAc,CACZ7I,MAAO,UACPuI,YAAa,YAGjBO,UAAW,CACTP,YAAa5I,EAAMM,QAAQC,QAAQiI,KACnC7H,WAAYX,EAAMM,QAAQC,QAAQiI,KAClCnI,MAAO,QACP,8BAA+B,CAC7B4I,gBAAiBjJ,EAAMM,QAAQC,QAAQ6I,KACvCnI,aAAc,EACdiI,QAAS,IAEX,UAAW,CACTD,gBAAiBjJ,EAAMM,QAAQC,QAAQC,MACvCH,MAAO,aAyCf,EA7BsB,SAAC,GAMA,IALrBsB,EAKoB,EALpBA,QACA0H,EAIoB,EAJpBA,SAIoB,IAHpB5B,QAAAA,OAGoB,MAHV,WAGU,EAFpBF,EAEoB,EAFpBA,QACG+B,GACiB,YACdC,GACJ,SAAC,KAAD,kBACMD,GADN,IAEE1H,WAAW4H,EAAAA,EAAAA,GAAK7H,EAAQyG,MAAT,UACZzG,EAAQwH,UAAwB,cAAZ1B,IAHzB,SAMG4B,KAIL,OAAI9B,GAAuB,KAAZA,GAEX,SAAC,IAAD,CAASb,MAAOa,EAAhB,UACE,0BAAOgC,MAKNA,M,0DC/DT,IAfA,SACEE,GAEC,IADDC,EACA,uDADsC,KAEtC,SAASC,EAAsBrB,GAC7B,OACE,SAAC,EAAAsB,SAAD,CAAUF,SAAUA,EAApB,UACE,SAACD,GAAD,UAAsBnB,MAK5B,OAAOqB,I,6JC0IHE,EAAqB,CACzBC,WAAAA,EAAAA,IAGInH,GAAYC,EAAAA,EAAAA,KAXD,SAACC,GAAD,MAAsB,CACrCkH,YAAalH,EAAMO,OAAO2G,YAC1BC,aAAcnH,EAAMO,OAAO4G,aAC3BC,eAAgBpH,EAAMqH,cAAcC,cAAcC,gBAClDC,SAAUxH,EAAME,QAAQD,QAAQuH,YAOER,GAEpC,IAAelH,GAAU5C,EAAAA,EAAAA,IAnIV,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXqK,gBAAiB,CACfhJ,MAAO,OACPiJ,UAAW,GACXpK,QAAS,OACT8I,gBAAiB,OACjBuB,KAAM,EACNC,UAAW,8BAEblJ,MAAO,CACLpB,QAAS,OACTuK,eAAgB,aAChBrJ,WAAY,UAEdsJ,WAAY,CACVtK,MAAO,OACPmB,SAAU,GACVC,WAAY,IACZoH,WAAY,GACZ+B,UAAW,GAEbC,UAAW,CACTC,UAAW,SAEbC,KAAM,CACJlC,WAAY,GACZmC,KAAMhL,EAAMM,QAAQC,QAAQiI,KAC5B,cAAe,CACblH,MAAO,MAGX2J,gBAAiB,CACf9K,QAAS,OACTuK,eAAgB,SAChBrJ,WAAY,cAgGOtB,EA5FN,SAAC,GAUA,IATlB4B,EASiB,EATjBA,QACAJ,EAQiB,EARjBA,MACAkF,EAOiB,EAPjBA,QACAsD,EAMiB,EANjBA,YACAC,EAKiB,EALjBA,aACAC,EAIiB,EAJjBA,eACAH,EAGiB,EAHjBA,WACAmB,EAEiB,EAFjBA,gBAGA,OADiB,EADjBZ,SAEaa,SAAS,cACb,SAAC,EAAA9E,SAAD,KAGP,UAAC,KAAD,CACE+E,WAAS,EACTvJ,UAAS,UAAKD,EAAQ2I,gBAAb,gBACTc,UAAU,MACV/J,WAAW,SAJb,WAME,UAAC,KAAD,CACEwF,MAAI,EACJC,GAAI,GACJuE,GAAI,GACJC,GAAIL,EAAkB,EAAI,EAC1BrJ,UAAWD,EAAQJ,MACnBO,GAAI,CACFhB,WAAY,CAAC,OAAQ,OAAQ,IAAK,MAPtC,WAUIiJ,IACA,gBAAKnI,UAAWD,EAAQoJ,KAAxB,SACGf,GAAe,SAAC,IAAD,KAAmB,SAAC,IAAD,OAGvC,SAAC,IAAD,CAAYvC,QAAQ,KAAK7F,UAAWD,EAAQgJ,WAA5C,SACGpJ,OAGJ0J,IACC,SAAC,KAAD,CACEpE,MAAI,EACJC,GAAI,GACJuE,GAAI,GACJC,GAAI,EACJ1J,UAAWD,EAAQsJ,gBACnBnJ,GAAI,CAAE8I,UAAW,CAAC,OAAQ,OAAQ,IAAK,MANzC,SAQGK,KAGL,UAAC,KAAD,CACEpE,MAAI,EACJC,GAAI,GACJuE,GAAI,GACJC,GAAIL,EAAkB,EAAI,EAC1BrJ,UAAWD,EAAQkJ,UALrB,UAOGpE,GAAWA,EACXwD,GAAkBA,EAAesB,OAAS,IACzC,SAAC,IAAD,CACElL,MAAM,UACN,aAAW,eACXsG,UAAU,OACV5E,QAAS,WACP+H,KAEF0B,GAAG,wBACH5E,KAAK,QARP,UAUE,SAAC,KAAD,iB,+EC1CZ,KAAe7G,EAAAA,EAAAA,IA/EA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXwL,cAAe,CACbrK,YAAa,QACbf,MAAOL,EAAMM,QAAQC,QAAQiI,KAC7B,cAAe,CACblH,MAAO,GACPV,OAAQ,KAGZ8K,mBAAoB,CAClBrL,MAAO,OACP,4BAA6B,CAC3B8D,SAAU,MAGdR,YAAa,CACXxD,QAAS,OACTkB,WAAY,SACZqJ,eAAgB,gBAChBrC,QAAS,OAETsD,aAAc,oBACd,4BAA6B,CAC3BC,SAAU,WAGdC,YAAa,CACXjL,OAAQ,OACR8J,eAAgB,SAChBvK,QAAS,OACTyL,SAAU,SACVvK,WAAY,aACZ,OAAQ,CACNG,SAAU,KAGdsK,UAAW,CACT3L,QAAS,OACTkB,WAAY,SACZ,4BAA6B,CAC3BuK,SAAU,WAGdG,WAAY,CACV5L,QAAS,OACTkB,WAAY,cAiClB,EA7BoB,SAAC,GAOA,IANnBM,EAMkB,EANlBA,QACAT,EAKkB,EALlBA,KACAwF,EAIkB,EAJlBA,MACAK,EAGkB,EAHlBA,SACAN,EAEkB,EAFlBA,QACA7E,EACkB,EADlBA,UAEA,OACE,SAAC,KAAD,CAAMuJ,WAAS,EAAf,UACE,UAAC,KAAD,CACEtE,MAAI,EACJC,GAAI,GACJlF,UAAS,UAAKD,EAAQgC,YAAb,YAA4B/B,GAAwB,IAH/D,WAKE,iBAAKA,UAAWD,EAAQmK,UAAxB,UACG5K,GAAO,gBAAKU,UAAWD,EAAQ8J,cAAxB,SAAwCvK,IAAc,MAC9D,iBAAKU,UAAWD,EAAQkK,YAAxB,WACE,eAAI1E,MAAO,CAAE6E,OAAQ,GAArB,SAA2BtF,KAC3B,iBAAM9E,UAAWD,EAAQ+J,mBAAzB,SAA8C3E,WAIlD,gBAAKnF,UAAWD,EAAQoK,WAAxB,SAAqCtF,a,2HClGvCwF,EAAuBhK,EAAAA,cAAoB,MAclC,SAASiK,EAAW5D,GACjC,IACEe,EAEEf,EAFFe,SACAtB,EACEO,EADFP,MAEIoE,EAbR,WACE,MAAoBlK,EAAAA,SAAe,MAAnC,eAAOuJ,EAAP,KAAWY,EAAX,KAIA,OAHAnK,EAAAA,WAAgB,WACdmK,EAAM,SAAD,OAAUC,KAAKC,MAAsB,IAAhBD,KAAKE,cAC9B,IACIf,EAQUgB,GACXC,EAAUxK,EAAAA,SAAc,WAC5B,MAAO,CACLkK,SAAAA,EACApE,MAAAA,KAED,CAACoE,EAAUpE,IACd,OAAoB2E,EAAAA,EAAAA,KAAKT,EAAQU,SAAU,CACzC5E,MAAO0E,EACPpD,SAAUA,IAyBP,SAASuD,IACd,OAAO3K,EAAAA,WAAiBgK,GAEnB,SAASY,EAAWJ,EAAS1E,GAKlC,OAAiB,OAFb0E,EADFN,SAIO,KAGT,UAAUM,EAAQN,SAAlB,cAAgCpE,GAE3B,SAAS+E,EAASL,EAAS1E,GAKhC,OAAiB,OAFb0E,EADFN,SAIO,KAGT,UAAUM,EAAQN,SAAlB,cAAgCpE,G,qCCjF5BgF,EAAY,CAAC,YAgDnB,EA1C6B9K,EAAAA,YAAiB,SAAiBqG,EAAO0E,GAC9D,IACMC,EACR3E,EADFe,SAEI6D,GAAQC,EAAAA,EAAAA,GAA8B7E,EAAOyE,GAE7CN,EAAUG,IAEhB,GAAgB,OAAZH,EACF,MAAM,IAAIW,UAAU,0BAGtB,IAAM/D,EAAWpH,EAAAA,SAAAA,IAAmBgL,GAAc,SAAAI,GAChD,OAAmBpL,EAAAA,eAAqBoL,GAIpBpL,EAAAA,aAAmBoL,EAAO,CAE5C,gBAAiBR,EAAWJ,EAASY,EAAM/E,MAAMP,OACjDyD,GAAIsB,EAASL,EAASY,EAAM/E,MAAMP,SAN3B,QASX,OAAoB2E,EAAAA,EAAAA,KAAKY,EAAAA,GAAMC,EAAAA,EAAAA,GAAS,GAAIL,EAAO,CACjDF,IAAKA,EACLjF,MAAO0E,EAAQ1E,MACfsB,SAAUA,Q,uDCjCP,SAASmE,EAAwBC,GACtC,OAAOC,EAAAA,EAAAA,GAAqB,cAAeD,IAErBE,E,SAAAA,GAAuB,cAAe,CAAC,SAA/D,ICFMZ,EAAY,CAAC,WAAY,YAAa,SAoBtCa,GAAeC,EAAAA,EAAAA,IAAO,MAAO,CACjCC,KAAM,cACNL,KAAM,OACNM,kBAAmB,SAACzF,EAAO0F,GAAR,OAAmBA,EAAO5F,OAH1ByF,EAIlB,kBAEI,CACLxF,QAHC,EACDrI,MAEeuE,QAAQ,OAwEzB,EAtE8BtC,EAAAA,YAAiB,SAAkBgM,EAASjB,GACxE,IAAM1E,GAAQ4F,EAAAA,EAAAA,GAAc,CAC1B5F,MAAO2F,EACPH,KAAM,gBAINzE,EAGEf,EAHFe,SACAzH,EAEE0G,EAFF1G,UACAmG,EACEO,EADFP,MAEImF,GAAQC,EAAAA,EAAAA,GAA8B7E,EAAOyE,GAE7CoB,GAAaZ,EAAAA,EAAAA,GAAS,GAAIjF,GAE1B3G,EAlCkB,SAAAwM,GACxB,IACExM,EACEwM,EADFxM,QAKF,OAAOyM,EAAAA,EAAAA,GAHO,CACZhG,KAAM,CAAC,SAEoBoF,EAAyB7L,GA2BtC0M,CAAkBF,GAC5B1B,EAAUG,IAEhB,GAAgB,OAAZH,EACF,MAAM,IAAIW,UAAU,0BAGtB,IAAM5B,EAAKqB,EAAWJ,EAAS1E,GACzBuG,EAAQxB,EAASL,EAAS1E,GAChC,OAAoB2E,EAAAA,EAAAA,KAAKkB,GAAcL,EAAAA,EAAAA,GAAS,CAC9C,kBAAmBe,EACnB1M,WAAW4H,EAAAA,EAAAA,GAAK7H,EAAQyG,KAAMxG,GAC9B2M,OAAQxG,IAAU0E,EAAQ1E,MAC1ByD,GAAIA,EACJwB,IAAKA,EACLwB,KAAM,WACNL,WAAYA,GACXjB,EAAO,CACR7D,SAAUtB,IAAU0E,EAAQ1E,OAASsB,Q,4CCkBnCoF,EAAgB,CACpBlE,UAAW,IAmFb,GAAexK,EAAAA,EAAAA,IAjJA,SAACC,GAAD,OACbC,EAAAA,EAAAA,GAAa,CACXyO,cAAe,CACbvO,QAAS,OACTS,OAAQ,OACRU,MAAO,QAETqN,oBAAqB,CACnBrN,MAAO,QACPX,WAAY,UACZiO,YAAa,oBACb,kBAAmB,CACjB,uBAAwB,CACtBzO,QAAS,QAEX,iBAAkB,CAChBA,QAAS,OACTyL,SAAU,MACVvK,WAAY,SACZqJ,eAAgB,aAChBiB,aAAc,oBACd,qBAAsB,CACpBvK,YAAa,EACbyN,aAAc,GAEhB,iBAAkB,CAChBlO,WAAY,UACZc,WAAY,MAIhB,sBAAuB,CACrBtB,QAAS,UAIf2O,oBAAqB,CACnBxN,MAAO,OACP,sBAAuB,CACrBV,OAAQ,SAGZmO,SAAU,CACRnO,OAAQ,QAGV,4BAA6B,CAC3B8N,cAAe,CACb9C,SAAU,SACVlL,cAAe,UAEjBiO,oBAAqB,CACnBrN,MAAO,OACPqK,aAAc,qBACd,wDAAyD,CACvDA,aAAc,cA0FxB,EAhFqB,SAAC,GAMI,IALxBtC,EAKuB,EALvBA,SACA1H,EAIuB,EAJvBA,QAIuB,IAHvBqB,YAAAA,OAGuB,MAHT,IAGS,EAFvB2E,EAEuB,EAFvBA,OACAD,EACuB,EADvBA,YAEA,EAA0BzF,EAAAA,SAAee,GAAzC,eAAO+E,EAAP,KAAciH,EAAd,KAEMhP,GAAQiP,EAAAA,EAAAA,KACRC,GAAgBC,EAAAA,EAAAA,GAAcnP,EAAMoP,YAAYC,KAAK,OAMrDC,EAAyB,GACzBC,EAAiC,GAEvC,OAAKlG,GAELA,EAASmG,SAAQ,SAACnC,GAChBiC,EAAW9I,KAAK6G,EAAMvF,WACtByH,EAAY/I,KAAK6G,EAAMoC,aAIvB,SAACvD,EAAD,CAAYnE,MAAK,UAAKA,GAAtB,UACE,UAAC2H,EAAA,EAAD,CAAK9N,UAAWD,EAAQ+M,cAAxB,WACE,SAACgB,EAAA,EAAD,CAAK9N,UAAWD,EAAQgN,oBAAxB,UACE,SAAC,EAAD,CACEgB,SAnBW,SAACC,EAA6BC,GACjDb,EAASa,IAmBDC,YAAaZ,EAAgB,aAAe,WAC5CzH,QAASyH,EAAgB,aAAe,WACxCa,cAAc,OACdnO,UAAWD,EAAQqO,QALrB,SAOGV,EAAWW,KAAI,SAACpJ,EAAMqJ,GACrB,OAAIrJ,GAEA,SAACsJ,EAAA,GAAD,gBACEvO,UAAWD,EAAQyO,UAEnBrI,MAAK,UAAKmI,GACV/I,MAAOsH,GACH5H,GALN,IAMEwJ,eAAa,EACbC,oBAAkB,EAClBC,aAAa,IARf,gBAEgBL,IAUb,aAKb,UAACR,EAAA,EAAD,CAAK9N,UAAWD,EAAQmN,oBAAxB,UACIpH,EAYE,KAXA6H,EAAYU,KAAI,SAACpJ,EAAMqJ,GACrB,OACE,SAAC,EAAD,CACEvO,SAAO,UAAOA,EAAQoN,UAEtBhH,MAAK,UAAKmI,GAHZ,SAKGrJ,GAAc,MALjB,kBAEkBqJ,OAQzBxI,GACC,gBAAK9F,UAAWD,EAAQoN,SAAxB,SAAmCpH,IACjC,cAtDU,S,qECxGT,SAAS6I,EAAyBC,EAAQC,GACvD,GAAc,MAAVD,EAAgB,MAAO,GAC3B,IACIE,EAAKC,EADLC,GAAS,OAA6BJ,EAAQC,GAGlD,GAAII,OAAOC,sBAAuB,CAChC,IAAIC,EAAmBF,OAAOC,sBAAsBN,GAEpD,IAAKG,EAAI,EAAGA,EAAII,EAAiBzF,OAAQqF,IACvCD,EAAMK,EAAiBJ,GACnBF,EAASO,QAAQN,IAAQ,GACxBG,OAAOI,UAAUC,qBAAqBC,KAAKX,EAAQE,KACxDE,EAAOF,GAAOF,EAAOE,IAIzB,OAAOE","sources":["common/BackLink.tsx","screens/Console/Buckets/BucketDetails/BucketDetails.tsx","screens/Console/Buckets/BucketDetails/SummaryItems/RBIconButton.tsx","screens/Console/Common/BoxIconButton/BoxIconButton.tsx","screens/Console/Common/Components/withSuspense.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/Common/ScreenTitle/ScreenTitle.tsx","../node_modules/@mui/lab/TabContext/TabContext.js","../node_modules/@mui/lab/TabList/TabList.js","../node_modules/@mui/lab/TabPanel/tabPanelClasses.js","../node_modules/@mui/lab/TabPanel/TabPanel.js","screens/Console/Common/VerticalTabs/VerticalTabs.tsx","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\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 { Link, Redirect, Route, Router, Switch } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Grid from \"@mui/material/Grid\";\nimport api from \"../../../../common/api\";\nimport { BucketInfo } from \"../types\";\nimport {\n buttonsStyles,\n containerForHeader,\n hrClass,\n pageContentStyles,\n searchField,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { setBucketDetailsLoad, setBucketInfo } from \"../actions\";\nimport { AppState } from \"../../../../store\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport PageHeader from \"../../Common/PageHeader/PageHeader\";\n\nimport ScreenTitle from \"../../Common/ScreenTitle/ScreenTitle\";\nimport { Box, IconButton, Tooltip } from \"@mui/material\";\n\nimport RefreshIcon from \"../../../../icons/RefreshIcon\";\nimport { IAM_SCOPES } from \"../../../../common/SecureComponent/permissions\";\nimport PageLayout from \"../../Common/Layout/PageLayout\";\nimport VerticalTabs from \"../../Common/VerticalTabs/VerticalTabs\";\nimport BackLink from \"../../../../common/BackLink\";\nimport {\n SecureComponent,\n hasPermission,\n} from \"../../../../common/SecureComponent\";\n\nimport withSuspense from \"../../Common/Components/withSuspense\";\nimport RBIconButton from \"./SummaryItems/RBIconButton\";\nimport { TrashIcon } from \"../../../../icons\";\n\nconst BucketsIcon = React.lazy(() => import(\"../../../../icons/BucketsIcon\"));\nconst FolderIcon = React.lazy(() => import(\"../../../../icons/FolderIcon\"));\n\nconst DeleteBucket = withSuspense(\n React.lazy(() => import(\"../ListBuckets/DeleteBucket\"))\n);\nconst AccessRulePanel = withSuspense(\n React.lazy(() => import(\"./AccessRulePanel\"))\n);\nconst AccessDetailsPanel = withSuspense(\n React.lazy(() => import(\"./AccessDetailsPanel\"))\n);\nconst BucketSummaryPanel = withSuspense(\n React.lazy(() => import(\"./BucketSummaryPanel\"))\n);\nconst BucketEventsPanel = withSuspense(\n React.lazy(() => import(\"./BucketEventsPanel\"))\n);\nconst BucketReplicationPanel = withSuspense(\n React.lazy(() => import(\"./BucketReplicationPanel\"))\n);\nconst BucketLifecyclePanel = withSuspense(\n React.lazy(() => import(\"./BucketLifecyclePanel\"))\n);\n\nconst styles = (theme: Theme) =>\n createStyles({\n pageContainer: {\n height: \"100%\",\n },\n screenTitle: {\n border: 0,\n paddingTop: 0,\n },\n ...pageContentStyles,\n breadcrumLink: {\n textDecoration: \"none\",\n color: \"black\",\n },\n ...searchField,\n capitalize: {\n textTransform: \"capitalize\",\n },\n deleteBtn: {\n color: \"#f44336\",\n border: \"1px solid rgba(244, 67, 54, 0.5)\",\n maxWidth: 140,\n },\n ...hrClass,\n ...buttonsStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\ninterface IBucketDetailsProps {\n classes: any;\n match: any;\n history: any;\n distributedSetup: boolean;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n setBucketDetailsLoad: typeof setBucketDetailsLoad;\n loadingBucket: boolean;\n setBucketInfo: typeof setBucketInfo;\n bucketInfo: BucketInfo | null;\n}\n\nconst BucketDetails = ({\n classes,\n match,\n history,\n setErrorSnackMessage,\n distributedSetup,\n setBucketDetailsLoad,\n loadingBucket,\n setBucketInfo,\n bucketInfo,\n}: IBucketDetailsProps) => {\n const [iniLoad, setIniLoad] = useState(false);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const bucketName = match.params[\"bucketName\"];\n\n let selTab = match?.params[\"0\"];\n selTab = selTab ? selTab : \"summary\";\n\n const [activeTab, setActiveTab] = useState(selTab);\n\n useEffect(() => {\n setActiveTab(selTab);\n }, [selTab]);\n\n useEffect(() => {\n if (!iniLoad) {\n setBucketDetailsLoad(true);\n setIniLoad(true);\n }\n }, [iniLoad, setBucketDetailsLoad, setIniLoad]);\n\n useEffect(() => {\n if (loadingBucket) {\n api\n .invoke(\"GET\", `/api/v1/buckets/${bucketName}`)\n .then((res: BucketInfo) => {\n setBucketDetailsLoad(false);\n setBucketInfo(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setBucketDetailsLoad(false);\n setErrorSnackMessage(err);\n });\n }\n }, [\n bucketName,\n loadingBucket,\n setBucketDetailsLoad,\n setBucketInfo,\n setErrorSnackMessage,\n ]);\n\n let topLevelRoute = `/buckets/${bucketName}`;\n const defaultRoute = \"/admin/summary\";\n\n const manageBucketRoutes: Record = {\n events: \"/admin/events\",\n replication: \"/admin/replication\",\n lifecycle: \"/admin/lifecycle\",\n access: \"/admin/access\",\n prefix: \"/admin/prefix\",\n };\n\n const getRoutePath = (routeKey: string) => {\n let path = manageBucketRoutes[routeKey];\n if (!path) {\n path = `${topLevelRoute}${defaultRoute}`;\n } else {\n path = `${topLevelRoute}${path}`;\n }\n return path;\n };\n\n const closeDeleteModalAndRefresh = (refresh: boolean) => {\n setDeleteOpen(false);\n if (refresh) {\n history.push(\"/buckets\");\n }\n };\n\n const openBucketBrowser = () => {\n history.push(`/buckets/${bucketName}/browse`);\n };\n\n return (\n \n {deleteOpen && (\n {\n closeDeleteModalAndRefresh(refresh);\n }}\n />\n )}\n }\n actions={\n \n \n \n \n \n \n \n }\n />\n \n \n \n \n \n }\n title={bucketName}\n subTitle={\n \n Access: \n \n {bucketInfo?.access.toLowerCase()}\n \n \n }\n actions={\n \n \n {\n setDeleteOpen(true);\n }}\n text={\"Delete Bucket\"}\n icon={}\n color={\"secondary\"}\n variant={\"outlined\"}\n />\n \n {\n setBucketDetailsLoad(true);\n }}\n text={`Refresh`}\n icon={}\n color={\"primary\"}\n />\n \n }\n />\n \n \n \n \n \n \n \n {distributedSetup && (\n \n )}\n {distributedSetup && (\n \n )}\n\n \n \n (\n \n )}\n />\n \n \n \n }\n >\n {{\n tabConfig: {\n label: \"Summary\",\n value: \"summary\",\n component: Link,\n to: getRoutePath(\"summary\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Events\",\n value: \"events\",\n component: Link,\n disabled: !hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_NOTIFICATIONS,\n IAM_SCOPES.S3_PUT_BUCKET_NOTIFICATIONS,\n ]),\n to: getRoutePath(\"events\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Replication\",\n value: \"replication\",\n component: Link,\n disabled:\n !distributedSetup ||\n !hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_REPLICATION_CONFIGURATION,\n IAM_SCOPES.S3_PUT_REPLICATION_CONFIGURATION,\n ]),\n to: getRoutePath(\"replication\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Lifecycle\",\n value: \"lifecycle\",\n component: Link,\n disabled:\n !distributedSetup ||\n !hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_LIFECYCLE_CONFIGURATION,\n IAM_SCOPES.S3_PUT_LIFECYCLE_CONFIGURATION,\n ]),\n to: getRoutePath(\"lifecycle\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Access Audit\",\n value: \"access\",\n component: Link,\n disabled: !hasPermission(bucketName, [\n IAM_SCOPES.ADMIN_GET_POLICY,\n IAM_SCOPES.ADMIN_LIST_USER_POLICIES,\n IAM_SCOPES.ADMIN_LIST_USERS,\n ]),\n to: getRoutePath(\"access\"),\n },\n }}\n {{\n tabConfig: {\n label: \"Access Rules\",\n value: \"prefix\",\n component: Link,\n disabled: !hasPermission(bucketName, [\n IAM_SCOPES.S3_GET_BUCKET_POLICY,\n ]),\n to: getRoutePath(\"prefix\"),\n },\n }}\n \n \n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n session: state.console.session,\n selectedTab: state.buckets.bucketDetails.selectedTab,\n distributedSetup: state.system.distributedSetup,\n loadingBucket: state.buckets.bucketDetails.loadingBucket,\n bucketInfo: state.buckets.bucketDetails.bucketInfo,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n setBucketDetailsLoad,\n setBucketInfo,\n});\n\nexport default withStyles(styles)(connector(BucketDetails));\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 BoxIconButton from \"../../../Common/BoxIconButton/BoxIconButton\";\nimport { IconButtonProps } from \"@mui/material\";\nimport makeStyles from \"@mui/styles/makeStyles\";\nimport { Theme } from \"@mui/material/styles\";\n\ntype DeleteButtonProps = {\n onClick: (e: any) => void;\n text?: string;\n disabled?: boolean;\n size?: string;\n tooltip?: string;\n classes?: any;\n icon?: React.ReactNode;\n [x: string]: any;\n};\n\ntype RBIconProps = Partial & DeleteButtonProps;\n\nconst useStyles = makeStyles((theme: Theme) => {\n const getButtonColor = (props: RBIconProps) => {\n const { variant, color } = props;\n\n let tgtColor = theme.palette.primary.main;\n\n if (color === \"primary\" && variant === \"contained\") {\n tgtColor = theme.palette.primary.contrastText;\n } else if (color === \"primary\" && variant === \"outlined\") {\n tgtColor = theme.palette.primary.main;\n } else if (color === \"secondary\") {\n tgtColor = theme.palette.secondary.main;\n }\n\n return tgtColor;\n };\n\n return {\n root: {\n padding: \"7px\",\n color: (props: RBIconProps) => getButtonColor(props),\n borderColor: (props: RBIconProps) =>\n props.color === \"secondary\"\n ? theme.palette.secondary.main\n : theme.palette.primary.main,\n \"& svg.min-icon\": {\n width: 12,\n marginLeft: (props: RBIconProps) => (props.text ? \"5px\" : \"0px\"),\n \"@media (max-width: 900px)\": {\n width: 16,\n marginLeft: \"0px !important\",\n },\n },\n },\n };\n});\n\nconst RBIconButton = (props: RBIconProps) => {\n const classes = useStyles(props);\n\n const {\n onClick,\n text = \"\",\n disabled = false,\n tooltip,\n icon = null,\n ...restProps\n } = props;\n\n return (\n \n {text} {icon}\n \n );\n};\nexport default RBIconButton;\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { IconButton, IconButtonProps, Tooltip } from \"@mui/material\";\nimport clsx from \"clsx\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n root: {\n padding: 8,\n marginLeft: 8,\n borderWidth: 1,\n borderColor: \"#696969\",\n color: \"#696969\",\n borderStyle: \"solid\",\n borderRadius: 3,\n \"& .min-icon\": {\n // height: 20,\n width: 20,\n },\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.main,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:disabled\": {\n color: \"#EBEBEB\",\n borderColor: \"#EBEBEB\",\n },\n },\n contained: {\n borderColor: theme.palette.primary.main,\n background: theme.palette.primary.main,\n color: \"white\",\n \"& .MuiTouchRipple-root span\": {\n backgroundColor: theme.palette.primary.dark,\n borderRadius: 3,\n opacity: 0.3,\n },\n \"&:hover\": {\n backgroundColor: theme.palette.primary.light,\n color: \"#FFF\",\n },\n },\n });\n\ninterface IBoxIconButton extends IconButtonProps {\n classes: any;\n children: any;\n variant?: \"outlined\" | \"contained\";\n tooltip?: string;\n}\n\nconst BoxIconButton = ({\n classes,\n children,\n variant = \"outlined\",\n tooltip,\n ...rest\n}: IBoxIconButton) => {\n const button = (\n \n {children}\n \n );\n\n if (tooltip && tooltip !== \"\") {\n return (\n \n {button}\n \n );\n }\n\n return button;\n};\n\nexport default withStyles(styles)(BoxIconButton);\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, { Fragment } from \"react\";\nimport { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n

    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\n\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\n\ninterface IScreenTitle {\n classes: any;\n icon?: any;\n title?: any;\n subTitle?: any;\n actions?: any;\n className?: any;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerBarIcon: {\n marginRight: \".7rem\",\n color: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 44,\n height: 44,\n },\n },\n headerBarSubheader: {\n color: \"grey\",\n \"@media (max-width: 900px)\": {\n maxWidth: 200,\n },\n },\n screenTitle: {\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"space-between\",\n padding: \"1rem\",\n\n borderBottom: \"1px solid #EAEAEA\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n titleColumn: {\n height: \"auto\",\n justifyContent: \"center\",\n display: \"flex\",\n flexFlow: \"column\",\n alignItems: \"flex-start\",\n \"& h1\": {\n fontSize: 19,\n },\n },\n leftItems: {\n display: \"flex\",\n alignItems: \"center\",\n \"@media (max-width: 600px)\": {\n flexFlow: \"column\",\n },\n },\n rightItems: {\n display: \"flex\",\n alignItems: \"center\",\n },\n });\n\nconst ScreenTitle = ({\n classes,\n icon,\n title,\n subTitle,\n actions,\n className,\n}: IScreenTitle) => {\n return (\n \n \n
    \n {icon ?
    {icon}
    : null}\n
    \n

    {title}

    \n {subTitle}\n
    \n
    \n\n
    {actions}
    \n
    \n \n );\n};\n\nexport default withStyles(styles)(ScreenTitle);\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\n/**\n * @type {React.Context<{ idPrefix: string; value: string } | null>}\n */\n\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst Context = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n Context.displayName = 'TabContext';\n}\n\nfunction useUniquePrefix() {\n const [id, setId] = React.useState(null);\n React.useEffect(() => {\n setId(`mui-p-${Math.round(Math.random() * 1e5)}`);\n }, []);\n return id;\n}\n\nexport default function TabContext(props) {\n const {\n children,\n value\n } = props;\n const idPrefix = useUniquePrefix();\n const context = React.useMemo(() => {\n return {\n idPrefix,\n value\n };\n }, [idPrefix, value]);\n return /*#__PURE__*/_jsx(Context.Provider, {\n value: context,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? TabContext.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * The value of the currently selected `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\n/**\n * @returns {unknown}\n */\n\nexport function useTabContext() {\n return React.useContext(Context);\n}\nexport function getPanelId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-P-${value}`;\n}\nexport function getTabId(context, value) {\n const {\n idPrefix\n } = context;\n\n if (idPrefix === null) {\n return null;\n }\n\n return `${context.idPrefix}-T-${value}`;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport Tabs from '@mui/material/Tabs';\nimport { useTabContext, getTabId, getPanelId } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst TabList = /*#__PURE__*/React.forwardRef(function TabList(props, ref) {\n const {\n children: childrenProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const children = React.Children.map(childrenProp, child => {\n if (! /*#__PURE__*/React.isValidElement(child)) {\n return null;\n }\n\n return /*#__PURE__*/React.cloneElement(child, {\n // SOMEDAY: `Tabs` will set those themselves\n 'aria-controls': getPanelId(context, child.props.value),\n id: getTabId(context, child.props.value)\n });\n });\n return /*#__PURE__*/_jsx(Tabs, _extends({}, other, {\n ref: ref,\n value: context.value,\n children: children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabList.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * A list of `` elements.\n */\n children: PropTypes.node\n} : void 0;\nexport default TabList;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getTabPanelUtilityClass(slot) {\n return generateUtilityClass('MuiTabPanel', slot);\n}\nconst tabPanelClasses = generateUtilityClasses('MuiTabPanel', ['root']);\nexport default tabPanelClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"children\", \"className\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { styled, useThemeProps } from '@mui/material/styles';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { getTabPanelUtilityClass } from './tabPanelClasses';\nimport { getPanelId, getTabId, useTabContext } from '../TabContext';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTabPanelUtilityClass, classes);\n};\n\nconst TabPanelRoot = styled('div', {\n name: 'MuiTabPanel',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n padding: theme.spacing(3)\n}));\nconst TabPanel = /*#__PURE__*/React.forwardRef(function TabPanel(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTabPanel'\n });\n\n const {\n children,\n className,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props);\n\n const classes = useUtilityClasses(ownerState);\n const context = useTabContext();\n\n if (context === null) {\n throw new TypeError('No TabContext provided');\n }\n\n const id = getPanelId(context, value);\n const tabId = getTabId(context, value);\n return /*#__PURE__*/_jsx(TabPanelRoot, _extends({\n \"aria-labelledby\": tabId,\n className: clsx(classes.root, className),\n hidden: value !== context.value,\n id: id,\n ref: ref,\n role: \"tabpanel\",\n ownerState: ownerState\n }, other, {\n children: value === context.value && children\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TabPanel.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The `value` of the corresponding `Tab`. Must use the index of the `Tab` when\n * no `value` was passed to `Tab`.\n */\n value: PropTypes.string.isRequired\n} : void 0;\nexport default TabPanel;","import React from \"react\";\nimport { Box, Tab, TabProps } from \"@mui/material\";\nimport { TabContext, TabList, TabPanel } from \"@mui/lab\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme, useTheme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport useMediaQuery from \"@mui/material/useMediaQuery\";\n\nexport type TabItemProps = {\n tabConfig: TabProps | any;\n content?: JSX.Element | JSX.Element[];\n};\n\ntype VerticalTabsProps = {\n classes: any;\n children: TabItemProps[];\n selectedTab?: string;\n routes?: any;\n isRouteTabs?: boolean;\n};\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsContainer: {\n display: \"flex\",\n height: \"100%\",\n width: \"100%\",\n },\n tabsHeaderContainer: {\n width: \"300px\",\n background: \"#F8F8F8\",\n borderRight: \"1px solid #EAEAEA\",\n \"& .MuiTabs-root\": {\n \"& .MuiTabs-indicator\": {\n display: \"none\",\n },\n \"& .MuiTab-root\": {\n display: \"flex\",\n flexFlow: \"row\",\n alignItems: \"center\",\n justifyContent: \"flex-start\",\n borderBottom: \"1px solid #EAEAEA\",\n \"& .MuiSvgIcon-root\": {\n marginRight: 8,\n marginBottom: 0,\n },\n \"&.Mui-selected\": {\n background: \"#E5E5E5\",\n fontWeight: 600,\n },\n },\n\n \"&. MuiTabs-scroller\": {\n display: \"none\",\n },\n },\n },\n tabContentContainer: {\n width: \"100%\",\n \"& .MuiTabPanel-root\": {\n height: \"100%\",\n },\n },\n tabPanel: {\n height: \"100%\",\n },\n /*Below md breakpoint make it horizontal and style it for scrolling tabs*/\n \"@media (max-width: 900px)\": {\n tabsContainer: {\n flexFlow: \"column\",\n flexDirection: \"column\",\n },\n tabsHeaderContainer: {\n width: \"100%\",\n borderBottom: \" 1px solid #EAEAEA\",\n \"& .MuiTabs-root .MuiTabs-scroller .MuiButtonBase-root\": {\n borderBottom: \" 0px\",\n },\n },\n },\n });\n\nconst tabStripStyle = {\n minHeight: 60,\n};\n\nconst VerticalTabs = ({\n children,\n classes,\n selectedTab = \"0\",\n routes,\n isRouteTabs,\n}: VerticalTabsProps) => {\n const [value, setValue] = React.useState(selectedTab);\n\n const theme = useTheme();\n const isSmallScreen = useMediaQuery(theme.breakpoints.down(\"md\"));\n\n const handleChange = (event: React.SyntheticEvent, newValue: string) => {\n setValue(newValue);\n };\n\n const headerList: TabProps[] = [];\n const contentList: React.ReactNode[] = [];\n\n if (!children) return null;\n\n children.forEach((child) => {\n headerList.push(child.tabConfig);\n contentList.push(child.content);\n });\n\n return (\n \n \n \n \n {headerList.map((item, index) => {\n if (item) {\n return (\n \n );\n }\n return null;\n })}\n \n \n\n \n {!isRouteTabs\n ? contentList.map((item, index) => {\n return (\n \n {item ? item : null}\n \n );\n })\n : null}\n {isRouteTabs ? (\n
    {routes}
    \n ) : null}\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(VerticalTabs);\n","import objectWithoutPropertiesLoose from \"./objectWithoutPropertiesLoose.js\";\nexport default function _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","BucketsIcon","React","FolderIcon","DeleteBucket","withSuspense","AccessRulePanel","AccessDetailsPanel","BucketSummaryPanel","BucketEventsPanel","BucketReplicationPanel","BucketLifecyclePanel","connector","connect","state","session","console","selectedTab","buckets","bucketDetails","distributedSetup","system","loadingBucket","bucketInfo","setErrorSnackMessage","setBucketDetailsLoad","setBucketInfo","pageContainer","screenTitle","border","pageContentStyles","breadcrumLink","searchField","capitalize","textTransform","deleteBtn","maxWidth","hrClass","buttonsStyles","containerForHeader","spacing","match","history","useState","iniLoad","setIniLoad","deleteOpen","setDeleteOpen","bucketName","params","selTab","activeTab","setActiveTab","useEffect","api","then","res","catch","err","topLevelRoute","manageBucketRoutes","events","replication","lifecycle","access","prefix","getRoutePath","routeKey","path","Fragment","selectedBucket","closeDeleteModalAndRefresh","refresh","push","actions","title","component","size","item","xs","subTitle","scopes","IAM_SCOPES","resource","style","toLowerCase","errorProps","disabled","tooltip","text","variant","isRouteTabs","routes","contentSpacer","exact","tabConfig","value","Link","hasPermission","useStyles","makeStyles","root","padding","props","tgtColor","main","contrastText","secondary","getButtonColor","borderColor","marginLeft","restProps","borderWidth","borderStyle","backgroundColor","opacity","contained","dark","children","rest","button","clsx","WrappedComponent","fallback","ComponentWithSuspense","Suspense","mapDispatchToProps","toggleList","sidebarOpen","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","headerContainer","minHeight","left","boxShadow","justifyContent","labelStyle","marginTop","rightMenu","textAlign","logo","fill","middleComponent","includes","container","direction","sm","md","length","id","headerBarIcon","headerBarSubheader","borderBottom","flexFlow","titleColumn","leftItems","rightItems","margin","Context","TabContext","idPrefix","setId","Math","round","random","useUniquePrefix","context","_jsx","Provider","useTabContext","getPanelId","getTabId","_excluded","ref","childrenProp","other","_objectWithoutPropertiesLoose","TypeError","child","Tabs","_extends","getTabPanelUtilityClass","slot","generateUtilityClass","generateUtilityClasses","TabPanelRoot","styled","name","overridesResolver","styles","inProps","useThemeProps","ownerState","composeClasses","useUtilityClasses","tabId","hidden","role","tabStripStyle","tabsContainer","tabsHeaderContainer","borderRight","marginBottom","tabContentContainer","tabPanel","setValue","useTheme","isSmallScreen","useMediaQuery","breakpoints","down","headerList","contentList","forEach","content","Box","onChange","event","newValue","orientation","scrollButtons","tabList","map","index","Tab","tabHeader","disableRipple","disableTouchRipple","focusRipple","_objectWithoutProperties","source","excluded","key","i","target","Object","getOwnPropertySymbols","sourceSymbolKeys","indexOf","prototype","propertyIsEnumerable","call"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/701.1ac9f080.chunk.js b/portal-ui/build/static/js/701.1ac9f080.chunk.js new file mode 100644 index 000000000..3f37227ae --- /dev/null +++ b/portal-ui/build/static/js/701.1ac9f080.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[701],{60701:function(e,n,r){r.r(n);var t=r(1413),o=r(72791),i=r(62666),c=r(79271),s=r(60364),a=r(42649),u=r(50099),l=r(7241),d=r(80184),f=o.lazy((function(){return Promise.all([r.e(3772),r.e(5171),r.e(1520),r.e(1401),r.e(8354),r.e(9467)]).then(r.bind(r,89467))})),h=o.lazy((function(){return Promise.all([r.e(5561),r.e(6895)]).then(r.bind(r,66895))})),x=o.lazy((function(){return Promise.all([r.e(3772),r.e(5171),r.e(2442),r.e(2426),r.e(1520),r.e(3801),r.e(6431),r.e(1918),r.e(7757),r.e(1401),r.e(592),r.e(2983),r.e(6233)]).then(r.bind(r,56233))})),p=o.lazy((function(){return Promise.all([r.e(1520),r.e(5588)]).then(r.bind(r,45588))})),m=(0,s.$j)((function(e){return{open:e.system.sidebarOpen}}),{setMenuOpen:a.gG});n.default=(0,c.EN)(m((function(){return(0,d.jsx)(c.F0,{history:i.Z,children:(0,d.jsxs)(c.rs,{children:[(0,d.jsx)(c.AW,{path:"/add-bucket",children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(p,{})})}}),(0,d.jsx)(c.AW,{path:"/buckets/:bucketName/admin/*",children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(h,(0,t.Z)({},e))})}}),(0,d.jsx)(c.AW,{path:"/buckets/:bucketName/admin",children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(h,(0,t.Z)({},e))})}}),(0,d.jsx)(c.AW,{path:"/buckets/:bucketName/browse/:subpaths+",children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(x,(0,t.Z)({},e))})}}),(0,d.jsx)(c.AW,{path:"/buckets/:bucketName/browse",children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(x,(0,t.Z)({},e))})}}),(0,d.jsx)(c.AW,{path:"/buckets/:bucketName",component:function(){return(0,d.jsx)(c.l_,{to:"/buckets"})}}),(0,d.jsx)(c.AW,{path:"/",children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(f,(0,t.Z)({},e))})}}),(0,d.jsx)(c.AW,{children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(u.Z,{})})}})]})})})))},74794:function(e,n,r){var t=r(1413),o=(r(72791),r(61889)),i=r(11135),c=r(25787),s=r(23814),a=r(80184);n.Z=(0,c.Z)((function(e){return(0,i.Z)((0,t.Z)({},s.Bw))}))((function(e){var n=e.classes,r=e.className,t=void 0===r?"":r,i=e.children;return(0,a.jsx)("div",{className:n.contentSpacer,children:(0,a.jsx)(o.ZP,{container:!0,children:(0,a.jsx)(o.ZP,{item:!0,xs:12,className:t,children:i})})})}))},50099:function(e,n,r){r.d(n,{Z:function(){return u}});r(72791);var t=r(64554),o=r(20890),i=r(23060),c=r(80184);function s(){return(0,c.jsxs)(o.Z,{variant:"body2",color:"textSecondary",align:"center",children:["Copyright \xa9 ",(0,c.jsx)(i.Z,{color:"inherit",href:"https://min.io/?ref=con",children:"MinIO"})," ",(new Date).getFullYear(),"."]})}var a=r(74794),u=function(){return(0,c.jsx)(a.Z,{children:(0,c.jsxs)(t.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center",margin:"auto",flexFlow:"column"},children:[(0,c.jsx)(t.Z,{sx:{fontSize:"110%",margin:"0 0 0.25rem",color:"#909090"},children:"404 Error"}),(0,c.jsx)(t.Z,{sx:{fontStyle:"normal",fontSize:"clamp(2rem,calc(2rem + 1.2vw),3rem)",fontWeight:700},children:"Sorry, the page could not be found."}),(0,c.jsx)(t.Z,{mt:5,children:(0,c.jsx)(s,{})})]})})}},23060:function(e,n,r){r.d(n,{Z:function(){return w}});var t=r(70885),o=r(4942),i=r(63366),c=r(87462),s=r(72791),a=r(28182),u=r(90767),l=r(18529),d=r(12065),f=r(14036),h=r(47630),x=r(93736),p=r(23031),m=r(42071),b=r(20890),j=r(95159);function Z(e){return(0,j.Z)("MuiLink",e)}var v=(0,r(30208).Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),k=r(80184),y=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"],S={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},g=(0,h.ZP)(b.Z,{name:"MuiLink",slot:"Root",overridesResolver:function(e,n){var r=e.ownerState;return[n.root,n["underline".concat((0,f.Z)(r.underline))],"button"===r.component&&n.button]}})((function(e){var n=e.theme,r=e.ownerState,t=(0,l.D)(n,"palette.".concat(function(e){return S[e]||e}(r.color)))||r.color;return(0,c.Z)({},"none"===r.underline&&{textDecoration:"none"},"hover"===r.underline&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},"always"===r.underline&&{textDecoration:"underline",textDecorationColor:"inherit"!==t?(0,d.Fq)(t,.4):void 0,"&:hover":{textDecorationColor:"inherit"}},"button"===r.component&&(0,o.Z)({position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"}},"&.".concat(v.focusVisible),{outline:"auto"}))})),w=s.forwardRef((function(e,n){var r=(0,x.Z)({props:e,name:"MuiLink"}),o=r.className,l=r.color,d=void 0===l?"primary":l,h=r.component,b=void 0===h?"a":h,j=r.onBlur,v=r.onFocus,S=r.TypographyClasses,w=r.underline,A=void 0===w?"always":w,N=r.variant,W=void 0===N?"inherit":N,C=(0,i.Z)(r,y),F=(0,p.Z)(),z=F.isFocusVisibleRef,D=F.onBlur,P=F.onFocus,M=F.ref,V=s.useState(!1),B=(0,t.Z)(V,2),R=B[0],L=B[1],O=(0,m.Z)(n,M),T=(0,c.Z)({},r,{color:d,component:b,focusVisible:R,underline:A,variant:W}),_=function(e){var n=e.classes,r=e.component,t=e.focusVisible,o=e.underline,i={root:["root","underline".concat((0,f.Z)(o)),"button"===r&&"button",t&&"focusVisible"]};return(0,u.Z)(i,Z,n)}(T);return(0,k.jsx)(g,(0,c.Z)({className:(0,a.Z)(_.root,o),classes:S,color:d,component:b,onBlur:function(e){D(e),!1===z.current&&L(!1),j&&j(e)},onFocus:function(e){P(e),!0===z.current&&L(!0),v&&v(e)},ref:O,ownerState:T,variant:W},C))}))}}]); +//# sourceMappingURL=701.1ac9f080.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/701.cf1bff16.chunk.js.map b/portal-ui/build/static/js/701.1ac9f080.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/701.cf1bff16.chunk.js.map rename to portal-ui/build/static/js/701.1ac9f080.chunk.js.map index 9e872b51f..1bbfefc39 100644 --- a/portal-ui/build/static/js/701.cf1bff16.chunk.js.map +++ b/portal-ui/build/static/js/701.1ac9f080.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/701.cf1bff16.chunk.js","mappings":"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","sources":["screens/Console/Buckets/Buckets.tsx","screens/Console/Common/Layout/PageLayout.tsx","common/Copyright.tsx","screens/NotFoundPage.tsx","../node_modules/@mui/material/Link/linkClasses.js","../node_modules/@mui/material/Link/Link.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, { Suspense } from \"react\";\nimport history from \"../../../history\";\nimport { Redirect, Route, Router, Switch, withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { AppState } from \"../../../store\";\nimport { setMenuOpen } from \"../../../actions\";\nimport NotFoundPage from \"../../NotFoundPage\";\nimport LoadingComponent from \"../../../common/LoadingComponent\";\n\nconst ListBuckets = React.lazy(() => import(\"./ListBuckets/ListBuckets\"));\nconst BucketDetails = React.lazy(() => import(\"./BucketDetails/BucketDetails\"));\nconst BrowserHandler = React.lazy(\n () => import(\"./BucketDetails/BrowserHandler\")\n);\nconst AddBucket = React.lazy(() => import(\"./ListBuckets/AddBucket\"));\n\nconst mapState = (state: AppState) => ({\n open: state.system.sidebarOpen,\n});\n\nconst connector = connect(mapState, { setMenuOpen });\n\nconst Buckets = () => {\n return (\n \n \n (\n }>\n \n \n )}\n />\n (\n }>\n \n \n )}\n />\n (\n }>\n \n \n )}\n />\n (\n }>\n \n \n )}\n />\n (\n }>\n \n \n )}\n />\n }\n />\n (\n }>\n \n \n )}\n />\n (\n }>\n \n \n )}\n />\n \n \n );\n};\n\nexport default withRouter(connector(Buckets));\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 Typography from \"@mui/material/Typography\";\nimport Link from \"@mui/material/Link\";\n\nexport default function Copyright() {\n return (\n \n {\"Copyright © \"}\n \n MinIO\n {\" \"}\n {new Date().getFullYear()}\n {\".\"}\n \n );\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Copyright from \"../common/Copyright\";\nimport PageLayout from \"./Console/Common/Layout/PageLayout\";\n\nconst NotFound: React.FC = () => {\n return (\n \n \n \n 404 Error\n \n \n Sorry, the page could not be found.\n \n \n \n \n \n \n );\n};\n\nexport default NotFound;\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getLinkUtilityClass(slot) {\n return generateUtilityClass('MuiLink', slot);\n}\nconst linkClasses = generateUtilityClasses('MuiLink', ['root', 'underlineNone', 'underlineHover', 'underlineAlways', 'button', 'focusVisible']);\nexport default linkClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"component\", \"onBlur\", \"onFocus\", \"TypographyClasses\", \"underline\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha, getPath } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport useForkRef from '../utils/useForkRef';\nimport Typography from '../Typography';\nimport linkClasses, { getLinkUtilityClass } from './linkClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst colorTransformations = {\n primary: 'primary.main',\n textPrimary: 'text.primary',\n secondary: 'secondary.main',\n textSecondary: 'text.secondary',\n error: 'error.main'\n};\n\nconst transformDeprecatedColors = color => {\n return colorTransformations[color] || color;\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n component,\n focusVisible,\n underline\n } = ownerState;\n const slots = {\n root: ['root', `underline${capitalize(underline)}`, component === 'button' && 'button', focusVisible && 'focusVisible']\n };\n return composeClasses(slots, getLinkUtilityClass, classes);\n};\n\nconst LinkRoot = styled(Typography, {\n name: 'MuiLink',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`underline${capitalize(ownerState.underline)}`], ownerState.component === 'button' && styles.button];\n }\n})(({\n theme,\n ownerState\n}) => {\n const color = getPath(theme, `palette.${transformDeprecatedColors(ownerState.color)}`) || ownerState.color;\n return _extends({}, ownerState.underline === 'none' && {\n textDecoration: 'none'\n }, ownerState.underline === 'hover' && {\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline'\n }\n }, ownerState.underline === 'always' && {\n textDecoration: 'underline',\n textDecorationColor: color !== 'inherit' ? alpha(color, 0.4) : undefined,\n '&:hover': {\n textDecorationColor: 'inherit'\n }\n }, ownerState.component === 'button' && {\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n [`&.${linkClasses.focusVisible}`]: {\n outline: 'auto'\n }\n });\n});\nconst Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiLink'\n });\n\n const {\n className,\n color = 'primary',\n component = 'a',\n onBlur,\n onFocus,\n TypographyClasses,\n underline = 'always',\n variant = 'inherit'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n const handlerRef = useForkRef(ref, focusVisibleRef);\n\n const handleBlur = event => {\n handleBlurVisible(event);\n\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleFocus = event => {\n handleFocusVisible(event);\n\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const ownerState = _extends({}, props, {\n color,\n component,\n focusVisible,\n underline,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(LinkRoot, _extends({\n className: clsx(classes.root, className),\n classes: TypographyClasses,\n color: color,\n component: component,\n onBlur: handleBlur,\n onFocus: handleFocus,\n ref: handlerRef,\n ownerState: ownerState,\n variant: variant\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the link.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .any,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * `classes` prop applied to the [`Typography`](/api/typography/) element.\n */\n TypographyClasses: PropTypes.object,\n\n /**\n * Controls when the link should have an underline.\n * @default 'always'\n */\n underline: PropTypes.oneOf(['always', 'hover', 'none']),\n\n /**\n * Applies the theme typography styles.\n * @default 'inherit'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['body1', 'body2', 'button', 'caption', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'inherit', 'overline', 'subtitle1', 'subtitle2']), PropTypes.string])\n} : void 0;\nexport default Link;"],"names":["ListBuckets","React","BucketDetails","BrowserHandler","AddBucket","connector","connect","state","open","system","sidebarOpen","setMenuOpen","withRouter","history","path","children","routerProps","Suspense","fallback","component","to","withStyles","theme","createStyles","pageContentStyles","classes","className","contentSpacer","container","item","xs","Copyright","Typography","variant","color","align","Link","href","Date","getFullYear","PageLayout","Box","sx","display","alignItems","justifyContent","height","textAlign","margin","flexFlow","fontSize","fontStyle","fontWeight","mt","getLinkUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","colorTransformations","primary","textPrimary","secondary","textSecondary","error","LinkRoot","styled","name","overridesResolver","props","styles","ownerState","root","capitalize","underline","button","getPath","transformDeprecatedColors","_extends","textDecoration","textDecorationColor","alpha","undefined","position","WebkitTapHighlightColor","backgroundColor","outline","border","borderRadius","padding","cursor","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","linkClasses","inProps","ref","useThemeProps","onBlur","onFocus","TypographyClasses","other","_objectWithoutPropertiesLoose","useIsFocusVisible","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","focusVisibleRef","focusVisible","setFocusVisible","handlerRef","useForkRef","slots","composeClasses","useUtilityClasses","_jsx","clsx","event","current"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/701.1ac9f080.chunk.js","mappings":"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","sources":["screens/Console/Buckets/Buckets.tsx","screens/Console/Common/Layout/PageLayout.tsx","common/Copyright.tsx","screens/NotFoundPage.tsx","../node_modules/@mui/material/Link/linkClasses.js","../node_modules/@mui/material/Link/Link.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, { Suspense } from \"react\";\nimport history from \"../../../history\";\nimport { Redirect, Route, Router, Switch, withRouter } from \"react-router-dom\";\nimport { connect } from \"react-redux\";\nimport { AppState } from \"../../../store\";\nimport { setMenuOpen } from \"../../../actions\";\nimport NotFoundPage from \"../../NotFoundPage\";\nimport LoadingComponent from \"../../../common/LoadingComponent\";\n\nconst ListBuckets = React.lazy(() => import(\"./ListBuckets/ListBuckets\"));\nconst BucketDetails = React.lazy(() => import(\"./BucketDetails/BucketDetails\"));\nconst BrowserHandler = React.lazy(\n () => import(\"./BucketDetails/BrowserHandler\")\n);\nconst AddBucket = React.lazy(() => import(\"./ListBuckets/AddBucket\"));\n\nconst mapState = (state: AppState) => ({\n open: state.system.sidebarOpen,\n});\n\nconst connector = connect(mapState, { setMenuOpen });\n\nconst Buckets = () => {\n return (\n \n \n (\n }>\n \n \n )}\n />\n (\n }>\n \n \n )}\n />\n (\n }>\n \n \n )}\n />\n (\n }>\n \n \n )}\n />\n (\n }>\n \n \n )}\n />\n }\n />\n (\n }>\n \n \n )}\n />\n (\n }>\n \n \n )}\n />\n \n \n );\n};\n\nexport default withRouter(connector(Buckets));\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 Typography from \"@mui/material/Typography\";\nimport Link from \"@mui/material/Link\";\n\nexport default function Copyright() {\n return (\n \n {\"Copyright © \"}\n \n MinIO\n {\" \"}\n {new Date().getFullYear()}\n {\".\"}\n \n );\n}\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Copyright from \"../common/Copyright\";\nimport PageLayout from \"./Console/Common/Layout/PageLayout\";\n\nconst NotFound: React.FC = () => {\n return (\n \n \n \n 404 Error\n \n \n Sorry, the page could not be found.\n \n \n \n \n \n \n );\n};\n\nexport default NotFound;\n","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getLinkUtilityClass(slot) {\n return generateUtilityClass('MuiLink', slot);\n}\nconst linkClasses = generateUtilityClasses('MuiLink', ['root', 'underlineNone', 'underlineHover', 'underlineAlways', 'button', 'focusVisible']);\nexport default linkClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"color\", \"component\", \"onBlur\", \"onFocus\", \"TypographyClasses\", \"underline\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { elementTypeAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha, getPath } from '@mui/system';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport useForkRef from '../utils/useForkRef';\nimport Typography from '../Typography';\nimport linkClasses, { getLinkUtilityClass } from './linkClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst colorTransformations = {\n primary: 'primary.main',\n textPrimary: 'text.primary',\n secondary: 'secondary.main',\n textSecondary: 'text.secondary',\n error: 'error.main'\n};\n\nconst transformDeprecatedColors = color => {\n return colorTransformations[color] || color;\n};\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n component,\n focusVisible,\n underline\n } = ownerState;\n const slots = {\n root: ['root', `underline${capitalize(underline)}`, component === 'button' && 'button', focusVisible && 'focusVisible']\n };\n return composeClasses(slots, getLinkUtilityClass, classes);\n};\n\nconst LinkRoot = styled(Typography, {\n name: 'MuiLink',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`underline${capitalize(ownerState.underline)}`], ownerState.component === 'button' && styles.button];\n }\n})(({\n theme,\n ownerState\n}) => {\n const color = getPath(theme, `palette.${transformDeprecatedColors(ownerState.color)}`) || ownerState.color;\n return _extends({}, ownerState.underline === 'none' && {\n textDecoration: 'none'\n }, ownerState.underline === 'hover' && {\n textDecoration: 'none',\n '&:hover': {\n textDecoration: 'underline'\n }\n }, ownerState.underline === 'always' && {\n textDecoration: 'underline',\n textDecorationColor: color !== 'inherit' ? alpha(color, 0.4) : undefined,\n '&:hover': {\n textDecorationColor: 'inherit'\n }\n }, ownerState.component === 'button' && {\n position: 'relative',\n WebkitTapHighlightColor: 'transparent',\n backgroundColor: 'transparent',\n // Reset default value\n // We disable the focus ring for mouse, touch and keyboard users.\n outline: 0,\n border: 0,\n margin: 0,\n // Remove the margin in Safari\n borderRadius: 0,\n padding: 0,\n // Remove the padding in Firefox\n cursor: 'pointer',\n userSelect: 'none',\n verticalAlign: 'middle',\n MozAppearance: 'none',\n // Reset\n WebkitAppearance: 'none',\n // Reset\n '&::-moz-focus-inner': {\n borderStyle: 'none' // Remove Firefox dotted outline.\n\n },\n [`&.${linkClasses.focusVisible}`]: {\n outline: 'auto'\n }\n });\n});\nconst Link = /*#__PURE__*/React.forwardRef(function Link(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiLink'\n });\n\n const {\n className,\n color = 'primary',\n component = 'a',\n onBlur,\n onFocus,\n TypographyClasses,\n underline = 'always',\n variant = 'inherit'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n const [focusVisible, setFocusVisible] = React.useState(false);\n const handlerRef = useForkRef(ref, focusVisibleRef);\n\n const handleBlur = event => {\n handleBlurVisible(event);\n\n if (isFocusVisibleRef.current === false) {\n setFocusVisible(false);\n }\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const handleFocus = event => {\n handleFocusVisible(event);\n\n if (isFocusVisibleRef.current === true) {\n setFocusVisible(true);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const ownerState = _extends({}, props, {\n color,\n component,\n focusVisible,\n underline,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(LinkRoot, _extends({\n className: clsx(classes.root, className),\n classes: TypographyClasses,\n color: color,\n component: component,\n onBlur: handleBlur,\n onFocus: handleFocus,\n ref: handlerRef,\n ownerState: ownerState,\n variant: variant\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Link.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The color of the link.\n * @default 'primary'\n */\n color: PropTypes\n /* @typescript-to-proptypes-ignore */\n .any,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: elementTypeAcceptingRef,\n\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * `classes` prop applied to the [`Typography`](/api/typography/) element.\n */\n TypographyClasses: PropTypes.object,\n\n /**\n * Controls when the link should have an underline.\n * @default 'always'\n */\n underline: PropTypes.oneOf(['always', 'hover', 'none']),\n\n /**\n * Applies the theme typography styles.\n * @default 'inherit'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['body1', 'body2', 'button', 'caption', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'inherit', 'overline', 'subtitle1', 'subtitle2']), PropTypes.string])\n} : void 0;\nexport default Link;"],"names":["ListBuckets","React","BucketDetails","BrowserHandler","AddBucket","connector","connect","state","open","system","sidebarOpen","setMenuOpen","withRouter","history","path","children","routerProps","Suspense","fallback","component","to","withStyles","theme","createStyles","pageContentStyles","classes","className","contentSpacer","container","item","xs","Copyright","Typography","variant","color","align","Link","href","Date","getFullYear","PageLayout","Box","sx","display","alignItems","justifyContent","height","textAlign","margin","flexFlow","fontSize","fontStyle","fontWeight","mt","getLinkUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","colorTransformations","primary","textPrimary","secondary","textSecondary","error","LinkRoot","styled","name","overridesResolver","props","styles","ownerState","root","capitalize","underline","button","getPath","transformDeprecatedColors","_extends","textDecoration","textDecorationColor","alpha","undefined","position","WebkitTapHighlightColor","backgroundColor","outline","border","borderRadius","padding","cursor","userSelect","verticalAlign","MozAppearance","WebkitAppearance","borderStyle","linkClasses","inProps","ref","useThemeProps","onBlur","onFocus","TypographyClasses","other","_objectWithoutPropertiesLoose","useIsFocusVisible","isFocusVisibleRef","handleBlurVisible","handleFocusVisible","focusVisibleRef","focusVisible","setFocusVisible","handlerRef","useForkRef","slots","composeClasses","useUtilityClasses","_jsx","clsx","event","current"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/701.cf1bff16.chunk.js b/portal-ui/build/static/js/701.cf1bff16.chunk.js deleted file mode 100644 index 43bc7625e..000000000 --- a/portal-ui/build/static/js/701.cf1bff16.chunk.js +++ /dev/null @@ -1,2 +0,0 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[701],{60701:function(e,n,r){r.r(n);var t=r(1413),o=r(72791),i=r(62666),c=r(79271),s=r(60364),a=r(42649),u=r(50099),l=r(7241),d=r(80184),f=o.lazy((function(){return Promise.all([r.e(3772),r.e(5171),r.e(1520),r.e(1401),r.e(8354),r.e(9086),r.e(9467)]).then(r.bind(r,89467))})),h=o.lazy((function(){return Promise.all([r.e(5561),r.e(6895)]).then(r.bind(r,66895))})),x=o.lazy((function(){return Promise.all([r.e(3772),r.e(5171),r.e(2442),r.e(2426),r.e(1520),r.e(3801),r.e(6431),r.e(1918),r.e(7757),r.e(1401),r.e(592),r.e(2983),r.e(6233)]).then(r.bind(r,56233))})),p=o.lazy((function(){return Promise.all([r.e(1520),r.e(5588)]).then(r.bind(r,45588))})),m=(0,s.$j)((function(e){return{open:e.system.sidebarOpen}}),{setMenuOpen:a.gG});n.default=(0,c.EN)(m((function(){return(0,d.jsx)(c.F0,{history:i.Z,children:(0,d.jsxs)(c.rs,{children:[(0,d.jsx)(c.AW,{path:"/add-bucket",children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(p,{})})}}),(0,d.jsx)(c.AW,{path:"/buckets/:bucketName/admin/*",children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(h,(0,t.Z)({},e))})}}),(0,d.jsx)(c.AW,{path:"/buckets/:bucketName/admin",children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(h,(0,t.Z)({},e))})}}),(0,d.jsx)(c.AW,{path:"/buckets/:bucketName/browse/:subpaths+",children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(x,(0,t.Z)({},e))})}}),(0,d.jsx)(c.AW,{path:"/buckets/:bucketName/browse",children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(x,(0,t.Z)({},e))})}}),(0,d.jsx)(c.AW,{path:"/buckets/:bucketName",component:function(){return(0,d.jsx)(c.l_,{to:"/buckets"})}}),(0,d.jsx)(c.AW,{path:"/",children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(f,(0,t.Z)({},e))})}}),(0,d.jsx)(c.AW,{children:function(e){return(0,d.jsx)(o.Suspense,{fallback:(0,d.jsx)(l.Z,{}),children:(0,d.jsx)(u.Z,{})})}})]})})})))},74794:function(e,n,r){var t=r(1413),o=(r(72791),r(61889)),i=r(11135),c=r(25787),s=r(23814),a=r(80184);n.Z=(0,c.Z)((function(e){return(0,i.Z)((0,t.Z)({},s.Bw))}))((function(e){var n=e.classes,r=e.className,t=void 0===r?"":r,i=e.children;return(0,a.jsx)("div",{className:n.contentSpacer,children:(0,a.jsx)(o.ZP,{container:!0,children:(0,a.jsx)(o.ZP,{item:!0,xs:12,className:t,children:i})})})}))},50099:function(e,n,r){r.d(n,{Z:function(){return u}});r(72791);var t=r(64554),o=r(20890),i=r(23060),c=r(80184);function s(){return(0,c.jsxs)(o.Z,{variant:"body2",color:"textSecondary",align:"center",children:["Copyright \xa9 ",(0,c.jsx)(i.Z,{color:"inherit",href:"https://min.io/?ref=con",children:"MinIO"})," ",(new Date).getFullYear(),"."]})}var a=r(74794),u=function(){return(0,c.jsx)(a.Z,{children:(0,c.jsxs)(t.Z,{sx:{display:"flex",alignItems:"center",justifyContent:"center",height:"100%",textAlign:"center",margin:"auto",flexFlow:"column"},children:[(0,c.jsx)(t.Z,{sx:{fontSize:"110%",margin:"0 0 0.25rem",color:"#909090"},children:"404 Error"}),(0,c.jsx)(t.Z,{sx:{fontStyle:"normal",fontSize:"clamp(2rem,calc(2rem + 1.2vw),3rem)",fontWeight:700},children:"Sorry, the page could not be found."}),(0,c.jsx)(t.Z,{mt:5,children:(0,c.jsx)(s,{})})]})})}},23060:function(e,n,r){r.d(n,{Z:function(){return w}});var t=r(70885),o=r(4942),i=r(63366),c=r(87462),s=r(72791),a=r(28182),u=r(90767),l=r(18529),d=r(12065),f=r(14036),h=r(47630),x=r(93736),p=r(23031),m=r(42071),b=r(20890),j=r(95159);function Z(e){return(0,j.Z)("MuiLink",e)}var v=(0,r(30208).Z)("MuiLink",["root","underlineNone","underlineHover","underlineAlways","button","focusVisible"]),k=r(80184),y=["className","color","component","onBlur","onFocus","TypographyClasses","underline","variant"],S={primary:"primary.main",textPrimary:"text.primary",secondary:"secondary.main",textSecondary:"text.secondary",error:"error.main"},g=(0,h.ZP)(b.Z,{name:"MuiLink",slot:"Root",overridesResolver:function(e,n){var r=e.ownerState;return[n.root,n["underline".concat((0,f.Z)(r.underline))],"button"===r.component&&n.button]}})((function(e){var n=e.theme,r=e.ownerState,t=(0,l.D)(n,"palette.".concat(function(e){return S[e]||e}(r.color)))||r.color;return(0,c.Z)({},"none"===r.underline&&{textDecoration:"none"},"hover"===r.underline&&{textDecoration:"none","&:hover":{textDecoration:"underline"}},"always"===r.underline&&{textDecoration:"underline",textDecorationColor:"inherit"!==t?(0,d.Fq)(t,.4):void 0,"&:hover":{textDecorationColor:"inherit"}},"button"===r.component&&(0,o.Z)({position:"relative",WebkitTapHighlightColor:"transparent",backgroundColor:"transparent",outline:0,border:0,margin:0,borderRadius:0,padding:0,cursor:"pointer",userSelect:"none",verticalAlign:"middle",MozAppearance:"none",WebkitAppearance:"none","&::-moz-focus-inner":{borderStyle:"none"}},"&.".concat(v.focusVisible),{outline:"auto"}))})),w=s.forwardRef((function(e,n){var r=(0,x.Z)({props:e,name:"MuiLink"}),o=r.className,l=r.color,d=void 0===l?"primary":l,h=r.component,b=void 0===h?"a":h,j=r.onBlur,v=r.onFocus,S=r.TypographyClasses,w=r.underline,A=void 0===w?"always":w,N=r.variant,W=void 0===N?"inherit":N,C=(0,i.Z)(r,y),F=(0,p.Z)(),z=F.isFocusVisibleRef,D=F.onBlur,P=F.onFocus,M=F.ref,V=s.useState(!1),B=(0,t.Z)(V,2),R=B[0],L=B[1],O=(0,m.Z)(n,M),T=(0,c.Z)({},r,{color:d,component:b,focusVisible:R,underline:A,variant:W}),_=function(e){var n=e.classes,r=e.component,t=e.focusVisible,o=e.underline,i={root:["root","underline".concat((0,f.Z)(o)),"button"===r&&"button",t&&"focusVisible"]};return(0,u.Z)(i,Z,n)}(T);return(0,k.jsx)(g,(0,c.Z)({className:(0,a.Z)(_.root,o),classes:S,color:d,component:b,onBlur:function(e){D(e),!1===z.current&&L(!1),j&&j(e)},onFocus:function(e){P(e),!0===z.current&&L(!0),v&&v(e)},ref:O,ownerState:T,variant:W},C))}))}}]); -//# sourceMappingURL=701.cf1bff16.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7015.86fd97fc.chunk.js b/portal-ui/build/static/js/7015.bf19d426.chunk.js similarity index 97% rename from portal-ui/build/static/js/7015.86fd97fc.chunk.js rename to portal-ui/build/static/js/7015.bf19d426.chunk.js index 0d6427a48..e3ffa74a2 100644 --- a/portal-ui/build/static/js/7015.86fd97fc.chunk.js +++ b/portal-ui/build/static/js/7015.bf19d426.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7015],{37798:function(e,t,n){n.r(t),n.d(t,{default:function(){return K}});var i=n(1413),r=n(72791),a=n(26181),s=n.n(a),l=n(11135),o=n(25787),c=n(56028),d=n(61889),u=n(77196),m=n(63466),p=n(85531),h=n(78029),y=n.n(h),x=n(74833),f=n(23814),g=n(80184),j=(0,o.Z)((function(e){return(0,l.Z)({container:{display:"flex",flexFlow:"column",padding:"20px 0 8px 0"},inputWithCopy:{"& .MuiInputBase-root ":{width:"100%",background:"#FBFAFA","& .MuiInputBase-input":{height:".8rem"},"& .MuiInputAdornment-positionEnd":{marginRight:".5rem","& .MuiButtonBase-root":{height:"2rem"}}},"& .MuiButtonBase-root .min-icon":{width:".8rem",height:".8rem"}},inputLabel:(0,i.Z)((0,i.Z)({},f.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var t=e.label,n=void 0===t?"":t,i=e.value,r=void 0===i?"":i,a=e.classes,s=void 0===a?{}:a;return(0,g.jsxs)("div",{className:s.container,children:[(0,g.jsxs)("div",{className:s.inputLabel,children:[n,":"]}),(0,g.jsx)("div",{className:s.inputWithCopy,children:(0,g.jsx)(u.Z,{value:r,readOnly:!0,endAdornment:(0,g.jsx)(m.Z,{position:"end",children:(0,g.jsx)(y(),{text:r,children:(0,g.jsx)(p.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,g.jsx)(x.TI,{})})})})})})]})})),v=n(89357),w=n(40603),b=function(e,t){var n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(t)),n.setAttribute("download",e),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)},K=(0,o.Z)((function(e){return(0,l.Z)({warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}},credentialTitle:{padding:".8rem 0 0 0",fontWeight:600,fontSize:".9rem"},buttonContainer:{textAlign:"right",marginTop:"1rem"},credentialsPanel:{overflowY:"auto",maxHeight:350},promptTitle:{display:"flex",alignItems:"center"},buttonSpacer:{marginRight:".9rem"},promptIcon:{marginRight:".1rem",display:"flex",alignItems:"center",height:"2rem",width:"2rem"}})}))((function(e){var t=e.classes,n=e.newServiceAccount,a=e.open,l=e.closeModal,o=e.entity;if(!n)return null;var u=s()(n,"console",null),m=s()(n,"idp",!1);return(0,g.jsx)(c.Z,{modalOpen:a,onClose:function(){l()},title:(0,g.jsx)("div",{className:t.promptTitle,children:(0,g.jsxs)("div",{children:["New ",o," Created"]})}),titleIcon:(0,g.jsx)(x.tV,{}),children:(0,g.jsxs)(d.ZP,{container:!0,children:[(0,g.jsxs)(d.ZP,{item:!0,xs:12,className:t.formScrollable,children:["A new ",o," has been created with the following details:",!m&&u&&(0,g.jsx)(r.Fragment,{children:(0,g.jsxs)(d.ZP,{item:!0,xs:12,className:t.credentialsPanel,children:[(0,g.jsx)("div",{className:t.credentialTitle,children:"Console Credentials"}),Array.isArray(u)&&u.map((function(e,t){return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(j,{label:"Access Key",value:e.accessKey}),(0,g.jsx)(j,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(u)&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(j,{label:"Access Key",value:u.accessKey}),(0,g.jsx)(j,{label:"Secret Key",value:u.secretKey})]})]})}),m?(0,g.jsx)("div",{className:t.warningBlock,children:"Please Login via the configured external identity provider."}):(0,g.jsxs)("div",{className:t.warningBlock,children:[(0,g.jsx)(v.Z,{}),(0,g.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,g.jsx)(d.ZP,{item:!0,xs:12,className:t.buttonContainer,children:!m&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(w.Z,{id:"download-button",tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",text:"Download for import",className:t.buttonSpacer,onClick:function(){var e={};u&&(e=Array.isArray(u)?u.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:u.url,accessKey:u.accessKey,secretKey:u.secretKey,api:"s3v4",path:"auto"});b("credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,g.jsx)(x._8,{}),variant:"contained",color:"primary"}),Array.isArray(u)&&u.length>1&&(0,g.jsx)(w.Z,{id:"download-all-button",tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",text:"Download all access credentials",className:t.buttonSpacer,onClick:function(){var e={};u&&(e=u.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));b("all_credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,g.jsx)(x._8,{}),variant:"contained",color:"primary"})]})})]})})}))}}]); -//# sourceMappingURL=7015.86fd97fc.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7015],{37798:function(e,t,n){n.r(t),n.d(t,{default:function(){return K}});var i=n(1413),r=n(72791),a=n(26181),s=n.n(a),l=n(11135),o=n(25787),c=n(56028),d=n(61889),u=n(77196),m=n(63466),p=n(85531),h=n(78029),y=n.n(h),x=n(13048),f=n(23814),g=n(80184),j=(0,o.Z)((function(e){return(0,l.Z)({container:{display:"flex",flexFlow:"column",padding:"20px 0 8px 0"},inputWithCopy:{"& .MuiInputBase-root ":{width:"100%",background:"#FBFAFA","& .MuiInputBase-input":{height:".8rem"},"& .MuiInputAdornment-positionEnd":{marginRight:".5rem","& .MuiButtonBase-root":{height:"2rem"}}},"& .MuiButtonBase-root .min-icon":{width:".8rem",height:".8rem"}},inputLabel:(0,i.Z)((0,i.Z)({},f.YI.inputLabel),{},{fontSize:".8rem"})})}))((function(e){var t=e.label,n=void 0===t?"":t,i=e.value,r=void 0===i?"":i,a=e.classes,s=void 0===a?{}:a;return(0,g.jsxs)("div",{className:s.container,children:[(0,g.jsxs)("div",{className:s.inputLabel,children:[n,":"]}),(0,g.jsx)("div",{className:s.inputWithCopy,children:(0,g.jsx)(u.Z,{value:r,readOnly:!0,endAdornment:(0,g.jsx)(m.Z,{position:"end",children:(0,g.jsx)(y(),{text:r,children:(0,g.jsx)(p.Z,{"aria-label":"copy",tooltip:"Copy",onClick:function(){},onMouseDown:function(){},edge:"end",children:(0,g.jsx)(x.TI,{})})})})})})]})})),v=n(89357),w=n(40603),b=function(e,t){var n=document.createElement("a");n.setAttribute("href","data:text/plain;charset=utf-8,"+encodeURIComponent(t)),n.setAttribute("download",e),n.style.display="none",document.body.appendChild(n),n.click(),document.body.removeChild(n)},K=(0,o.Z)((function(e){return(0,l.Z)({warningBlock:{color:"red",fontSize:".85rem",margin:".5rem 0 .5rem 0",display:"flex",alignItems:"center","& svg ":{marginRight:".3rem",height:16,width:16}},credentialTitle:{padding:".8rem 0 0 0",fontWeight:600,fontSize:".9rem"},buttonContainer:{textAlign:"right",marginTop:"1rem"},credentialsPanel:{overflowY:"auto",maxHeight:350},promptTitle:{display:"flex",alignItems:"center"},buttonSpacer:{marginRight:".9rem"},promptIcon:{marginRight:".1rem",display:"flex",alignItems:"center",height:"2rem",width:"2rem"}})}))((function(e){var t=e.classes,n=e.newServiceAccount,a=e.open,l=e.closeModal,o=e.entity;if(!n)return null;var u=s()(n,"console",null),m=s()(n,"idp",!1);return(0,g.jsx)(c.Z,{modalOpen:a,onClose:function(){l()},title:(0,g.jsx)("div",{className:t.promptTitle,children:(0,g.jsxs)("div",{children:["New ",o," Created"]})}),titleIcon:(0,g.jsx)(x.tV,{}),children:(0,g.jsxs)(d.ZP,{container:!0,children:[(0,g.jsxs)(d.ZP,{item:!0,xs:12,className:t.formScrollable,children:["A new ",o," has been created with the following details:",!m&&u&&(0,g.jsx)(r.Fragment,{children:(0,g.jsxs)(d.ZP,{item:!0,xs:12,className:t.credentialsPanel,children:[(0,g.jsx)("div",{className:t.credentialTitle,children:"Console Credentials"}),Array.isArray(u)&&u.map((function(e,t){return(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(j,{label:"Access Key",value:e.accessKey}),(0,g.jsx)(j,{label:"Secret Key",value:e.secretKey})]})})),!Array.isArray(u)&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(j,{label:"Access Key",value:u.accessKey}),(0,g.jsx)(j,{label:"Secret Key",value:u.secretKey})]})]})}),m?(0,g.jsx)("div",{className:t.warningBlock,children:"Please Login via the configured external identity provider."}):(0,g.jsxs)("div",{className:t.warningBlock,children:[(0,g.jsx)(v.Z,{}),(0,g.jsx)("span",{children:"Write these down, as this is the only time the secret will be displayed."})]})]}),(0,g.jsx)(d.ZP,{item:!0,xs:12,className:t.buttonContainer,children:!m&&(0,g.jsxs)(g.Fragment,{children:[(0,g.jsx)(w.Z,{id:"download-button",tooltip:"Download credentials in a JSON file formatted for import using mc alias import. This will only include the default login credentials.",text:"Download for import",className:t.buttonSpacer,onClick:function(){var e={};u&&(e=Array.isArray(u)?u.map((function(e){return{url:e.url,accessKey:e.accessKey,secretKey:e.secretKey,api:"s3v4",path:"auto"}}))[0]:{url:u.url,accessKey:u.accessKey,secretKey:u.secretKey,api:"s3v4",path:"auto"});b("credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,g.jsx)(x._8,{}),variant:"contained",color:"primary"}),Array.isArray(u)&&u.length>1&&(0,g.jsx)(w.Z,{id:"download-all-button",tooltip:"Download all access credentials to a JSON file. NOTE: This file is not formatted for import using mc alias import. If you plan to import this alias from the file, please use the Download for Import button. ",text:"Download all access credentials",className:t.buttonSpacer,onClick:function(){var e={};u&&(e=u.map((function(e){return{accessKey:e.accessKey,secretKey:e.secretKey}})));b("all_credentials.json",JSON.stringify((0,i.Z)({},e)))},icon:(0,g.jsx)(x._8,{}),variant:"contained",color:"primary"})]})})]})})}))}}]); +//# sourceMappingURL=7015.bf19d426.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7015.86fd97fc.chunk.js.map b/portal-ui/build/static/js/7015.bf19d426.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/7015.86fd97fc.chunk.js.map rename to portal-ui/build/static/js/7015.bf19d426.chunk.js.map index 3270ffb1d..6bbb2eaaa 100644 --- a/portal-ui/build/static/js/7015.86fd97fc.chunk.js.map +++ b/portal-ui/build/static/js/7015.bf19d426.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/7015.86fd97fc.chunk.js","mappings":"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","sources":["screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n
    \n
    {label}:
    \n
    \n \n \n {}}\n onMouseDown={() => {}}\n edge=\"end\"\n >\n \n \n \n \n }\n />\n
    \n
    \n );\n};\n\nexport default withStyles(styles)(CredentialItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n promptIcon: {\n marginRight: \".1rem\",\n display: \"flex\",\n alignItems: \"center\",\n height: \"2rem\",\n width: \"2rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\n \"href\",\n \"data:text/plain;charset=utf-8,\" + encodeURIComponent(text)\n );\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n
    \n
    New {entity} Created
    \n
    \n }\n titleIcon={}\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n
    \n Console Credentials\n
    \n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n \n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n \n )}\n
    \n
    \n )}\n {idp ? (\n
    \n Please Login via the configured external identity provider.\n
    \n ) : (\n
    \n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
    \n )}\n
    \n \n {!idp && (\n <>\n {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n })\n );\n }}\n icon={}\n variant=\"contained\"\n color=\"primary\"\n />\n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n {\n let allCredentials = {};\n if (consoleCreds) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n })\n );\n }}\n icon={}\n variant=\"contained\"\n color=\"primary\"\n />\n )}\n \n )}\n \n
    \n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\n"],"names":["withStyles","theme","createStyles","container","display","flexFlow","padding","inputWithCopy","width","background","height","marginRight","inputLabel","fieldBasic","fontSize","label","value","classes","className","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","tooltip","onClick","onMouseDown","edge","download","filename","element","document","createElement","setAttribute","encodeURIComponent","style","body","appendChild","click","removeChild","warningBlock","color","margin","alignItems","credentialTitle","fontWeight","buttonContainer","textAlign","marginTop","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","promptIcon","newServiceAccount","open","closeModal","entity","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","title","titleIcon","Grid","item","xs","formScrollable","Array","isArray","map","credentialsPair","index","accessKey","secretKey","WarnIcon","RBIconButton","id","consoleExtras","itemMap","url","api","path","JSON","stringify","icon","variant","length","allCredentials"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/7015.bf19d426.chunk.js","mappings":"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","sources":["screens/Console/Common/CredentialsPrompt/CredentialItem.tsx","screens/Console/Common/CredentialsPrompt/CredentialsPrompt.tsx"],"sourcesContent":["// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport { InputAdornment, OutlinedInput } from \"@mui/material\";\nimport BoxIconButton from \"../BoxIconButton/BoxIconButton\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport CopyToClipboard from \"react-copy-to-clipboard\";\nimport { CopyIcon } from \"../../../../icons\";\nimport { fieldBasic } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n container: {\n display: \"flex\",\n flexFlow: \"column\",\n padding: \"20px 0 8px 0\",\n },\n inputWithCopy: {\n \"& .MuiInputBase-root \": {\n width: \"100%\",\n background: \"#FBFAFA\",\n \"& .MuiInputBase-input\": {\n height: \".8rem\",\n },\n \"& .MuiInputAdornment-positionEnd\": {\n marginRight: \".5rem\",\n \"& .MuiButtonBase-root\": {\n height: \"2rem\",\n },\n },\n },\n \"& .MuiButtonBase-root .min-icon\": {\n width: \".8rem\",\n height: \".8rem\",\n },\n },\n inputLabel: {\n ...fieldBasic.inputLabel,\n fontSize: \".8rem\",\n },\n });\n\nconst CredentialItem = ({\n label = \"\",\n value = \"\",\n classes = {},\n}: {\n label: string;\n value: string;\n classes: any;\n}) => {\n return (\n
    \n
    {label}:
    \n
    \n \n \n {}}\n onMouseDown={() => {}}\n edge=\"end\"\n >\n \n \n \n \n }\n />\n
    \n
    \n );\n};\n\nexport default withStyles(styles)(CredentialItem);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React from \"react\";\nimport get from \"lodash/get\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { NewServiceAccount } from \"./types\";\nimport ModalWrapper from \"../ModalWrapper/ModalWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport CredentialItem from \"./CredentialItem\";\nimport WarnIcon from \"../../../../icons/WarnIcon\";\nimport { DownloadIcon, ServiceAccountCredentialsIcon } from \"../../../../icons\";\n\nimport RBIconButton from \"../../Buckets/BucketDetails/SummaryItems/RBIconButton\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n warningBlock: {\n color: \"red\",\n fontSize: \".85rem\",\n margin: \".5rem 0 .5rem 0\",\n display: \"flex\",\n alignItems: \"center\",\n \"& svg \": {\n marginRight: \".3rem\",\n height: 16,\n width: 16,\n },\n },\n credentialTitle: {\n padding: \".8rem 0 0 0\",\n fontWeight: 600,\n fontSize: \".9rem\",\n },\n buttonContainer: {\n textAlign: \"right\",\n marginTop: \"1rem\",\n },\n credentialsPanel: {\n overflowY: \"auto\",\n maxHeight: 350,\n },\n promptTitle: {\n display: \"flex\",\n alignItems: \"center\",\n },\n buttonSpacer: {\n marginRight: \".9rem\",\n },\n promptIcon: {\n marginRight: \".1rem\",\n display: \"flex\",\n alignItems: \"center\",\n height: \"2rem\",\n width: \"2rem\",\n },\n });\n\ninterface ICredentialsPromptProps {\n classes: any;\n newServiceAccount: NewServiceAccount | null;\n open: boolean;\n entity: string;\n closeModal: () => void;\n}\n\nconst download = (filename: string, text: string) => {\n let element = document.createElement(\"a\");\n element.setAttribute(\n \"href\",\n \"data:text/plain;charset=utf-8,\" + encodeURIComponent(text)\n );\n element.setAttribute(\"download\", filename);\n\n element.style.display = \"none\";\n document.body.appendChild(element);\n\n element.click();\n document.body.removeChild(element);\n};\n\nconst CredentialsPrompt = ({\n classes,\n newServiceAccount,\n open,\n closeModal,\n entity,\n}: ICredentialsPromptProps) => {\n if (!newServiceAccount) {\n return null;\n }\n const consoleCreds = get(newServiceAccount, \"console\", null);\n const idp = get(newServiceAccount, \"idp\", false);\n\n return (\n {\n closeModal();\n }}\n title={\n
    \n
    New {entity} Created
    \n
    \n }\n titleIcon={}\n >\n \n \n A new {entity} has been created with the following details:\n {!idp && consoleCreds && (\n \n \n
    \n Console Credentials\n
    \n {Array.isArray(consoleCreds) &&\n consoleCreds.map((credentialsPair, index) => {\n return (\n <>\n \n \n \n );\n })}\n {!Array.isArray(consoleCreds) && (\n <>\n \n \n \n )}\n
    \n
    \n )}\n {idp ? (\n
    \n Please Login via the configured external identity provider.\n
    \n ) : (\n
    \n \n \n Write these down, as this is the only time the secret will be\n displayed.\n \n
    \n )}\n
    \n \n {!idp && (\n <>\n {\n let consoleExtras = {};\n\n if (consoleCreds) {\n if (!Array.isArray(consoleCreds)) {\n consoleExtras = {\n url: consoleCreds.url,\n accessKey: consoleCreds.accessKey,\n secretKey: consoleCreds.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n } else {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n url: itemMap.url,\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n api: \"s3v4\",\n path: \"auto\",\n };\n });\n consoleExtras = cCreds[0];\n }\n }\n\n download(\n \"credentials.json\",\n JSON.stringify({\n ...consoleExtras,\n })\n );\n }}\n icon={}\n variant=\"contained\"\n color=\"primary\"\n />\n\n {Array.isArray(consoleCreds) && consoleCreds.length > 1 && (\n {\n let allCredentials = {};\n if (consoleCreds) {\n const cCreds = consoleCreds.map((itemMap) => {\n return {\n accessKey: itemMap.accessKey,\n secretKey: itemMap.secretKey,\n };\n });\n allCredentials = cCreds;\n }\n download(\n \"all_credentials.json\",\n JSON.stringify({\n ...allCredentials,\n })\n );\n }}\n icon={}\n variant=\"contained\"\n color=\"primary\"\n />\n )}\n \n )}\n \n
    \n \n );\n};\n\nexport default withStyles(styles)(CredentialsPrompt);\n"],"names":["withStyles","theme","createStyles","container","display","flexFlow","padding","inputWithCopy","width","background","height","marginRight","inputLabel","fieldBasic","fontSize","label","value","classes","className","OutlinedInput","readOnly","endAdornment","InputAdornment","position","text","BoxIconButton","tooltip","onClick","onMouseDown","edge","download","filename","element","document","createElement","setAttribute","encodeURIComponent","style","body","appendChild","click","removeChild","warningBlock","color","margin","alignItems","credentialTitle","fontWeight","buttonContainer","textAlign","marginTop","credentialsPanel","overflowY","maxHeight","promptTitle","buttonSpacer","promptIcon","newServiceAccount","open","closeModal","entity","consoleCreds","get","idp","ModalWrapper","modalOpen","onClose","title","titleIcon","Grid","item","xs","formScrollable","Array","isArray","map","credentialsPair","index","accessKey","secretKey","WarnIcon","RBIconButton","id","consoleExtras","itemMap","url","api","path","JSON","stringify","icon","variant","length","allCredentials"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7045.9d14424c.chunk.js b/portal-ui/build/static/js/7045.1bb98475.chunk.js similarity index 98% rename from portal-ui/build/static/js/7045.9d14424c.chunk.js rename to portal-ui/build/static/js/7045.1bb98475.chunk.js index 819924679..1c4e5cdb2 100644 --- a/portal-ui/build/static/js/7045.9d14424c.chunk.js +++ b/portal-ui/build/static/js/7045.1bb98475.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7045],{84669:function(e,t,o){o(72791);var n=o(91523),r=o(11135),a=o(25787),l=o(74833),i=o(64554),s=o(80184);t.Z=(0,a.Z)((function(e){return(0,r.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var t=e.to,o=e.label,r=e.classes,a=e.className,c=e.executeOnClick;return(0,s.jsx)(i.Z,{sx:{display:"flex",alignItems:"center"},children:(0,s.jsx)(n.rU,{to:t,className:"".concat(r.link," ").concat(a||""),onClick:function(){c&&c()},children:(0,s.jsxs)("div",{className:r.iconBox,children:[(0,s.jsx)("div",{className:r.icon,children:(0,s.jsx)(l.xN,{})}),(0,s.jsx)("div",{className:r.label,children:o})]})})})}))},74794:function(e,t,o){var n=o(1413),r=(o(72791),o(61889)),a=o(11135),l=o(25787),i=o(23814),s=o(80184);t.Z=(0,l.Z)((function(e){return(0,a.Z)((0,n.Z)({},i.Bw))}))((function(e){var t=e.classes,o=e.className,n=void 0===o?"":o,a=e.children;return(0,s.jsx)("div",{className:t.contentSpacer,children:(0,s.jsx)(r.ZP,{container:!0,children:(0,s.jsx)(r.ZP,{item:!0,xs:12,className:n,children:a})})})}))},32291:function(e,t,o){var n=o(72791),r=o(60364),a=o(61889),l=o(11135),i=o(25787),s=o(20890),c=o(13400),p=o(95466),d=o(84683),m=o(3925),u=o(74833),g=o(80184),h={toggleList:m.kQ},f=(0,r.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),h);t.Z=f((0,i.Z)((function(e){return(0,l.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,o=e.label,r=e.actions,l=e.sidebarOpen,i=e.operatorMode,m=e.managerObjects,h=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,g.jsx)(n.Fragment,{}):(0,g.jsxs)(a.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,g.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!l&&(0,g.jsx)("div",{className:t.logo,children:i?(0,g.jsx)(p.Z,{}):(0,g.jsx)(d.Z,{})}),(0,g.jsx)(s.Z,{variant:"h4",className:t.labelStyle,children:o})]}),f&&(0,g.jsx)(a.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,g.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.rightMenu,children:[r&&r,m&&m.length>0&&(0,g.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,g.jsx)(u.gx,{})})]})]})})))},37045:function(e,t,o){o.r(t);var n=o(1413),r=o(72791),a=o(11135),l=o(25787),i=o(15514),s=o(23814),c=o(32291),p=o(62666),d=o(84669),m=o(74794),u=o(56087),g=o(80184),h=i.BR.filter((function(e){return""!==e.logo}));t.default=(0,l.Z)((function(e){return(0,a.Z)((0,n.Z)((0,n.Z)({},s.Je),s.fc))}))((function(e){var t=e.classes;return(0,g.jsxs)(r.Fragment,{children:[(0,g.jsx)(c.Z,{label:(0,g.jsx)(r.Fragment,{children:(0,g.jsx)(d.Z,{to:u.gA.NOTIFICATIONS_ENDPOINTS,label:"Notification Targets"})}),actions:(0,g.jsx)(r.Fragment,{})}),(0,g.jsx)(m.Z,{children:(0,g.jsx)("div",{className:t.iconContainer,children:h.map((function(e){return(0,g.jsxs)("button",{className:t.lambdaNotif,onClick:function(){p.Z.push("".concat(u.gA.NOTIFICATIONS_ENDPOINTS_ADD,"/").concat(e.actionTrigger))},children:[(0,g.jsx)("div",{className:t.lambdaNotifIcon,children:(0,g.jsx)("img",{src:e.logo,className:t.logoButton,alt:e.targetTitle})}),(0,g.jsx)("div",{className:t.lambdaNotifTitle,children:(0,g.jsx)("b",{children:e.targetTitle})})]},"icon-".concat(e.targetTitle))}))})})]})}))},15514:function(e,t,o){o.d(t,{BR:function(){return f},DD:function(){return b},dM:function(){return l},ee:function(){return a},fk:function(){return h},oj:function(){return T}});var n,r=o(4942),a="notify_postgres",l="notify_mysql",i="notify_kafka",s="notify_amqp",c="notify_mqtt",p="notify_redis",d="notify_nats",m="notify_elasticsearch",u="notify_webhook",g="notify_nsq",h=function(e){return e.map((function(e){return{service_name:"".concat(e.service,":").concat(e.account_id),status:e.status}}))},f=[{actionTrigger:a,targetTitle:"PostgreSQL",logo:"/postgres-logo.svg"},{actionTrigger:i,targetTitle:"Kafka",logo:"/kafka-logo.svg"},{actionTrigger:s,targetTitle:"AMQP",logo:"/amqp-logo.svg"},{actionTrigger:c,targetTitle:"MQTT",logo:"/mqtt-logo.svg"},{actionTrigger:p,targetTitle:"Redis",logo:"/redis-logo.svg"},{actionTrigger:d,targetTitle:"NATS",logo:"/nats-logo.svg"},{actionTrigger:l,targetTitle:"Mysql",logo:"/mysql-logo.svg"},{actionTrigger:m,targetTitle:"Elastic Search",logo:"/elasticsearch-logo.svg"},{actionTrigger:u,targetTitle:"Webhook",logo:"/webhooks-logo.svg"},{actionTrigger:g,targetTitle:"NSQ",logo:"/nsq-logo.svg"}],y=[{name:"queue-dir",label:"Queue Directory",required:!0,tooltip:"staging dir for undelivered messages e.g. '/home/events'",type:"string",placeholder:"Enter Queue Directory"},{name:"queue-limit",label:"Queue Limit",required:!1,tooltip:"maximum limit for undelivered messages, defaults to '10000'",type:"number",placeholder:"Enter Queue Limit"},{name:"comment",label:"Comment",required:!1,type:"comment",placeholder:"Enter custom notes if any"}],b=function(e){return e.filter((function(e){return""!==e.value}))},T=(n={},(0,r.Z)(n,i,[{name:"brokers",label:"Brokers",required:!0,tooltip:"Comma separated list of Kafka broker addresses",type:"string",placeholder:"Enter Brokers"},{name:"topic",label:"Topic",tooltip:"Kafka topic used for bucket notifications",type:"string",placeholder:"Enter Topic"},{name:"sasl_username",label:"SASL Username",tooltip:"Username for SASL/PLAIN or SASL/SCRAM authentication",type:"string",placeholder:"Enter SASL Username"},{name:"sasl_password",label:"SASL Password",tooltip:"Password for SASL/PLAIN or SASL/SCRAM authentication",type:"string",placeholder:"Enter SASL Password"},{name:"sasl_mechanism",label:"SASL Mechanism",tooltip:"SASL authentication mechanism, default 'PLAIN'",type:"string"},{name:"tls_client_auth",label:"TLS Client Auth",tooltip:"Client Auth determines the Kafka server's policy for TLS client auth",type:"string",placeholder:"Enter TLS Client Auth"},{name:"sasl",label:"SASL",tooltip:"Set to 'on' to enable SASL authentication",type:"on|off"},{name:"tls",label:"TLS",tooltip:"Set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS skip verify",tooltip:'Trust server TLS without verification, defaults to "on" (verify)',type:"on|off"},{name:"client_tls_cert",label:"client TLS cert",tooltip:"Path to client certificate for mTLS auth",type:"path",placeholder:"Enter TLS Client Cert"},{name:"client_tls_key",label:"client TLS key",tooltip:"Path to client key for mTLS auth",type:"path",placeholder:"Enter TLS Client Key"},{name:"version",label:"Version",tooltip:"Specify the version of the Kafka cluster e.g '2.2.0'",type:"string",placeholder:"Enter Kafka Version"}].concat(y)),(0,r.Z)(n,s,[{name:"url",required:!0,label:"URL",tooltip:"AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672`",type:"url"},{name:"exchange",label:"Exchange",tooltip:"Name of the AMQP exchange",type:"string",placeholder:"Enter Exchange"},{name:"exchange_type",label:"Exchange Type",tooltip:"AMQP exchange type",type:"string",placeholder:"Enter Exchange Type"},{name:"routing_key",label:"Routing Key",tooltip:"Routing key for publishing",type:"string",placeholder:"Enter Routing Key"},{name:"mandatory",label:"Mandatory",tooltip:"Quietly ignore undelivered messages when set to 'off', default is 'on'",type:"on|off"},{name:"durable",label:"Durable",tooltip:"Persist queue across broker restarts when set to 'on', default is 'off'",type:"on|off"},{name:"no_wait",label:"No Wait",tooltip:"Non-blocking message delivery when set to 'on', default is 'off'",type:"on|off"},{name:"internal",label:"Internal",tooltip:"Set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges",type:"on|off"},{name:"auto_deleted",label:"Auto Deleted",tooltip:"Auto delete queue when set to 'on', when there are no consumers",type:"on|off"},{name:"delivery_mode",label:"Delivery Mode",tooltip:"Set to '1' for non-persistent or '2' for persistent queue",type:"number",placeholder:"Enter Delivery Mode"}].concat(y)),(0,r.Z)(n,p,[{name:"address",required:!0,label:"Address",tooltip:"Redis server's address. For example: `localhost:6379`",type:"address",placeholder:"Enter Address"},{name:"key",required:!0,label:"Key",tooltip:"Redis key to store/update events, key is auto-created",type:"string",placeholder:"Enter Key"},{name:"password",label:"Password",tooltip:"Redis server password",type:"string",placeholder:"Enter Password"}].concat(y)),(0,r.Z)(n,c,[{name:"broker",required:!0,label:"Broker",tooltip:"MQTT server endpoint e.g. `tcp://localhost:1883`",type:"uri",placeholder:"Enter Brokers"},{name:"topic",required:!0,label:"Topic",tooltip:"name of the MQTT topic to publish",type:"string",placeholder:"Enter Topic"},{name:"username",label:"Username",tooltip:"MQTT username",type:"string",placeholder:"Enter Username"},{name:"password",label:"Password",tooltip:"MQTT password",type:"string",placeholder:"Enter Password"},{name:"qos",label:"QOS",tooltip:"Set the quality of service priority, defaults to '0'",type:"number",placeholder:"Enter QOS"},{name:"keep_alive_interval",label:"Keep Alive Interval",tooltip:"Keep-alive interval for MQTT connections in s,m,h,d",type:"duration",placeholder:"Enter Keep Alive Internal"},{name:"reconnect_interval",label:"Reconnect Interval",tooltip:"Reconnect interval for MQTT connections in s,m,h,d",type:"duration",placeholder:"Enter Reconnect Interval"}].concat(y)),(0,r.Z)(n,d,[{name:"address",required:!0,label:"Address",tooltip:"NATS server address e.g. '0.0.0.0:4222'",type:"address",placeholder:"Enter Address"},{name:"subject",required:!0,label:"Subject",tooltip:"NATS subscription subject",type:"string",placeholder:"Enter NATS Subject"},{name:"username",label:"Username",tooltip:"NATS username",type:"string",placeholder:"Enter NATS Username"},{name:"password",label:"Password",tooltip:"NATS password",type:"string",placeholder:"Enter NATS password"},{name:"token",label:"Token",tooltip:"NATS token",type:"string",placeholder:"Enter NATS token"},{name:"tls",label:"TLS",tooltip:"Set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS Skip Verify",tooltip:'Trust server TLS without verification, defaults to "on" (verify)',type:"on|off"},{name:"ping_interval",label:"Ping Interval",tooltip:"Client ping commands interval in s,m,h,d. Disabled by default",type:"duration",placeholder:"Enter Ping Interval"},{name:"streaming",label:"Streaming",tooltip:"Set to 'on', to use streaming NATS server",type:"on|off"},{name:"streaming_async",label:"Streaming async",tooltip:"Set to 'on', to enable asynchronous publish",type:"on|off"},{name:"streaming_max_pub_acks_in_flight",label:"Streaming max publish ACKS in flight",tooltip:"Number of messages to publish without waiting for ACKs",type:"number",placeholder:"Enter Streaming in flight value"},{name:"streaming_cluster_id",label:"Streaming Cluster ID",tooltip:"Unique ID for NATS streaming cluster",type:"string",placeholder:"Enter Streaming Cluster ID"},{name:"cert_authority",label:"Cert Authority",tooltip:"Path to certificate chain of the target NATS server",type:"string",placeholder:"Enter Cert Authority"},{name:"client_cert",label:"Client Cert",tooltip:"Client cert for NATS mTLS auth",type:"string",placeholder:"Enter Client Cert"},{name:"client_key",label:"Client Key",tooltip:"Client cert key for NATS mTLS auth",type:"string",placeholder:"Enter Client Key"}].concat(y)),(0,r.Z)(n,m,[{name:"url",required:!0,label:"URL",tooltip:"Elasticsearch server's address, with optional authentication info",type:"url",placeholder:"Enter URL"},{name:"index",required:!0,label:"Index",tooltip:"Elasticsearch index to store/update events, index is auto-created",type:"string",placeholder:"Enter Index"},{name:"format",required:!0,label:"Format",tooltip:"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'",type:"enum",placeholder:"Enter Format"}].concat(y)),(0,r.Z)(n,u,[{name:"endpoint",required:!0,label:"Endpoint",tooltip:"webhook server endpoint e.g. http://localhost:8080/minio/events",type:"url",placeholder:"Enter Endpoint"},{name:"auth_token",label:"Auth Token",tooltip:"opaque string or JWT authorization token",type:"string",placeholder:"Enter auth_token"}].concat(y)),(0,r.Z)(n,g,[{name:"nsqd_address",required:!0,label:"NSQD Address",tooltip:"NSQ server address e.g. '127.0.0.1:4150'",type:"address",placeholder:"Enter nsqd_address"},{name:"topic",required:!0,label:"Topic",tooltip:"NSQ topic",type:"string",placeholder:"Enter Topic"},{name:"tls",label:"TLS",tooltip:"set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS Skip Verify",tooltip:'trust server TLS without verification, defaults to "on" (verify)',type:"on|off"}].concat(y)),n)}}]); -//# sourceMappingURL=7045.9d14424c.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7045],{84669:function(e,t,o){o(72791);var n=o(91523),r=o(11135),a=o(25787),l=o(13048),i=o(64554),s=o(80184);t.Z=(0,a.Z)((function(e){return(0,r.Z)({link:{display:"block",textDecoration:"none","&:active":{color:e.palette.primary.light}},iconBox:{display:"flex",flexDirection:"row","&:hover":{background:"rgba(234,237,238)"},height:"30px",paddingBottom:4,paddingTop:8,paddingRight:16,paddingLeft:0,borderRadius:4},icon:{lineHeight:1,marginRight:"14px",alignItems:"center",width:"22px","& .min-icon":{color:e.palette.primary.light,width:"16px",height:"16px"}},label:{lineHeight:1,alignItems:"center",paddingTop:1,fontSize:"14px",fontWeight:600,color:e.palette.primary.light}})}))((function(e){var t=e.to,o=e.label,r=e.classes,a=e.className,c=e.executeOnClick;return(0,s.jsx)(i.Z,{sx:{display:"flex",alignItems:"center"},children:(0,s.jsx)(n.rU,{to:t,className:"".concat(r.link," ").concat(a||""),onClick:function(){c&&c()},children:(0,s.jsxs)("div",{className:r.iconBox,children:[(0,s.jsx)("div",{className:r.icon,children:(0,s.jsx)(l.xN,{})}),(0,s.jsx)("div",{className:r.label,children:o})]})})})}))},74794:function(e,t,o){var n=o(1413),r=(o(72791),o(61889)),a=o(11135),l=o(25787),i=o(23814),s=o(80184);t.Z=(0,l.Z)((function(e){return(0,a.Z)((0,n.Z)({},i.Bw))}))((function(e){var t=e.classes,o=e.className,n=void 0===o?"":o,a=e.children;return(0,s.jsx)("div",{className:t.contentSpacer,children:(0,s.jsx)(r.ZP,{container:!0,children:(0,s.jsx)(r.ZP,{item:!0,xs:12,className:n,children:a})})})}))},32291:function(e,t,o){var n=o(72791),r=o(60364),a=o(61889),l=o(11135),i=o(25787),s=o(20890),c=o(13400),p=o(95466),d=o(84683),m=o(3925),u=o(13048),g=o(80184),h={toggleList:m.kQ},f=(0,r.$j)((function(e){return{sidebarOpen:e.system.sidebarOpen,operatorMode:e.system.operatorMode,managerObjects:e.objectBrowser.objectManager.objectsToManage,features:e.console.session.features}}),h);t.Z=f((0,i.Z)((function(e){return(0,l.Z)({headerContainer:{width:"100%",minHeight:79,display:"flex",backgroundColor:"#fff",left:0,boxShadow:"rgba(0,0,0,.08) 0 3px 10px"},label:{display:"flex",justifyContent:"flex-start",alignItems:"center"},labelStyle:{color:"#000",fontSize:18,fontWeight:700,marginLeft:21,marginTop:8},rightMenu:{textAlign:"right"},logo:{marginLeft:34,fill:e.palette.primary.main,"& .min-icon":{width:120}},middleComponent:{display:"flex",justifyContent:"center",alignItems:"center"}})}))((function(e){var t=e.classes,o=e.label,r=e.actions,l=e.sidebarOpen,i=e.operatorMode,m=e.managerObjects,h=e.toggleList,f=e.middleComponent;return e.features.includes("hide-menu")?(0,g.jsx)(n.Fragment,{}):(0,g.jsxs)(a.ZP,{container:!0,className:"".concat(t.headerContainer," page-header"),direction:"row",alignItems:"center",children:[(0,g.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.label,sx:{paddingTop:["15px","15px","0","0"]},children:[!l&&(0,g.jsx)("div",{className:t.logo,children:i?(0,g.jsx)(p.Z,{}):(0,g.jsx)(d.Z,{})}),(0,g.jsx)(s.Z,{variant:"h4",className:t.labelStyle,children:o})]}),f&&(0,g.jsx)(a.ZP,{item:!0,xs:12,sm:12,md:6,className:t.middleComponent,sx:{marginTop:["10px","10px","0","0"]},children:f}),(0,g.jsxs)(a.ZP,{item:!0,xs:12,sm:12,md:f?3:6,className:t.rightMenu,children:[r&&r,m&&m.length>0&&(0,g.jsx)(c.Z,{color:"primary","aria-label":"Refresh List",component:"span",onClick:function(){h()},id:"object-manager-toggle",size:"large",children:(0,g.jsx)(u.gx,{})})]})]})})))},37045:function(e,t,o){o.r(t);var n=o(1413),r=o(72791),a=o(11135),l=o(25787),i=o(15514),s=o(23814),c=o(32291),p=o(62666),d=o(84669),m=o(74794),u=o(56087),g=o(80184),h=i.BR.filter((function(e){return""!==e.logo}));t.default=(0,l.Z)((function(e){return(0,a.Z)((0,n.Z)((0,n.Z)({},s.Je),s.fc))}))((function(e){var t=e.classes;return(0,g.jsxs)(r.Fragment,{children:[(0,g.jsx)(c.Z,{label:(0,g.jsx)(r.Fragment,{children:(0,g.jsx)(d.Z,{to:u.gA.NOTIFICATIONS_ENDPOINTS,label:"Notification Targets"})}),actions:(0,g.jsx)(r.Fragment,{})}),(0,g.jsx)(m.Z,{children:(0,g.jsx)("div",{className:t.iconContainer,children:h.map((function(e){return(0,g.jsxs)("button",{className:t.lambdaNotif,onClick:function(){p.Z.push("".concat(u.gA.NOTIFICATIONS_ENDPOINTS_ADD,"/").concat(e.actionTrigger))},children:[(0,g.jsx)("div",{className:t.lambdaNotifIcon,children:(0,g.jsx)("img",{src:e.logo,className:t.logoButton,alt:e.targetTitle})}),(0,g.jsx)("div",{className:t.lambdaNotifTitle,children:(0,g.jsx)("b",{children:e.targetTitle})})]},"icon-".concat(e.targetTitle))}))})})]})}))},15514:function(e,t,o){o.d(t,{BR:function(){return f},DD:function(){return b},dM:function(){return l},ee:function(){return a},fk:function(){return h},oj:function(){return T}});var n,r=o(4942),a="notify_postgres",l="notify_mysql",i="notify_kafka",s="notify_amqp",c="notify_mqtt",p="notify_redis",d="notify_nats",m="notify_elasticsearch",u="notify_webhook",g="notify_nsq",h=function(e){return e.map((function(e){return{service_name:"".concat(e.service,":").concat(e.account_id),status:e.status}}))},f=[{actionTrigger:a,targetTitle:"PostgreSQL",logo:"/postgres-logo.svg"},{actionTrigger:i,targetTitle:"Kafka",logo:"/kafka-logo.svg"},{actionTrigger:s,targetTitle:"AMQP",logo:"/amqp-logo.svg"},{actionTrigger:c,targetTitle:"MQTT",logo:"/mqtt-logo.svg"},{actionTrigger:p,targetTitle:"Redis",logo:"/redis-logo.svg"},{actionTrigger:d,targetTitle:"NATS",logo:"/nats-logo.svg"},{actionTrigger:l,targetTitle:"Mysql",logo:"/mysql-logo.svg"},{actionTrigger:m,targetTitle:"Elastic Search",logo:"/elasticsearch-logo.svg"},{actionTrigger:u,targetTitle:"Webhook",logo:"/webhooks-logo.svg"},{actionTrigger:g,targetTitle:"NSQ",logo:"/nsq-logo.svg"}],y=[{name:"queue-dir",label:"Queue Directory",required:!0,tooltip:"staging dir for undelivered messages e.g. '/home/events'",type:"string",placeholder:"Enter Queue Directory"},{name:"queue-limit",label:"Queue Limit",required:!1,tooltip:"maximum limit for undelivered messages, defaults to '10000'",type:"number",placeholder:"Enter Queue Limit"},{name:"comment",label:"Comment",required:!1,type:"comment",placeholder:"Enter custom notes if any"}],b=function(e){return e.filter((function(e){return""!==e.value}))},T=(n={},(0,r.Z)(n,i,[{name:"brokers",label:"Brokers",required:!0,tooltip:"Comma separated list of Kafka broker addresses",type:"string",placeholder:"Enter Brokers"},{name:"topic",label:"Topic",tooltip:"Kafka topic used for bucket notifications",type:"string",placeholder:"Enter Topic"},{name:"sasl_username",label:"SASL Username",tooltip:"Username for SASL/PLAIN or SASL/SCRAM authentication",type:"string",placeholder:"Enter SASL Username"},{name:"sasl_password",label:"SASL Password",tooltip:"Password for SASL/PLAIN or SASL/SCRAM authentication",type:"string",placeholder:"Enter SASL Password"},{name:"sasl_mechanism",label:"SASL Mechanism",tooltip:"SASL authentication mechanism, default 'PLAIN'",type:"string"},{name:"tls_client_auth",label:"TLS Client Auth",tooltip:"Client Auth determines the Kafka server's policy for TLS client auth",type:"string",placeholder:"Enter TLS Client Auth"},{name:"sasl",label:"SASL",tooltip:"Set to 'on' to enable SASL authentication",type:"on|off"},{name:"tls",label:"TLS",tooltip:"Set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS skip verify",tooltip:'Trust server TLS without verification, defaults to "on" (verify)',type:"on|off"},{name:"client_tls_cert",label:"client TLS cert",tooltip:"Path to client certificate for mTLS auth",type:"path",placeholder:"Enter TLS Client Cert"},{name:"client_tls_key",label:"client TLS key",tooltip:"Path to client key for mTLS auth",type:"path",placeholder:"Enter TLS Client Key"},{name:"version",label:"Version",tooltip:"Specify the version of the Kafka cluster e.g '2.2.0'",type:"string",placeholder:"Enter Kafka Version"}].concat(y)),(0,r.Z)(n,s,[{name:"url",required:!0,label:"URL",tooltip:"AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672`",type:"url"},{name:"exchange",label:"Exchange",tooltip:"Name of the AMQP exchange",type:"string",placeholder:"Enter Exchange"},{name:"exchange_type",label:"Exchange Type",tooltip:"AMQP exchange type",type:"string",placeholder:"Enter Exchange Type"},{name:"routing_key",label:"Routing Key",tooltip:"Routing key for publishing",type:"string",placeholder:"Enter Routing Key"},{name:"mandatory",label:"Mandatory",tooltip:"Quietly ignore undelivered messages when set to 'off', default is 'on'",type:"on|off"},{name:"durable",label:"Durable",tooltip:"Persist queue across broker restarts when set to 'on', default is 'off'",type:"on|off"},{name:"no_wait",label:"No Wait",tooltip:"Non-blocking message delivery when set to 'on', default is 'off'",type:"on|off"},{name:"internal",label:"Internal",tooltip:"Set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges",type:"on|off"},{name:"auto_deleted",label:"Auto Deleted",tooltip:"Auto delete queue when set to 'on', when there are no consumers",type:"on|off"},{name:"delivery_mode",label:"Delivery Mode",tooltip:"Set to '1' for non-persistent or '2' for persistent queue",type:"number",placeholder:"Enter Delivery Mode"}].concat(y)),(0,r.Z)(n,p,[{name:"address",required:!0,label:"Address",tooltip:"Redis server's address. For example: `localhost:6379`",type:"address",placeholder:"Enter Address"},{name:"key",required:!0,label:"Key",tooltip:"Redis key to store/update events, key is auto-created",type:"string",placeholder:"Enter Key"},{name:"password",label:"Password",tooltip:"Redis server password",type:"string",placeholder:"Enter Password"}].concat(y)),(0,r.Z)(n,c,[{name:"broker",required:!0,label:"Broker",tooltip:"MQTT server endpoint e.g. `tcp://localhost:1883`",type:"uri",placeholder:"Enter Brokers"},{name:"topic",required:!0,label:"Topic",tooltip:"name of the MQTT topic to publish",type:"string",placeholder:"Enter Topic"},{name:"username",label:"Username",tooltip:"MQTT username",type:"string",placeholder:"Enter Username"},{name:"password",label:"Password",tooltip:"MQTT password",type:"string",placeholder:"Enter Password"},{name:"qos",label:"QOS",tooltip:"Set the quality of service priority, defaults to '0'",type:"number",placeholder:"Enter QOS"},{name:"keep_alive_interval",label:"Keep Alive Interval",tooltip:"Keep-alive interval for MQTT connections in s,m,h,d",type:"duration",placeholder:"Enter Keep Alive Internal"},{name:"reconnect_interval",label:"Reconnect Interval",tooltip:"Reconnect interval for MQTT connections in s,m,h,d",type:"duration",placeholder:"Enter Reconnect Interval"}].concat(y)),(0,r.Z)(n,d,[{name:"address",required:!0,label:"Address",tooltip:"NATS server address e.g. '0.0.0.0:4222'",type:"address",placeholder:"Enter Address"},{name:"subject",required:!0,label:"Subject",tooltip:"NATS subscription subject",type:"string",placeholder:"Enter NATS Subject"},{name:"username",label:"Username",tooltip:"NATS username",type:"string",placeholder:"Enter NATS Username"},{name:"password",label:"Password",tooltip:"NATS password",type:"string",placeholder:"Enter NATS password"},{name:"token",label:"Token",tooltip:"NATS token",type:"string",placeholder:"Enter NATS token"},{name:"tls",label:"TLS",tooltip:"Set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS Skip Verify",tooltip:'Trust server TLS without verification, defaults to "on" (verify)',type:"on|off"},{name:"ping_interval",label:"Ping Interval",tooltip:"Client ping commands interval in s,m,h,d. Disabled by default",type:"duration",placeholder:"Enter Ping Interval"},{name:"streaming",label:"Streaming",tooltip:"Set to 'on', to use streaming NATS server",type:"on|off"},{name:"streaming_async",label:"Streaming async",tooltip:"Set to 'on', to enable asynchronous publish",type:"on|off"},{name:"streaming_max_pub_acks_in_flight",label:"Streaming max publish ACKS in flight",tooltip:"Number of messages to publish without waiting for ACKs",type:"number",placeholder:"Enter Streaming in flight value"},{name:"streaming_cluster_id",label:"Streaming Cluster ID",tooltip:"Unique ID for NATS streaming cluster",type:"string",placeholder:"Enter Streaming Cluster ID"},{name:"cert_authority",label:"Cert Authority",tooltip:"Path to certificate chain of the target NATS server",type:"string",placeholder:"Enter Cert Authority"},{name:"client_cert",label:"Client Cert",tooltip:"Client cert for NATS mTLS auth",type:"string",placeholder:"Enter Client Cert"},{name:"client_key",label:"Client Key",tooltip:"Client cert key for NATS mTLS auth",type:"string",placeholder:"Enter Client Key"}].concat(y)),(0,r.Z)(n,m,[{name:"url",required:!0,label:"URL",tooltip:"Elasticsearch server's address, with optional authentication info",type:"url",placeholder:"Enter URL"},{name:"index",required:!0,label:"Index",tooltip:"Elasticsearch index to store/update events, index is auto-created",type:"string",placeholder:"Enter Index"},{name:"format",required:!0,label:"Format",tooltip:"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'",type:"enum",placeholder:"Enter Format"}].concat(y)),(0,r.Z)(n,u,[{name:"endpoint",required:!0,label:"Endpoint",tooltip:"webhook server endpoint e.g. http://localhost:8080/minio/events",type:"url",placeholder:"Enter Endpoint"},{name:"auth_token",label:"Auth Token",tooltip:"opaque string or JWT authorization token",type:"string",placeholder:"Enter auth_token"}].concat(y)),(0,r.Z)(n,g,[{name:"nsqd_address",required:!0,label:"NSQD Address",tooltip:"NSQ server address e.g. '127.0.0.1:4150'",type:"address",placeholder:"Enter nsqd_address"},{name:"topic",required:!0,label:"Topic",tooltip:"NSQ topic",type:"string",placeholder:"Enter Topic"},{name:"tls",label:"TLS",tooltip:"set to 'on' to enable TLS",type:"on|off"},{name:"tls_skip_verify",label:"TLS Skip Verify",tooltip:'trust server TLS without verification, defaults to "on" (verify)',type:"on|off"}].concat(y)),n)}}]); +//# sourceMappingURL=7045.1bb98475.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7045.9d14424c.chunk.js.map b/portal-ui/build/static/js/7045.1bb98475.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/7045.9d14424c.chunk.js.map rename to portal-ui/build/static/js/7045.1bb98475.chunk.js.map index 29edc4522..07cd038bd 100644 --- a/portal-ui/build/static/js/7045.9d14424c.chunk.js.map +++ b/portal-ui/build/static/js/7045.1bb98475.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/7045.9d14424c.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/NotificationEndpoints/NotificationTypeSelector.tsx","screens/Console/NotificationEndpoints/utils.ts"],"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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { servicesList } from \"./utils\";\nimport {\n settingsCommon,\n typesSelection,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport history from \"../../../history\";\nimport BackLink from \"../../../common/BackLink\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\ninterface INotificationTypeSelector {\n classes: any;\n}\n\nconst withLogos = servicesList.filter((elService) => elService.logo !== \"\");\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...settingsCommon,\n ...typesSelection,\n });\n\nconst NotificationTypeSelector = ({ classes }: INotificationTypeSelector) => {\n return (\n \n \n \n \n }\n actions={}\n />\n \n
    \n {withLogos.map((item) => {\n return (\n {\n history.push(\n `${IAM_PAGES.NOTIFICATIONS_ENDPOINTS_ADD}/${item.actionTrigger}`\n );\n }}\n >\n
    \n \n
    \n\n
    \n {item.targetTitle}\n
    \n \n );\n })}\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(NotificationTypeSelector);\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 { NotificationEndpointItem } from \"./types\";\n\nimport { IElementValue } from \"../Configurations/types\";\n\nexport const notifyPostgres = \"notify_postgres\";\nexport const notifyMysql = \"notify_mysql\";\nexport const notifyKafka = \"notify_kafka\";\nexport const notifyAmqp = \"notify_amqp\";\nexport const notifyMqtt = \"notify_mqtt\";\nexport const notifyRedis = \"notify_redis\";\nexport const notifyNats = \"notify_nats\";\nexport const notifyElasticsearch = \"notify_elasticsearch\";\nexport const notifyWebhooks = \"notify_webhook\";\nexport const notifyNsq = \"notify_nsq\";\n\nexport const notificationTransform = (\n notificationElements: NotificationEndpointItem[]\n) => {\n return notificationElements.map((element) => {\n return {\n service_name: `${element.service}:${element.account_id}`,\n status: element.status,\n };\n });\n};\n\nexport const servicesList = [\n {\n actionTrigger: notifyPostgres,\n targetTitle: \"PostgreSQL\",\n logo: \"/postgres-logo.svg\",\n },\n {\n actionTrigger: notifyKafka,\n targetTitle: \"Kafka\",\n logo: \"/kafka-logo.svg\",\n },\n {\n actionTrigger: notifyAmqp,\n targetTitle: \"AMQP\",\n logo: \"/amqp-logo.svg\",\n },\n {\n actionTrigger: notifyMqtt,\n targetTitle: \"MQTT\",\n logo: \"/mqtt-logo.svg\",\n },\n {\n actionTrigger: notifyRedis,\n targetTitle: \"Redis\",\n logo: \"/redis-logo.svg\",\n },\n {\n actionTrigger: notifyNats,\n targetTitle: \"NATS\",\n logo: \"/nats-logo.svg\",\n },\n {\n actionTrigger: notifyMysql,\n targetTitle: \"Mysql\",\n logo: \"/mysql-logo.svg\",\n },\n {\n actionTrigger: notifyElasticsearch,\n targetTitle: \"Elastic Search\",\n logo: \"/elasticsearch-logo.svg\",\n },\n {\n actionTrigger: notifyWebhooks,\n targetTitle: \"Webhook\",\n logo: \"/webhooks-logo.svg\",\n },\n {\n actionTrigger: notifyNsq,\n targetTitle: \"NSQ\",\n logo: \"/nsq-logo.svg\",\n },\n];\n\nconst commonFields = [\n {\n name: \"queue-dir\",\n label: \"Queue Directory\",\n required: true,\n\n tooltip: \"staging dir for undelivered messages e.g. '/home/events'\",\n type: \"string\",\n placeholder: \"Enter Queue Directory\",\n },\n {\n name: \"queue-limit\",\n label: \"Queue Limit\",\n required: false,\n\n tooltip: \"maximum limit for undelivered messages, defaults to '10000'\",\n type: \"number\",\n placeholder: \"Enter Queue Limit\",\n },\n {\n name: \"comment\",\n label: \"Comment\",\n required: false,\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n];\n\nexport const removeEmptyFields = (formFields: IElementValue[]) => {\n const nonEmptyFields = formFields.filter((field) => field.value !== \"\");\n\n return nonEmptyFields;\n};\n\nexport const notificationEndpointsFields: any = {\n [notifyKafka]: [\n {\n name: \"brokers\",\n label: \"Brokers\",\n required: true,\n\n tooltip: \"Comma separated list of Kafka broker addresses\",\n type: \"string\",\n placeholder: \"Enter Brokers\",\n },\n {\n name: \"topic\",\n label: \"Topic\",\n tooltip: \"Kafka topic used for bucket notifications\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"sasl_username\",\n label: \"SASL Username\",\n tooltip: \"Username for SASL/PLAIN or SASL/SCRAM authentication\",\n type: \"string\",\n placeholder: \"Enter SASL Username\",\n },\n {\n name: \"sasl_password\",\n label: \"SASL Password\",\n tooltip: \"Password for SASL/PLAIN or SASL/SCRAM authentication\",\n type: \"string\",\n placeholder: \"Enter SASL Password\",\n },\n {\n name: \"sasl_mechanism\",\n label: \"SASL Mechanism\",\n tooltip: \"SASL authentication mechanism, default 'PLAIN'\",\n type: \"string\",\n },\n {\n name: \"tls_client_auth\",\n label: \"TLS Client Auth\",\n tooltip:\n \"Client Auth determines the Kafka server's policy for TLS client auth\",\n type: \"string\",\n placeholder: \"Enter TLS Client Auth\",\n },\n {\n name: \"sasl\",\n label: \"SASL\",\n tooltip: \"Set to 'on' to enable SASL authentication\",\n type: \"on|off\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"Set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS skip verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"client_tls_cert\",\n label: \"client TLS cert\",\n tooltip: \"Path to client certificate for mTLS auth\",\n type: \"path\",\n placeholder: \"Enter TLS Client Cert\",\n },\n {\n name: \"client_tls_key\",\n label: \"client TLS key\",\n tooltip: \"Path to client key for mTLS auth\",\n type: \"path\",\n placeholder: \"Enter TLS Client Key\",\n },\n {\n name: \"version\",\n label: \"Version\",\n tooltip: \"Specify the version of the Kafka cluster e.g '2.2.0'\",\n type: \"string\",\n placeholder: \"Enter Kafka Version\",\n },\n ...commonFields,\n ],\n [notifyAmqp]: [\n {\n name: \"url\",\n required: true,\n label: \"URL\",\n tooltip:\n \"AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672`\",\n type: \"url\",\n },\n {\n name: \"exchange\",\n label: \"Exchange\",\n tooltip: \"Name of the AMQP exchange\",\n type: \"string\",\n placeholder: \"Enter Exchange\",\n },\n {\n name: \"exchange_type\",\n label: \"Exchange Type\",\n tooltip: \"AMQP exchange type\",\n type: \"string\",\n placeholder: \"Enter Exchange Type\",\n },\n {\n name: \"routing_key\",\n label: \"Routing Key\",\n tooltip: \"Routing key for publishing\",\n type: \"string\",\n placeholder: \"Enter Routing Key\",\n },\n {\n name: \"mandatory\",\n label: \"Mandatory\",\n tooltip:\n \"Quietly ignore undelivered messages when set to 'off', default is 'on'\",\n type: \"on|off\",\n },\n {\n name: \"durable\",\n label: \"Durable\",\n tooltip:\n \"Persist queue across broker restarts when set to 'on', default is 'off'\",\n type: \"on|off\",\n },\n {\n name: \"no_wait\",\n label: \"No Wait\",\n tooltip:\n \"Non-blocking message delivery when set to 'on', default is 'off'\",\n type: \"on|off\",\n },\n {\n name: \"internal\",\n label: \"Internal\",\n tooltip:\n \"Set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges\",\n type: \"on|off\",\n },\n {\n name: \"auto_deleted\",\n label: \"Auto Deleted\",\n tooltip:\n \"Auto delete queue when set to 'on', when there are no consumers\",\n type: \"on|off\",\n },\n {\n name: \"delivery_mode\",\n label: \"Delivery Mode\",\n tooltip: \"Set to '1' for non-persistent or '2' for persistent queue\",\n type: \"number\",\n placeholder: \"Enter Delivery Mode\",\n },\n ...commonFields,\n ],\n [notifyRedis]: [\n {\n name: \"address\",\n required: true,\n label: \"Address\",\n tooltip: \"Redis server's address. For example: `localhost:6379`\",\n type: \"address\",\n placeholder: \"Enter Address\",\n },\n {\n name: \"key\",\n required: true,\n label: \"Key\",\n tooltip: \"Redis key to store/update events, key is auto-created\",\n type: \"string\",\n placeholder: \"Enter Key\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"Redis server password\",\n type: \"string\",\n placeholder: \"Enter Password\",\n },\n ...commonFields,\n ],\n [notifyMqtt]: [\n {\n name: \"broker\",\n required: true,\n label: \"Broker\",\n tooltip: \"MQTT server endpoint e.g. `tcp://localhost:1883`\",\n type: \"uri\",\n placeholder: \"Enter Brokers\",\n },\n {\n name: \"topic\",\n required: true,\n label: \"Topic\",\n tooltip: \"name of the MQTT topic to publish\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"username\",\n label: \"Username\",\n tooltip: \"MQTT username\",\n type: \"string\",\n placeholder: \"Enter Username\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"MQTT password\",\n type: \"string\",\n placeholder: \"Enter Password\",\n },\n {\n name: \"qos\",\n label: \"QOS\",\n tooltip: \"Set the quality of service priority, defaults to '0'\",\n type: \"number\",\n placeholder: \"Enter QOS\",\n },\n {\n name: \"keep_alive_interval\",\n label: \"Keep Alive Interval\",\n tooltip: \"Keep-alive interval for MQTT connections in s,m,h,d\",\n type: \"duration\",\n placeholder: \"Enter Keep Alive Internal\",\n },\n {\n name: \"reconnect_interval\",\n label: \"Reconnect Interval\",\n tooltip: \"Reconnect interval for MQTT connections in s,m,h,d\",\n type: \"duration\",\n placeholder: \"Enter Reconnect Interval\",\n },\n ...commonFields,\n ],\n [notifyNats]: [\n {\n name: \"address\",\n required: true,\n label: \"Address\",\n tooltip: \"NATS server address e.g. '0.0.0.0:4222'\",\n type: \"address\",\n placeholder: \"Enter Address\",\n },\n {\n name: \"subject\",\n required: true,\n label: \"Subject\",\n tooltip: \"NATS subscription subject\",\n type: \"string\",\n placeholder: \"Enter NATS Subject\",\n },\n {\n name: \"username\",\n label: \"Username\",\n tooltip: \"NATS username\",\n type: \"string\",\n placeholder: \"Enter NATS Username\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"NATS password\",\n type: \"string\",\n placeholder: \"Enter NATS password\",\n },\n {\n name: \"token\",\n label: \"Token\",\n tooltip: \"NATS token\",\n type: \"string\",\n placeholder: \"Enter NATS token\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"Set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS Skip Verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"ping_interval\",\n label: \"Ping Interval\",\n tooltip: \"Client ping commands interval in s,m,h,d. Disabled by default\",\n type: \"duration\",\n placeholder: \"Enter Ping Interval\",\n },\n {\n name: \"streaming\",\n label: \"Streaming\",\n tooltip: \"Set to 'on', to use streaming NATS server\",\n type: \"on|off\",\n },\n {\n name: \"streaming_async\",\n label: \"Streaming async\",\n tooltip: \"Set to 'on', to enable asynchronous publish\",\n type: \"on|off\",\n },\n {\n name: \"streaming_max_pub_acks_in_flight\",\n label: \"Streaming max publish ACKS in flight\",\n tooltip: \"Number of messages to publish without waiting for ACKs\",\n type: \"number\",\n placeholder: \"Enter Streaming in flight value\",\n },\n {\n name: \"streaming_cluster_id\",\n label: \"Streaming Cluster ID\",\n tooltip: \"Unique ID for NATS streaming cluster\",\n type: \"string\",\n placeholder: \"Enter Streaming Cluster ID\",\n },\n {\n name: \"cert_authority\",\n label: \"Cert Authority\",\n tooltip: \"Path to certificate chain of the target NATS server\",\n type: \"string\",\n placeholder: \"Enter Cert Authority\",\n },\n {\n name: \"client_cert\",\n label: \"Client Cert\",\n tooltip: \"Client cert for NATS mTLS auth\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_key\",\n label: \"Client Key\",\n tooltip: \"Client cert key for NATS mTLS auth\",\n type: \"string\",\n placeholder: \"Enter Client Key\",\n },\n ...commonFields,\n ],\n [notifyElasticsearch]: [\n {\n name: \"url\",\n required: true,\n label: \"URL\",\n tooltip:\n \"Elasticsearch server's address, with optional authentication info\",\n type: \"url\",\n placeholder: \"Enter URL\",\n },\n {\n name: \"index\",\n required: true,\n label: \"Index\",\n tooltip:\n \"Elasticsearch index to store/update events, index is auto-created\",\n type: \"string\",\n placeholder: \"Enter Index\",\n },\n {\n name: \"format\",\n required: true,\n label: \"Format\",\n tooltip:\n \"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\",\n type: \"enum\",\n placeholder: \"Enter Format\",\n },\n ...commonFields,\n ],\n [notifyWebhooks]: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n tooltip:\n \"webhook server endpoint e.g. http://localhost:8080/minio/events\",\n type: \"url\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n label: \"Auth Token\",\n tooltip: \"opaque string or JWT authorization token\",\n type: \"string\",\n placeholder: \"Enter auth_token\",\n },\n ...commonFields,\n ],\n [notifyNsq]: [\n {\n name: \"nsqd_address\",\n required: true,\n label: \"NSQD Address\",\n tooltip: \"NSQ server address e.g. '127.0.0.1:4150'\",\n type: \"address\",\n placeholder: \"Enter nsqd_address\",\n },\n {\n name: \"topic\",\n required: true,\n label: \"Topic\",\n tooltip: \"NSQ topic\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS Skip Verify\",\n tooltip:\n 'trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n ...commonFields,\n ],\n};\n"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","pageContentStyles","children","contentSpacer","container","item","xs","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","backgroundColor","left","boxShadow","justifyContent","labelStyle","marginLeft","marginTop","rightMenu","textAlign","logo","fill","main","middleComponent","actions","includes","Fragment","direction","sm","md","variant","length","component","id","size","withLogos","servicesList","elService","settingsCommon","typesSelection","IAM_PAGES","iconContainer","map","lambdaNotif","history","actionTrigger","lambdaNotifIcon","src","logoButton","alt","targetTitle","lambdaNotifTitle","notifyPostgres","notifyMysql","notifyKafka","notifyAmqp","notifyMqtt","notifyRedis","notifyNats","notifyElasticsearch","notifyWebhooks","notifyNsq","notificationTransform","notificationElements","element","service_name","service","account_id","status","commonFields","name","required","tooltip","type","placeholder","removeEmptyFields","formFields","filter","field","value","notificationEndpointsFields"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/7045.1bb98475.chunk.js","mappings":"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","sources":["common/BackLink.tsx","screens/Console/Common/Layout/PageLayout.tsx","screens/Console/Common/PageHeader/PageHeader.tsx","screens/Console/NotificationEndpoints/NotificationTypeSelector.tsx","screens/Console/NotificationEndpoints/utils.ts"],"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 { Link } from \"react-router-dom\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { BackSettingsIcon } from \"../icons\";\nimport { Box } from \"@mui/material\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n link: {\n display: \"block\",\n textDecoration: \"none\",\n \"&:active\": {\n color: theme.palette.primary.light,\n },\n },\n iconBox: {\n display: \"flex\",\n flexDirection: \"row\",\n \"&:hover\": {\n background: \"rgba(234,237,238)\",\n },\n height: \"30px\",\n paddingBottom: 4,\n paddingTop: 8,\n paddingRight: 16,\n paddingLeft: 0,\n borderRadius: 4,\n },\n icon: {\n lineHeight: 1,\n marginRight: \"14px\",\n alignItems: \"center\",\n width: \"22px\",\n \"& .min-icon\": {\n color: theme.palette.primary.light,\n width: \"16px\",\n height: \"16px\",\n },\n },\n label: {\n lineHeight: 1,\n alignItems: \"center\",\n paddingTop: 1,\n fontSize: \"14px\",\n fontWeight: 600,\n color: theme.palette.primary.light,\n },\n });\n\ninterface IBackLink {\n classes: any;\n to: string;\n label: string;\n className?: any;\n executeOnClick?: () => void;\n}\n\nconst BackLink = ({\n to,\n label,\n classes,\n className,\n executeOnClick,\n}: IBackLink) => {\n return (\n \n {\n if (executeOnClick) {\n executeOnClick();\n }\n }}\n >\n
    \n
    \n \n
    \n
    {label}
    \n
    \n \n \n );\n};\n\nexport default withStyles(styles)(BackLink);\n","import React from \"react\";\nimport { Grid } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { pageContentStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...pageContentStyles,\n });\n\ntype PageLayoutProps = {\n className?: string;\n classes?: any;\n children: any;\n};\n\nconst PageLayout = ({ classes, className = \"\", children }: PageLayoutProps) => {\n return (\n
    \n \n \n {children}\n \n \n
    \n );\n};\n\nexport default withStyles(styles)(PageLayout);\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 { Theme } from \"@mui/material/styles\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport Typography from \"@mui/material/Typography\";\nimport IconButton from \"@mui/material/IconButton\";\nimport { AppState } from \"../../../../store\";\nimport OperatorLogo from \"../../../../icons/OperatorLogo\";\nimport ConsoleLogo from \"../../../../icons/ConsoleLogo\";\nimport { IFileItem } from \"../../ObjectBrowser/reducers\";\nimport { toggleList } from \"../../ObjectBrowser/actions\";\nimport { ObjectManagerIcon } from \"../../../../icons\";\n\ninterface IPageHeader {\n classes: any;\n sidebarOpen?: boolean;\n operatorMode?: boolean;\n label: any;\n actions?: any;\n managerObjects?: IFileItem[];\n toggleList: typeof toggleList;\n middleComponent?: React.ReactNode;\n features: string[];\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n headerContainer: {\n width: \"100%\",\n minHeight: 79,\n display: \"flex\",\n backgroundColor: \"#fff\",\n left: 0,\n boxShadow: \"rgba(0,0,0,.08) 0 3px 10px\",\n },\n label: {\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n },\n labelStyle: {\n color: \"#000\",\n fontSize: 18,\n fontWeight: 700,\n marginLeft: 21,\n marginTop: 8,\n },\n rightMenu: {\n textAlign: \"right\",\n },\n logo: {\n marginLeft: 34,\n fill: theme.palette.primary.main,\n \"& .min-icon\": {\n width: 120,\n },\n },\n middleComponent: {\n display: \"flex\",\n justifyContent: \"center\",\n alignItems: \"center\",\n },\n });\n\nconst PageHeader = ({\n classes,\n label,\n actions,\n sidebarOpen,\n operatorMode,\n managerObjects,\n toggleList,\n middleComponent,\n features,\n}: IPageHeader) => {\n if (features.includes(\"hide-menu\")) {\n return ;\n }\n return (\n \n \n {!sidebarOpen && (\n
    \n {operatorMode ? : }\n
    \n )}\n \n {label}\n \n \n {middleComponent && (\n \n {middleComponent}\n \n )}\n \n {actions && actions}\n {managerObjects && managerObjects.length > 0 && (\n {\n toggleList();\n }}\n id=\"object-manager-toggle\"\n size=\"large\"\n >\n \n \n )}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n sidebarOpen: state.system.sidebarOpen,\n operatorMode: state.system.operatorMode,\n managerObjects: state.objectBrowser.objectManager.objectsToManage,\n features: state.console.session.features,\n});\n\nconst mapDispatchToProps = {\n toggleList,\n};\n\nconst connector = connect(mapState, mapDispatchToProps);\n\nexport default connector(withStyles(styles)(PageHeader));\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 { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { servicesList } from \"./utils\";\nimport {\n settingsCommon,\n typesSelection,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport PageHeader from \"../Common/PageHeader/PageHeader\";\nimport history from \"../../../history\";\nimport BackLink from \"../../../common/BackLink\";\nimport PageLayout from \"../Common/Layout/PageLayout\";\nimport { IAM_PAGES } from \"../../../common/SecureComponent/permissions\";\n\ninterface INotificationTypeSelector {\n classes: any;\n}\n\nconst withLogos = servicesList.filter((elService) => elService.logo !== \"\");\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...settingsCommon,\n ...typesSelection,\n });\n\nconst NotificationTypeSelector = ({ classes }: INotificationTypeSelector) => {\n return (\n \n \n \n \n }\n actions={}\n />\n \n
    \n {withLogos.map((item) => {\n return (\n {\n history.push(\n `${IAM_PAGES.NOTIFICATIONS_ENDPOINTS_ADD}/${item.actionTrigger}`\n );\n }}\n >\n
    \n \n
    \n\n
    \n {item.targetTitle}\n
    \n \n );\n })}\n
    \n
    \n
    \n );\n};\n\nexport default withStyles(styles)(NotificationTypeSelector);\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 { NotificationEndpointItem } from \"./types\";\n\nimport { IElementValue } from \"../Configurations/types\";\n\nexport const notifyPostgres = \"notify_postgres\";\nexport const notifyMysql = \"notify_mysql\";\nexport const notifyKafka = \"notify_kafka\";\nexport const notifyAmqp = \"notify_amqp\";\nexport const notifyMqtt = \"notify_mqtt\";\nexport const notifyRedis = \"notify_redis\";\nexport const notifyNats = \"notify_nats\";\nexport const notifyElasticsearch = \"notify_elasticsearch\";\nexport const notifyWebhooks = \"notify_webhook\";\nexport const notifyNsq = \"notify_nsq\";\n\nexport const notificationTransform = (\n notificationElements: NotificationEndpointItem[]\n) => {\n return notificationElements.map((element) => {\n return {\n service_name: `${element.service}:${element.account_id}`,\n status: element.status,\n };\n });\n};\n\nexport const servicesList = [\n {\n actionTrigger: notifyPostgres,\n targetTitle: \"PostgreSQL\",\n logo: \"/postgres-logo.svg\",\n },\n {\n actionTrigger: notifyKafka,\n targetTitle: \"Kafka\",\n logo: \"/kafka-logo.svg\",\n },\n {\n actionTrigger: notifyAmqp,\n targetTitle: \"AMQP\",\n logo: \"/amqp-logo.svg\",\n },\n {\n actionTrigger: notifyMqtt,\n targetTitle: \"MQTT\",\n logo: \"/mqtt-logo.svg\",\n },\n {\n actionTrigger: notifyRedis,\n targetTitle: \"Redis\",\n logo: \"/redis-logo.svg\",\n },\n {\n actionTrigger: notifyNats,\n targetTitle: \"NATS\",\n logo: \"/nats-logo.svg\",\n },\n {\n actionTrigger: notifyMysql,\n targetTitle: \"Mysql\",\n logo: \"/mysql-logo.svg\",\n },\n {\n actionTrigger: notifyElasticsearch,\n targetTitle: \"Elastic Search\",\n logo: \"/elasticsearch-logo.svg\",\n },\n {\n actionTrigger: notifyWebhooks,\n targetTitle: \"Webhook\",\n logo: \"/webhooks-logo.svg\",\n },\n {\n actionTrigger: notifyNsq,\n targetTitle: \"NSQ\",\n logo: \"/nsq-logo.svg\",\n },\n];\n\nconst commonFields = [\n {\n name: \"queue-dir\",\n label: \"Queue Directory\",\n required: true,\n\n tooltip: \"staging dir for undelivered messages e.g. '/home/events'\",\n type: \"string\",\n placeholder: \"Enter Queue Directory\",\n },\n {\n name: \"queue-limit\",\n label: \"Queue Limit\",\n required: false,\n\n tooltip: \"maximum limit for undelivered messages, defaults to '10000'\",\n type: \"number\",\n placeholder: \"Enter Queue Limit\",\n },\n {\n name: \"comment\",\n label: \"Comment\",\n required: false,\n type: \"comment\",\n placeholder: \"Enter custom notes if any\",\n },\n];\n\nexport const removeEmptyFields = (formFields: IElementValue[]) => {\n const nonEmptyFields = formFields.filter((field) => field.value !== \"\");\n\n return nonEmptyFields;\n};\n\nexport const notificationEndpointsFields: any = {\n [notifyKafka]: [\n {\n name: \"brokers\",\n label: \"Brokers\",\n required: true,\n\n tooltip: \"Comma separated list of Kafka broker addresses\",\n type: \"string\",\n placeholder: \"Enter Brokers\",\n },\n {\n name: \"topic\",\n label: \"Topic\",\n tooltip: \"Kafka topic used for bucket notifications\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"sasl_username\",\n label: \"SASL Username\",\n tooltip: \"Username for SASL/PLAIN or SASL/SCRAM authentication\",\n type: \"string\",\n placeholder: \"Enter SASL Username\",\n },\n {\n name: \"sasl_password\",\n label: \"SASL Password\",\n tooltip: \"Password for SASL/PLAIN or SASL/SCRAM authentication\",\n type: \"string\",\n placeholder: \"Enter SASL Password\",\n },\n {\n name: \"sasl_mechanism\",\n label: \"SASL Mechanism\",\n tooltip: \"SASL authentication mechanism, default 'PLAIN'\",\n type: \"string\",\n },\n {\n name: \"tls_client_auth\",\n label: \"TLS Client Auth\",\n tooltip:\n \"Client Auth determines the Kafka server's policy for TLS client auth\",\n type: \"string\",\n placeholder: \"Enter TLS Client Auth\",\n },\n {\n name: \"sasl\",\n label: \"SASL\",\n tooltip: \"Set to 'on' to enable SASL authentication\",\n type: \"on|off\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"Set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS skip verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"client_tls_cert\",\n label: \"client TLS cert\",\n tooltip: \"Path to client certificate for mTLS auth\",\n type: \"path\",\n placeholder: \"Enter TLS Client Cert\",\n },\n {\n name: \"client_tls_key\",\n label: \"client TLS key\",\n tooltip: \"Path to client key for mTLS auth\",\n type: \"path\",\n placeholder: \"Enter TLS Client Key\",\n },\n {\n name: \"version\",\n label: \"Version\",\n tooltip: \"Specify the version of the Kafka cluster e.g '2.2.0'\",\n type: \"string\",\n placeholder: \"Enter Kafka Version\",\n },\n ...commonFields,\n ],\n [notifyAmqp]: [\n {\n name: \"url\",\n required: true,\n label: \"URL\",\n tooltip:\n \"AMQP server endpoint e.g. `amqp://myuser:mypassword@localhost:5672`\",\n type: \"url\",\n },\n {\n name: \"exchange\",\n label: \"Exchange\",\n tooltip: \"Name of the AMQP exchange\",\n type: \"string\",\n placeholder: \"Enter Exchange\",\n },\n {\n name: \"exchange_type\",\n label: \"Exchange Type\",\n tooltip: \"AMQP exchange type\",\n type: \"string\",\n placeholder: \"Enter Exchange Type\",\n },\n {\n name: \"routing_key\",\n label: \"Routing Key\",\n tooltip: \"Routing key for publishing\",\n type: \"string\",\n placeholder: \"Enter Routing Key\",\n },\n {\n name: \"mandatory\",\n label: \"Mandatory\",\n tooltip:\n \"Quietly ignore undelivered messages when set to 'off', default is 'on'\",\n type: \"on|off\",\n },\n {\n name: \"durable\",\n label: \"Durable\",\n tooltip:\n \"Persist queue across broker restarts when set to 'on', default is 'off'\",\n type: \"on|off\",\n },\n {\n name: \"no_wait\",\n label: \"No Wait\",\n tooltip:\n \"Non-blocking message delivery when set to 'on', default is 'off'\",\n type: \"on|off\",\n },\n {\n name: \"internal\",\n label: \"Internal\",\n tooltip:\n \"Set to 'on' for exchange to be not used directly by publishers, but only when bound to other exchanges\",\n type: \"on|off\",\n },\n {\n name: \"auto_deleted\",\n label: \"Auto Deleted\",\n tooltip:\n \"Auto delete queue when set to 'on', when there are no consumers\",\n type: \"on|off\",\n },\n {\n name: \"delivery_mode\",\n label: \"Delivery Mode\",\n tooltip: \"Set to '1' for non-persistent or '2' for persistent queue\",\n type: \"number\",\n placeholder: \"Enter Delivery Mode\",\n },\n ...commonFields,\n ],\n [notifyRedis]: [\n {\n name: \"address\",\n required: true,\n label: \"Address\",\n tooltip: \"Redis server's address. For example: `localhost:6379`\",\n type: \"address\",\n placeholder: \"Enter Address\",\n },\n {\n name: \"key\",\n required: true,\n label: \"Key\",\n tooltip: \"Redis key to store/update events, key is auto-created\",\n type: \"string\",\n placeholder: \"Enter Key\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"Redis server password\",\n type: \"string\",\n placeholder: \"Enter Password\",\n },\n ...commonFields,\n ],\n [notifyMqtt]: [\n {\n name: \"broker\",\n required: true,\n label: \"Broker\",\n tooltip: \"MQTT server endpoint e.g. `tcp://localhost:1883`\",\n type: \"uri\",\n placeholder: \"Enter Brokers\",\n },\n {\n name: \"topic\",\n required: true,\n label: \"Topic\",\n tooltip: \"name of the MQTT topic to publish\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"username\",\n label: \"Username\",\n tooltip: \"MQTT username\",\n type: \"string\",\n placeholder: \"Enter Username\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"MQTT password\",\n type: \"string\",\n placeholder: \"Enter Password\",\n },\n {\n name: \"qos\",\n label: \"QOS\",\n tooltip: \"Set the quality of service priority, defaults to '0'\",\n type: \"number\",\n placeholder: \"Enter QOS\",\n },\n {\n name: \"keep_alive_interval\",\n label: \"Keep Alive Interval\",\n tooltip: \"Keep-alive interval for MQTT connections in s,m,h,d\",\n type: \"duration\",\n placeholder: \"Enter Keep Alive Internal\",\n },\n {\n name: \"reconnect_interval\",\n label: \"Reconnect Interval\",\n tooltip: \"Reconnect interval for MQTT connections in s,m,h,d\",\n type: \"duration\",\n placeholder: \"Enter Reconnect Interval\",\n },\n ...commonFields,\n ],\n [notifyNats]: [\n {\n name: \"address\",\n required: true,\n label: \"Address\",\n tooltip: \"NATS server address e.g. '0.0.0.0:4222'\",\n type: \"address\",\n placeholder: \"Enter Address\",\n },\n {\n name: \"subject\",\n required: true,\n label: \"Subject\",\n tooltip: \"NATS subscription subject\",\n type: \"string\",\n placeholder: \"Enter NATS Subject\",\n },\n {\n name: \"username\",\n label: \"Username\",\n tooltip: \"NATS username\",\n type: \"string\",\n placeholder: \"Enter NATS Username\",\n },\n {\n name: \"password\",\n label: \"Password\",\n tooltip: \"NATS password\",\n type: \"string\",\n placeholder: \"Enter NATS password\",\n },\n {\n name: \"token\",\n label: \"Token\",\n tooltip: \"NATS token\",\n type: \"string\",\n placeholder: \"Enter NATS token\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"Set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS Skip Verify\",\n tooltip:\n 'Trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n {\n name: \"ping_interval\",\n label: \"Ping Interval\",\n tooltip: \"Client ping commands interval in s,m,h,d. Disabled by default\",\n type: \"duration\",\n placeholder: \"Enter Ping Interval\",\n },\n {\n name: \"streaming\",\n label: \"Streaming\",\n tooltip: \"Set to 'on', to use streaming NATS server\",\n type: \"on|off\",\n },\n {\n name: \"streaming_async\",\n label: \"Streaming async\",\n tooltip: \"Set to 'on', to enable asynchronous publish\",\n type: \"on|off\",\n },\n {\n name: \"streaming_max_pub_acks_in_flight\",\n label: \"Streaming max publish ACKS in flight\",\n tooltip: \"Number of messages to publish without waiting for ACKs\",\n type: \"number\",\n placeholder: \"Enter Streaming in flight value\",\n },\n {\n name: \"streaming_cluster_id\",\n label: \"Streaming Cluster ID\",\n tooltip: \"Unique ID for NATS streaming cluster\",\n type: \"string\",\n placeholder: \"Enter Streaming Cluster ID\",\n },\n {\n name: \"cert_authority\",\n label: \"Cert Authority\",\n tooltip: \"Path to certificate chain of the target NATS server\",\n type: \"string\",\n placeholder: \"Enter Cert Authority\",\n },\n {\n name: \"client_cert\",\n label: \"Client Cert\",\n tooltip: \"Client cert for NATS mTLS auth\",\n type: \"string\",\n placeholder: \"Enter Client Cert\",\n },\n {\n name: \"client_key\",\n label: \"Client Key\",\n tooltip: \"Client cert key for NATS mTLS auth\",\n type: \"string\",\n placeholder: \"Enter Client Key\",\n },\n ...commonFields,\n ],\n [notifyElasticsearch]: [\n {\n name: \"url\",\n required: true,\n label: \"URL\",\n tooltip:\n \"Elasticsearch server's address, with optional authentication info\",\n type: \"url\",\n placeholder: \"Enter URL\",\n },\n {\n name: \"index\",\n required: true,\n label: \"Index\",\n tooltip:\n \"Elasticsearch index to store/update events, index is auto-created\",\n type: \"string\",\n placeholder: \"Enter Index\",\n },\n {\n name: \"format\",\n required: true,\n label: \"Format\",\n tooltip:\n \"'namespace' reflects current bucket/object list and 'access' reflects a journal of object operations, defaults to 'namespace'\",\n type: \"enum\",\n placeholder: \"Enter Format\",\n },\n ...commonFields,\n ],\n [notifyWebhooks]: [\n {\n name: \"endpoint\",\n required: true,\n label: \"Endpoint\",\n tooltip:\n \"webhook server endpoint e.g. http://localhost:8080/minio/events\",\n type: \"url\",\n placeholder: \"Enter Endpoint\",\n },\n {\n name: \"auth_token\",\n label: \"Auth Token\",\n tooltip: \"opaque string or JWT authorization token\",\n type: \"string\",\n placeholder: \"Enter auth_token\",\n },\n ...commonFields,\n ],\n [notifyNsq]: [\n {\n name: \"nsqd_address\",\n required: true,\n label: \"NSQD Address\",\n tooltip: \"NSQ server address e.g. '127.0.0.1:4150'\",\n type: \"address\",\n placeholder: \"Enter nsqd_address\",\n },\n {\n name: \"topic\",\n required: true,\n label: \"Topic\",\n tooltip: \"NSQ topic\",\n type: \"string\",\n placeholder: \"Enter Topic\",\n },\n {\n name: \"tls\",\n label: \"TLS\",\n tooltip: \"set to 'on' to enable TLS\",\n type: \"on|off\",\n },\n {\n name: \"tls_skip_verify\",\n label: \"TLS Skip Verify\",\n tooltip:\n 'trust server TLS without verification, defaults to \"on\" (verify)',\n type: \"on|off\",\n },\n ...commonFields,\n ],\n};\n"],"names":["withStyles","theme","createStyles","link","display","textDecoration","color","palette","primary","light","iconBox","flexDirection","background","height","paddingBottom","paddingTop","paddingRight","paddingLeft","borderRadius","icon","lineHeight","marginRight","alignItems","width","label","fontSize","fontWeight","to","classes","className","executeOnClick","sx","onClick","pageContentStyles","children","contentSpacer","container","item","xs","mapDispatchToProps","toggleList","connector","connect","state","sidebarOpen","system","operatorMode","managerObjects","objectBrowser","objectManager","objectsToManage","features","console","session","headerContainer","minHeight","backgroundColor","left","boxShadow","justifyContent","labelStyle","marginLeft","marginTop","rightMenu","textAlign","logo","fill","main","middleComponent","actions","includes","Fragment","direction","sm","md","variant","length","component","id","size","withLogos","servicesList","elService","settingsCommon","typesSelection","IAM_PAGES","iconContainer","map","lambdaNotif","history","actionTrigger","lambdaNotifIcon","src","logoButton","alt","targetTitle","lambdaNotifTitle","notifyPostgres","notifyMysql","notifyKafka","notifyAmqp","notifyMqtt","notifyRedis","notifyNats","notifyElasticsearch","notifyWebhooks","notifyNsq","notificationTransform","notificationElements","element","service_name","service","account_id","status","commonFields","name","required","tooltip","type","placeholder","removeEmptyFields","formFields","filter","field","value","notificationEndpointsFields"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/711.4196799c.chunk.js b/portal-ui/build/static/js/711.ca4cd5de.chunk.js similarity index 91% rename from portal-ui/build/static/js/711.4196799c.chunk.js rename to portal-ui/build/static/js/711.ca4cd5de.chunk.js index a976f66ee..db384eb21 100644 --- a/portal-ui/build/static/js/711.4196799c.chunk.js +++ b/portal-ui/build/static/js/711.ca4cd5de.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[711],{50711:function(e,t,n){n.r(t);var s=n(70885),r=n(72791),o=n(60364),i=n(51691),l=n(42649),c=n(9505),u=n(23508),a=n(74833),d=n(37516),f=n(80184),h={setErrorSnackMessage:l.Ih},v=(0,o.$j)(null,h);t.default=v((function(e){var t=e.closeDeleteModalAndRefresh,n=e.deleteOpen,o=e.selectedBucket,l=e.selectedObjects,h=e.setErrorSnackMessage,v=e.versioning,p=(0,r.useState)(!1),b=(0,s.Z)(p,2),j=b[0],k=b[1],g=(0,c.Z)((function(){return t(!0)}),(function(e){return h(e)})),C=(0,s.Z)(g,2),D=C[0],Z=C[1];if(!l)return null;return(0,f.jsx)(u.Z,{title:"Delete Objects",confirmText:"Delete",isOpen:n,titleIcon:(0,f.jsx)(a.Nv,{}),isLoading:D,onConfirm:function(){for(var e=[],t=0;t.\n\nimport React, { useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../../../icons\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IDeleteObjectProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObjects: string[];\n selectedBucket: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n versioning: boolean;\n}\n\nconst DeleteObject = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObjects,\n setErrorSnackMessage,\n versioning,\n}: IDeleteObjectProps) => {\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n const [deleteVersions, setDeleteVersions] = useState(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedObjects) {\n return null;\n }\n const onConfirmDelete = () => {\n let toSend = [];\n for (let i = 0; i < selectedObjects.length; i++) {\n if (selectedObjects[i].endsWith(\"/\")) {\n toSend.push({\n path: selectedObjects[i],\n versionID: \"\",\n recursive: true,\n });\n } else {\n toSend.push({\n path: selectedObjects[i],\n versionID: \"\",\n recursive: false,\n });\n }\n }\n\n if (toSend) {\n invokeDeleteApi(\n \"POST\",\n `/api/v1/buckets/${selectedBucket}/delete-objects?all_versions=${deleteVersions}`,\n toSend\n );\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 the selected {selectedObjects.length}{\" \"}\n objects?{\" \"}\n {versioning && (\n {\n setDeleteVersions(!deleteVersions);\n }}\n description=\"\"\n />\n )}\n \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteObject);\n"],"names":["mapDispatchToProps","setErrorSnackMessage","connector","connect","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","selectedObjects","versioning","useState","deleteVersions","setDeleteVersions","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","toSend","i","length","endsWith","push","path","versionID","recursive","onClose","confirmationContent","label","indicatorLabels","checked","value","id","name","onChange","e","description"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/711.ca4cd5de.chunk.js","mappings":"oOAiHMA,EAAqB,CACzBC,qBAAAA,EAAAA,IAGIC,GAAYC,EAAAA,EAAAA,IAAQ,KAAMH,GAEhC,UAAeE,GApFM,SAAC,GAOK,IANzBE,EAMwB,EANxBA,2BACAC,EAKwB,EALxBA,WACAC,EAIwB,EAJxBA,eACAC,EAGwB,EAHxBA,gBACAN,EAEwB,EAFxBA,qBACAO,EACwB,EADxBA,WAKA,GAA4CC,EAAAA,EAAAA,WAAkB,GAA9D,eAAOC,EAAP,KAAuBC,EAAvB,KAEA,GAAyCC,EAAAA,EAAAA,IALpB,kBAAMR,GAA2B,MACnC,SAACS,GAAD,OAA+BZ,EAAqBY,MAIvE,eAAOC,EAAP,KAAsBC,EAAtB,KAEA,IAAKR,EACH,OAAO,KA6BT,OACE,SAAC,IAAD,CACES,MAAK,iBACLC,YAAa,SACbC,OAAQb,EACRc,WAAW,SAAC,KAAD,IACXC,UAAWN,EACXO,UAlCoB,WAEtB,IADA,IAAIC,EAAS,GACJC,EAAI,EAAGA,EAAIhB,EAAgBiB,OAAQD,IACtChB,EAAgBgB,GAAGE,SAAS,KAC9BH,EAAOI,KAAK,CACVC,KAAMpB,EAAgBgB,GACtBK,UAAW,GACXC,WAAW,IAGbP,EAAOI,KAAK,CACVC,KAAMpB,EAAgBgB,GACtBK,UAAW,GACXC,WAAW,IAKbP,GACFP,EACE,OADa,0BAEMT,EAFN,wCAEoDI,GACjEY,IAaFQ,QA3CY,kBAAM1B,GAA2B,IA4C7C2B,qBACE,UAAC,IAAD,2DACgDxB,EAAgBiB,OAAQ,IADxE,WAEW,IACRhB,IACC,SAAC,IAAD,CACEwB,MAAO,sBACPC,gBAAiB,CAAC,MAAO,MACzBC,QAASxB,EACTyB,MAAO,kBACPC,GAAG,kBACHC,KAAK,kBACLC,SAAU,SAACC,GACT5B,GAAmBD,IAErB8B,YAAY","sources":["screens/Console/Buckets/ListBuckets/Objects/ListObjects/DeleteMultipleObjects.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 { connect } from \"react-redux\";\nimport { DialogContentText } from \"@mui/material\";\nimport { setErrorSnackMessage } from \"../../../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../../../common/types\";\nimport useApi from \"../../../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../../../icons\";\nimport FormSwitchWrapper from \"../../../../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\n\ninterface IDeleteObjectProps {\n closeDeleteModalAndRefresh: (refresh: boolean) => void;\n deleteOpen: boolean;\n selectedObjects: string[];\n selectedBucket: string;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n versioning: boolean;\n}\n\nconst DeleteObject = ({\n closeDeleteModalAndRefresh,\n deleteOpen,\n selectedBucket,\n selectedObjects,\n setErrorSnackMessage,\n versioning,\n}: IDeleteObjectProps) => {\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n const [deleteVersions, setDeleteVersions] = useState(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n if (!selectedObjects) {\n return null;\n }\n const onConfirmDelete = () => {\n let toSend = [];\n for (let i = 0; i < selectedObjects.length; i++) {\n if (selectedObjects[i].endsWith(\"/\")) {\n toSend.push({\n path: selectedObjects[i],\n versionID: \"\",\n recursive: true,\n });\n } else {\n toSend.push({\n path: selectedObjects[i],\n versionID: \"\",\n recursive: false,\n });\n }\n }\n\n if (toSend) {\n invokeDeleteApi(\n \"POST\",\n `/api/v1/buckets/${selectedBucket}/delete-objects?all_versions=${deleteVersions}`,\n toSend\n );\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 the selected {selectedObjects.length}{\" \"}\n objects?{\" \"}\n {versioning && (\n {\n setDeleteVersions(!deleteVersions);\n }}\n description=\"\"\n />\n )}\n \n }\n />\n );\n};\n\nconst mapDispatchToProps = {\n setErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default connector(DeleteObject);\n"],"names":["mapDispatchToProps","setErrorSnackMessage","connector","connect","closeDeleteModalAndRefresh","deleteOpen","selectedBucket","selectedObjects","versioning","useState","deleteVersions","setDeleteVersions","useApi","err","deleteLoading","invokeDeleteApi","title","confirmText","isOpen","titleIcon","isLoading","onConfirm","toSend","i","length","endsWith","push","path","versionID","recursive","onClose","confirmationContent","label","indicatorLabels","checked","value","id","name","onChange","e","description"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7315.f1bb4245.chunk.js b/portal-ui/build/static/js/7315.f1bb4245.chunk.js new file mode 100644 index 000000000..0f1f9a066 --- /dev/null +++ b/portal-ui/build/static/js/7315.f1bb4245.chunk.js @@ -0,0 +1,2 @@ +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7315],{99663:function(t,e,i){var r=i(95318);e.Z=void 0;var a=r(i(45649)),n=i(80184),o=(0,a.default)((0,n.jsx)("path",{d:"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z"}),"AttachFile");e.Z=o},86711:function(t,e,i){var r=i(95318);e.Z=void 0;var a=r(i(45649)),n=i(80184),o=(0,a.default)((0,n.jsx)("path",{d:"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z"}),"Cancel");e.Z=o},29823:function(t,e,i){var r=i(95318);e.Z=void 0;var a=r(i(45649)),n=i(80184),o=(0,a.default)((0,n.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");e.Z=o},52502:function(t,e,i){var r=i(95318);e.Z=void 0;var a=r(i(45649)),n=i(80184),o=(0,a.default)((0,n.jsx)("path",{d:"m9.31 17 2.44-2.44L14.19 17l1.06-1.06-2.44-2.44 2.44-2.44L14.19 10l-2.44 2.44L9.31 10l-1.06 1.06 2.44 2.44-2.44 2.44L9.31 17zM19 3h-1V1h-2v2H8V1H6v2H5c-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-2zm0 16H5V8h14v11z"}),"EventBusy");e.Z=o},90983:function(t,e,i){var r=i(95318);e.Z=void 0;var a=r(i(45649)),n=i(80184),o=(0,a.default)((0,n.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 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z"}),"Language");e.Z=o},26445:function(t,e,i){i.d(e,{Z:function(){return g}});var r=i(4942),a=i(63366),n=i(87462),o=i(72791),l=i(28182),c=i(90767),s=i(93736),d=i(47630),h=i(95159);function u(t){return(0,h.Z)("MuiContainer",t)}(0,i(30208).Z)("MuiContainer",["root","disableGutters","fixed","maxWidthXs","maxWidthSm","maxWidthMd","maxWidthLg","maxWidthXl"]);var v=i(14036),m=i(80184),f=["className","component","disableGutters","fixed","maxWidth"],p=(0,d.ZP)("div",{name:"MuiContainer",slot:"Root",overridesResolver:function(t,e){var i=t.ownerState;return[e.root,e["maxWidth".concat((0,v.Z)(String(i.maxWidth)))],i.fixed&&e.fixed,i.disableGutters&&e.disableGutters]}})((function(t){var e=t.theme,i=t.ownerState;return(0,n.Z)({width:"100%",marginLeft:"auto",boxSizing:"border-box",marginRight:"auto",display:"block"},!i.disableGutters&&(0,r.Z)({paddingLeft:e.spacing(2),paddingRight:e.spacing(2)},e.breakpoints.up("sm"),{paddingLeft:e.spacing(3),paddingRight:e.spacing(3)}))}),(function(t){var e=t.theme;return t.ownerState.fixed&&Object.keys(e.breakpoints.values).reduce((function(t,i){var r=e.breakpoints.values[i];return 0!==r&&(t[e.breakpoints.up(i)]={maxWidth:"".concat(r).concat(e.breakpoints.unit)}),t}),{})}),(function(t){var e=t.theme,i=t.ownerState;return(0,n.Z)({},"xs"===i.maxWidth&&(0,r.Z)({},e.breakpoints.up("xs"),{maxWidth:Math.max(e.breakpoints.values.xs,444)}),i.maxWidth&&"xs"!==i.maxWidth&&(0,r.Z)({},e.breakpoints.up(i.maxWidth),{maxWidth:"".concat(e.breakpoints.values[i.maxWidth]).concat(e.breakpoints.unit)}))})),g=o.forwardRef((function(t,e){var i=(0,s.Z)({props:t,name:"MuiContainer"}),r=i.className,o=i.component,d=void 0===o?"div":o,h=i.disableGutters,g=void 0!==h&&h,x=i.fixed,Z=void 0!==x&&x,b=i.maxWidth,w=void 0===b?"lg":b,S=(0,a.Z)(i,f),W=(0,n.Z)({},i,{component:d,disableGutters:g,fixed:Z,maxWidth:w}),M=function(t){var e=t.classes,i=t.fixed,r=t.disableGutters,a=t.maxWidth,n={root:["root",a&&"maxWidth".concat((0,v.Z)(String(a))),i&&"fixed",r&&"disableGutters"]};return(0,c.Z)(n,u,e)}(W);return(0,m.jsx)(p,(0,n.Z)({as:d,ownerState:W,className:(0,l.Z)(M.root,r),ref:e},S))}))},94721:function(t,e,i){var r=i(63366),a=i(87462),n=i(72791),o=i(28182),l=i(90767),c=i(12065),s=i(47630),d=i(93736),h=i(90133),u=i(80184),v=["absolute","children","className","component","flexItem","light","orientation","role","textAlign","variant"],m=(0,s.ZP)("div",{name:"MuiDivider",slot:"Root",overridesResolver:function(t,e){var i=t.ownerState;return[e.root,i.absolute&&e.absolute,e[i.variant],i.light&&e.light,"vertical"===i.orientation&&e.vertical,i.flexItem&&e.flexItem,i.children&&e.withChildren,i.children&&"vertical"===i.orientation&&e.withChildrenVertical,"right"===i.textAlign&&"vertical"!==i.orientation&&e.textAlignRight,"left"===i.textAlign&&"vertical"!==i.orientation&&e.textAlignLeft]}})((function(t){var e=t.theme,i=t.ownerState;return(0,a.Z)({margin:0,flexShrink:0,borderWidth:0,borderStyle:"solid",borderColor:e.palette.divider,borderBottomWidth:"thin"},i.absolute&&{position:"absolute",bottom:0,left:0,width:"100%"},i.light&&{borderColor:(0,c.Fq)(e.palette.divider,.08)},"inset"===i.variant&&{marginLeft:72},"middle"===i.variant&&"horizontal"===i.orientation&&{marginLeft:e.spacing(2),marginRight:e.spacing(2)},"middle"===i.variant&&"vertical"===i.orientation&&{marginTop:e.spacing(1),marginBottom:e.spacing(1)},"vertical"===i.orientation&&{height:"100%",borderBottomWidth:0,borderRightWidth:"thin"},i.flexItem&&{alignSelf:"stretch",height:"auto"})}),(function(t){var e=t.theme,i=t.ownerState;return(0,a.Z)({},i.children&&{display:"flex",whiteSpace:"nowrap",textAlign:"center",border:0,"&::before, &::after":{position:"relative",width:"100%",borderTop:"thin solid ".concat(e.palette.divider),top:"50%",content:'""',transform:"translateY(50%)"}})}),(function(t){var e=t.theme,i=t.ownerState;return(0,a.Z)({},i.children&&"vertical"===i.orientation&&{flexDirection:"column","&::before, &::after":{height:"100%",top:"0%",left:"50%",borderTop:0,borderLeft:"thin solid ".concat(e.palette.divider),transform:"translateX(0%)"}})}),(function(t){var e=t.ownerState;return(0,a.Z)({},"right"===e.textAlign&&"vertical"!==e.orientation&&{"&::before":{width:"90%"},"&::after":{width:"10%"}},"left"===e.textAlign&&"vertical"!==e.orientation&&{"&::before":{width:"10%"},"&::after":{width:"90%"}})})),f=(0,s.ZP)("span",{name:"MuiDivider",slot:"Wrapper",overridesResolver:function(t,e){var i=t.ownerState;return[e.wrapper,"vertical"===i.orientation&&e.wrapperVertical]}})((function(t){var e=t.theme,i=t.ownerState;return(0,a.Z)({display:"inline-block",paddingLeft:"calc(".concat(e.spacing(1)," * 1.2)"),paddingRight:"calc(".concat(e.spacing(1)," * 1.2)")},"vertical"===i.orientation&&{paddingTop:"calc(".concat(e.spacing(1)," * 1.2)"),paddingBottom:"calc(".concat(e.spacing(1)," * 1.2)")})})),p=n.forwardRef((function(t,e){var i=(0,d.Z)({props:t,name:"MuiDivider"}),n=i.absolute,c=void 0!==n&&n,s=i.children,p=i.className,g=i.component,x=void 0===g?s?"div":"hr":g,Z=i.flexItem,b=void 0!==Z&&Z,w=i.light,S=void 0!==w&&w,W=i.orientation,M=void 0===W?"horizontal":W,L=i.role,z=void 0===L?"hr"!==x?"separator":void 0:L,C=i.textAlign,I=void 0===C?"center":C,k=i.variant,A=void 0===k?"fullWidth":k,R=(0,r.Z)(i,v),V=(0,a.Z)({},i,{absolute:c,component:x,flexItem:b,light:S,orientation:M,role:z,textAlign:I,variant:A}),j=function(t){var e=t.absolute,i=t.children,r=t.classes,a=t.flexItem,n=t.light,o=t.orientation,c=t.textAlign,s={root:["root",e&&"absolute",t.variant,n&&"light","vertical"===o&&"vertical",a&&"flexItem",i&&"withChildren",i&&"vertical"===o&&"withChildrenVertical","right"===c&&"vertical"!==o&&"textAlignRight","left"===c&&"vertical"!==o&&"textAlignLeft"],wrapper:["wrapper","vertical"===o&&"wrapperVertical"]};return(0,l.Z)(s,h.V,r)}(V);return(0,u.jsx)(m,(0,a.Z)({as:x,className:(0,o.Z)(j.root,p),role:z,ref:e,ownerState:V},R,{children:s?(0,u.jsx)(f,{className:j.wrapper,ownerState:V,children:s}):null}))}));e.Z=p},20653:function(t,e,i){i.d(e,{Z:function(){return p}});var r=i(63366),a=i(87462),n=i(72791),o=i(28182),l=i(90767),c=i(66199),s=i(47630),d=i(93736),h=i(95159);function u(t){return(0,h.Z)("MuiListItemAvatar",t)}(0,i(30208).Z)("MuiListItemAvatar",["root","alignItemsFlexStart"]);var v=i(80184),m=["className"],f=(0,s.ZP)("div",{name:"MuiListItemAvatar",slot:"Root",overridesResolver:function(t,e){var i=t.ownerState;return[e.root,"flex-start"===i.alignItems&&e.alignItemsFlexStart]}})((function(t){var e=t.ownerState;return(0,a.Z)({minWidth:56,flexShrink:0},"flex-start"===e.alignItems&&{marginTop:8})})),p=n.forwardRef((function(t,e){var i=(0,d.Z)({props:t,name:"MuiListItemAvatar"}),s=i.className,h=(0,r.Z)(i,m),p=n.useContext(c.Z),g=(0,a.Z)({},i,{alignItems:p.alignItems}),x=function(t){var e=t.alignItems,i=t.classes,r={root:["root","flex-start"===e&&"alignItemsFlexStart"]};return(0,l.Z)(r,u,i)}(g);return(0,v.jsx)(f,(0,a.Z)({className:(0,o.Z)(x.root,s),ownerState:g,ref:e},h))}))}}]); +//# sourceMappingURL=7315.f1bb4245.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7315.f1bb4245.chunk.js.map b/portal-ui/build/static/js/7315.f1bb4245.chunk.js.map new file mode 100644 index 000000000..768b44431 --- /dev/null +++ b/portal-ui/build/static/js/7315.f1bb4245.chunk.js.map @@ -0,0 +1 @@ +{"version":3,"file":"static/js/7315.f1bb4245.chunk.js","mappings":"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","sources":["../node_modules/@mui/icons-material/AttachFile.js","../node_modules/@mui/icons-material/Cancel.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/EventBusy.js","../node_modules/@mui/icons-material/Language.js","../node_modules/@mui/material/Container/containerClasses.js","../node_modules/@mui/material/Container/Container.js","../node_modules/@mui/material/Divider/Divider.js","../node_modules/@mui/material/ListItemAvatar/listItemAvatarClasses.js","../node_modules/@mui/material/ListItemAvatar/ListItemAvatar.js"],"sourcesContent":["\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M16.5 6v11.5c0 2.21-1.79 4-4 4s-4-1.79-4-4V5c0-1.38 1.12-2.5 2.5-2.5s2.5 1.12 2.5 2.5v10.5c0 .55-.45 1-1 1s-1-.45-1-1V6H10v9.5c0 1.38 1.12 2.5 2.5 2.5s2.5-1.12 2.5-2.5V5c0-2.21-1.79-4-4-4S7 2.79 7 5v12.5c0 3.04 2.46 5.5 5.5 5.5s5.5-2.46 5.5-5.5V6h-1.5z\"\n}), 'AttachFile');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z\"\n}), 'Cancel');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m9.31 17 2.44-2.44L14.19 17l1.06-1.06-2.44-2.44 2.44-2.44L14.19 10l-2.44 2.44L9.31 10l-1.06 1.06 2.44 2.44-2.44 2.44L9.31 17zM19 3h-1V1h-2v2H8V1H6v2H5c-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-2zm0 16H5V8h14v11z\"\n}), 'EventBusy');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"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 2zm6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56zM12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96zM4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2 0 .68.06 1.34.14 2H4.26zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56zm2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8zM12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96zM14.34 14H9.66c-.09-.66-.16-1.32-.16-2 0-.68.07-1.35.16-2h4.68c.09.65.16 1.32.16 2 0 .68-.07 1.34-.16 2zm.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56zM16.36 14c.08-.66.14-1.32.14-2 0-.68-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2h-3.38z\"\n}), 'Language');\n\nexports.default = _default;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getContainerUtilityClass(slot) {\n return generateUtilityClass('MuiContainer', slot);\n}\nconst containerClasses = generateUtilityClasses('MuiContainer', ['root', 'disableGutters', 'fixed', 'maxWidthXs', 'maxWidthSm', 'maxWidthMd', 'maxWidthLg', 'maxWidthXl']);\nexport default containerClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"disableGutters\", \"fixed\", \"maxWidth\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getContainerUtilityClass } from './containerClasses';\nimport capitalize from '../utils/capitalize';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n fixed,\n disableGutters,\n maxWidth\n } = ownerState;\n const slots = {\n root: ['root', maxWidth && `maxWidth${capitalize(String(maxWidth))}`, fixed && 'fixed', disableGutters && 'disableGutters']\n };\n return composeClasses(slots, getContainerUtilityClass, classes);\n};\n\nconst ContainerRoot = styled('div', {\n name: 'MuiContainer',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, styles[`maxWidth${capitalize(String(ownerState.maxWidth))}`], ownerState.fixed && styles.fixed, ownerState.disableGutters && styles.disableGutters];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n width: '100%',\n marginLeft: 'auto',\n boxSizing: 'border-box',\n marginRight: 'auto',\n display: 'block'\n}, !ownerState.disableGutters && {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }\n}), ({\n theme,\n ownerState\n}) => ownerState.fixed && Object.keys(theme.breakpoints.values).reduce((acc, breakpoint) => {\n const value = theme.breakpoints.values[breakpoint];\n\n if (value !== 0) {\n acc[theme.breakpoints.up(breakpoint)] = {\n maxWidth: `${value}${theme.breakpoints.unit}`\n };\n }\n\n return acc;\n}, {}), ({\n theme,\n ownerState\n}) => _extends({}, ownerState.maxWidth === 'xs' && {\n [theme.breakpoints.up('xs')]: {\n maxWidth: Math.max(theme.breakpoints.values.xs, 444)\n }\n}, ownerState.maxWidth && ownerState.maxWidth !== 'xs' && {\n [theme.breakpoints.up(ownerState.maxWidth)]: {\n maxWidth: `${theme.breakpoints.values[ownerState.maxWidth]}${theme.breakpoints.unit}`\n }\n}));\nconst Container = /*#__PURE__*/React.forwardRef(function Container(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiContainer'\n });\n\n const {\n className,\n component = 'div',\n disableGutters = false,\n fixed = false,\n maxWidth = 'lg'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n component,\n disableGutters,\n fixed,\n maxWidth\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ContainerRoot, _extends({\n as: component,\n ownerState: ownerState,\n className: clsx(classes.root, className),\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Container.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * @ignore\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * If `true`, the left and right padding is removed.\n * @default false\n */\n disableGutters: PropTypes.bool,\n\n /**\n * Set the max-width to match the min-width of the current breakpoint.\n * This is useful if you'd prefer to design for a fixed set of sizes\n * instead of trying to accommodate a fully fluid viewport.\n * It's fluid by default.\n * @default false\n */\n fixed: PropTypes.bool,\n\n /**\n * Determine the max-width of the container.\n * The container width grows with the size of the screen.\n * Set to `false` to disable `maxWidth`.\n * @default 'lg'\n */\n maxWidth: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['xs', 'sm', 'md', 'lg', 'xl', false]), PropTypes.string]),\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Container;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"absolute\", \"children\", \"className\", \"component\", \"flexItem\", \"light\", \"orientation\", \"role\", \"textAlign\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getDividerUtilityClass } from './dividerClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n absolute,\n children,\n classes,\n flexItem,\n light,\n orientation,\n textAlign,\n variant\n } = ownerState;\n const slots = {\n root: ['root', absolute && 'absolute', variant, light && 'light', orientation === 'vertical' && 'vertical', flexItem && 'flexItem', children && 'withChildren', children && orientation === 'vertical' && 'withChildrenVertical', textAlign === 'right' && orientation !== 'vertical' && 'textAlignRight', textAlign === 'left' && orientation !== 'vertical' && 'textAlignLeft'],\n wrapper: ['wrapper', orientation === 'vertical' && 'wrapperVertical']\n };\n return composeClasses(slots, getDividerUtilityClass, classes);\n};\n\nconst DividerRoot = styled('div', {\n name: 'MuiDivider',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.absolute && styles.absolute, styles[ownerState.variant], ownerState.light && styles.light, ownerState.orientation === 'vertical' && styles.vertical, ownerState.flexItem && styles.flexItem, ownerState.children && styles.withChildren, ownerState.children && ownerState.orientation === 'vertical' && styles.withChildrenVertical, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && styles.textAlignRight, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && styles.textAlignLeft];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 0,\n // Reset browser default style.\n flexShrink: 0,\n borderWidth: 0,\n borderStyle: 'solid',\n borderColor: theme.palette.divider,\n borderBottomWidth: 'thin'\n}, ownerState.absolute && {\n position: 'absolute',\n bottom: 0,\n left: 0,\n width: '100%'\n}, ownerState.light && {\n borderColor: alpha(theme.palette.divider, 0.08)\n}, ownerState.variant === 'inset' && {\n marginLeft: 72\n}, ownerState.variant === 'middle' && ownerState.orientation === 'horizontal' && {\n marginLeft: theme.spacing(2),\n marginRight: theme.spacing(2)\n}, ownerState.variant === 'middle' && ownerState.orientation === 'vertical' && {\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n}, ownerState.orientation === 'vertical' && {\n height: '100%',\n borderBottomWidth: 0,\n borderRightWidth: 'thin'\n}, ownerState.flexItem && {\n alignSelf: 'stretch',\n height: 'auto'\n}), ({\n theme,\n ownerState\n}) => _extends({}, ownerState.children && {\n display: 'flex',\n whiteSpace: 'nowrap',\n textAlign: 'center',\n border: 0,\n '&::before, &::after': {\n position: 'relative',\n width: '100%',\n borderTop: `thin solid ${theme.palette.divider}`,\n top: '50%',\n content: '\"\"',\n transform: 'translateY(50%)'\n }\n}), ({\n theme,\n ownerState\n}) => _extends({}, ownerState.children && ownerState.orientation === 'vertical' && {\n flexDirection: 'column',\n '&::before, &::after': {\n height: '100%',\n top: '0%',\n left: '50%',\n borderTop: 0,\n borderLeft: `thin solid ${theme.palette.divider}`,\n transform: 'translateX(0%)'\n }\n}), ({\n ownerState\n}) => _extends({}, ownerState.textAlign === 'right' && ownerState.orientation !== 'vertical' && {\n '&::before': {\n width: '90%'\n },\n '&::after': {\n width: '10%'\n }\n}, ownerState.textAlign === 'left' && ownerState.orientation !== 'vertical' && {\n '&::before': {\n width: '10%'\n },\n '&::after': {\n width: '90%'\n }\n}));\nconst DividerWrapper = styled('span', {\n name: 'MuiDivider',\n slot: 'Wrapper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.wrapper, ownerState.orientation === 'vertical' && styles.wrapperVertical];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'inline-block',\n paddingLeft: `calc(${theme.spacing(1)} * 1.2)`,\n paddingRight: `calc(${theme.spacing(1)} * 1.2)`\n}, ownerState.orientation === 'vertical' && {\n paddingTop: `calc(${theme.spacing(1)} * 1.2)`,\n paddingBottom: `calc(${theme.spacing(1)} * 1.2)`\n}));\nconst Divider = /*#__PURE__*/React.forwardRef(function Divider(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiDivider'\n });\n\n const {\n absolute = false,\n children,\n className,\n component = children ? 'div' : 'hr',\n flexItem = false,\n light = false,\n orientation = 'horizontal',\n role = component !== 'hr' ? 'separator' : undefined,\n textAlign = 'center',\n variant = 'fullWidth'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const ownerState = _extends({}, props, {\n absolute,\n component,\n flexItem,\n light,\n orientation,\n role,\n textAlign,\n variant\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(DividerRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n role: role,\n ref: ref,\n ownerState: ownerState\n }, other, {\n children: children ? /*#__PURE__*/_jsx(DividerWrapper, {\n className: classes.wrapper,\n ownerState: ownerState,\n children: children\n }) : null\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Divider.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Absolutely position the element.\n * @default false\n */\n absolute: PropTypes.bool,\n\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n\n /**\n * If `true`, a vertical divider will have the correct height when used in flex container.\n * (By default, a vertical divider will have a calculated height of `0px` if it is the child of a flex container.)\n * @default false\n */\n flexItem: PropTypes.bool,\n\n /**\n * If `true`, the divider will have a lighter color.\n * @default false\n */\n light: PropTypes.bool,\n\n /**\n * The component orientation.\n * @default 'horizontal'\n */\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n\n /**\n * @ignore\n */\n role: PropTypes\n /* @typescript-to-proptypes-ignore */\n .string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n\n /**\n * The text alignment.\n * @default 'center'\n */\n textAlign: PropTypes.oneOf(['center', 'left', 'right']),\n\n /**\n * The variant to use.\n * @default 'fullWidth'\n */\n variant: PropTypes\n /* @typescript-to-proptypes-ignore */\n .oneOfType([PropTypes.oneOf(['fullWidth', 'inset', 'middle']), PropTypes.string])\n} : void 0;\nexport default Divider;","import { generateUtilityClass, generateUtilityClasses } from '@mui/base';\nexport function getListItemAvatarUtilityClass(slot) {\n return generateUtilityClass('MuiListItemAvatar', slot);\n}\nconst listItemAvatarClasses = generateUtilityClasses('MuiListItemAvatar', ['root', 'alignItemsFlexStart']);\nexport default listItemAvatarClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport ListContext from '../List/ListContext';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport { getListItemAvatarUtilityClass } from './listItemAvatarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\n\nconst useUtilityClasses = ownerState => {\n const {\n alignItems,\n classes\n } = ownerState;\n const slots = {\n root: ['root', alignItems === 'flex-start' && 'alignItemsFlexStart']\n };\n return composeClasses(slots, getListItemAvatarUtilityClass, classes);\n};\n\nconst ListItemAvatarRoot = styled('div', {\n name: 'MuiListItemAvatar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.alignItems === 'flex-start' && styles.alignItemsFlexStart];\n }\n})(({\n ownerState\n}) => _extends({\n minWidth: 56,\n flexShrink: 0\n}, ownerState.alignItems === 'flex-start' && {\n marginTop: 8\n}));\n/**\n * A simple wrapper to apply `List` styles to an `Avatar`.\n */\n\nconst ListItemAvatar = /*#__PURE__*/React.forwardRef(function ListItemAvatar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiListItemAvatar'\n });\n\n const {\n className\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n\n const context = React.useContext(ListContext);\n\n const ownerState = _extends({}, props, {\n alignItems: context.alignItems\n });\n\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ListItemAvatarRoot, _extends({\n className: clsx(classes.root, className),\n ownerState: ownerState,\n ref: ref\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? ListItemAvatar.propTypes\n/* remove-proptypes */\n= {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * The content of the component, normally an `Avatar`.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default ListItemAvatar;"],"names":["_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d","getContainerUtilityClass","slot","generateUtilityClass","generateUtilityClasses","_excluded","ContainerRoot","styled","name","overridesResolver","props","styles","ownerState","root","capitalize","String","maxWidth","fixed","disableGutters","theme","_extends","width","marginLeft","boxSizing","marginRight","display","paddingLeft","spacing","paddingRight","breakpoints","up","Object","keys","values","reduce","acc","breakpoint","value","unit","Math","max","xs","React","inProps","ref","useThemeProps","className","component","other","_objectWithoutPropertiesLoose","classes","slots","composeClasses","useUtilityClasses","_jsx","as","clsx","DividerRoot","absolute","variant","light","orientation","vertical","flexItem","children","withChildren","withChildrenVertical","textAlign","textAlignRight","textAlignLeft","margin","flexShrink","borderWidth","borderStyle","borderColor","palette","divider","borderBottomWidth","position","bottom","left","alpha","marginTop","marginBottom","height","borderRightWidth","alignSelf","whiteSpace","border","borderTop","top","content","transform","flexDirection","borderLeft","DividerWrapper","wrapper","wrapperVertical","paddingTop","paddingBottom","Divider","role","undefined","getDividerUtilityClass","getListItemAvatarUtilityClass","ListItemAvatarRoot","alignItems","alignItemsFlexStart","minWidth","context","ListContext"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7331.a4fdab74.chunk.js b/portal-ui/build/static/js/7331.dcfe1cee.chunk.js similarity index 96% rename from portal-ui/build/static/js/7331.a4fdab74.chunk.js rename to portal-ui/build/static/js/7331.dcfe1cee.chunk.js index 5cfc5edcb..f86a7c43a 100644 --- a/portal-ui/build/static/js/7331.a4fdab74.chunk.js +++ b/portal-ui/build/static/js/7331.dcfe1cee.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7331],{9505:function(e,n,t){var a=t(70885),o=t(72791),s=t(81207);n.Z=function(e,n){var t=(0,o.useState)(!1),i=(0,a.Z)(t,2),r=i[0],c=i[1];return[r,function(t,a,o){c(!0),s.Z.invoke(t,a,o).then((function(n){c(!1),e(n)})).catch((function(e){c(!1),n(e)}))}]}},23508:function(e,n,t){var a=t(1413),o=t(72791),s=t(5574),i=t(65661),r=t(39157),c=t(97123),l=t(36151),d=t(59860),u=t(13400),m=t(29823),f=t(11135),p=t(25787),Z=t(23814),h=t(80184);n.Z=(0,p.Z)((function(e){return(0,f.Z)((0,a.Z)({},Z.Qw))}))((function(e){var n=e.isOpen,t=void 0!==n&&n,f=e.onClose,p=e.onCancel,Z=e.onConfirm,x=e.classes,v=void 0===x?{}:x,j=e.title,g=void 0===j?"":j,C=e.isLoading,b=e.confirmationContent,N=e.cancelText,k=void 0===N?"Cancel":N,y=e.confirmText,P=void 0===y?"Confirm":y,E=e.confirmButtonProps,S=void 0===E?{}:E,T=e.cancelButtonProps,I=void 0===T?{}:T,w=e.titleIcon,B=void 0===w?null:w;return(0,h.jsxs)(s.Z,{open:t,onClose:function(e,n){"backdropClick"!==n&&f()},className:v.root,sx:{"& .MuiPaper-root":{padding:"1rem 2rem 2rem 1rem"}},children:[(0,h.jsxs)(i.Z,{className:v.title,children:[(0,h.jsxs)("div",{className:v.titleText,children:[B," ",g]}),(0,h.jsx)("div",{className:v.closeContainer,children:(0,h.jsx)(u.Z,{"aria-label":"close",className:v.closeButton,onClick:f,disableRipple:!0,size:"small",children:(0,h.jsx)(m.Z,{})})})]}),(0,h.jsx)(r.Z,{className:v.content,children:b}),(0,h.jsxs)(c.Z,{className:v.actions,children:[(0,h.jsx)(l.Z,(0,a.Z)((0,a.Z)({className:v.cancelButton,onClick:p||f,disabled:C,type:"button"},I),{},{variant:"outlined",color:"primary",id:"confirm-cancel",children:k})),(0,h.jsx)(d.Z,(0,a.Z)((0,a.Z)({className:v.confirmButton,type:"button",onClick:Z,loading:C,disabled:C,variant:"outlined",color:"secondary",loadingPosition:"start",startIcon:(0,h.jsx)(o.Fragment,{}),autoFocus:!0,id:"confirm-ok"},S),{},{children:P}))]})]})}))},27331:function(e,n,t){t.r(n),t.d(n,{default:function(){return P}});var a=t(70885),o=t(1413),s=t(72791),i=t(60364),r=t(11135),c=t(25787),l=t(23814),d=t(45248),u=t(42649),m=t(81207),f=t(92983),p=t(51691),Z=t(21435),h=t(61889),x=t(9505),v=t(23508),j=t(74833),g=t(80184),C=(0,i.$j)(null,{setErrorSnackMessage:u.Ih})((function(e){var n=e.deleteOpen,t=e.selectedPod,o=e.closeDeleteModalAndRefresh,i=e.setErrorSnackMessage,r=(0,s.useState)(""),c=(0,a.Z)(r,2),l=c[0],d=c[1],u=(0,x.Z)((function(){return o(!0)}),(function(e){return i(e)})),m=(0,a.Z)(u,2),f=m[0],C=m[1];return(0,g.jsx)(v.Z,{title:"Delete Pod",confirmText:"Delete",isOpen:n,titleIcon:(0,g.jsx)(j.Nv,{}),isLoading:f,onConfirm:function(){l===t.name?C("DELETE","/api/v1/namespaces/".concat(t.namespace,"/tenants/").concat(t.tenant,"/pods/").concat(t.name)):i({errorMessage:"Tenant name is incorrect",detailedError:""})},onClose:function(){return o(!1)},confirmButtonProps:{disabled:l!==t.name||f},confirmationContent:(0,g.jsxs)(p.Z,{children:["To continue please type ",(0,g.jsx)("b",{children:t.name})," in the box.",(0,g.jsx)(h.ZP,{item:!0,xs:12,children:(0,g.jsx)(Z.Z,{id:"retype-pod",name:"retype-pod",onChange:function(e){d(e.target.value)},label:"",value:l})})]})})})),b=t(27391),N=t(63466),k=t(74900),y=(0,i.$j)((function(e){return{loadingTenant:e.tenants.tenantDetails.loadingTenant}}),{setErrorSnackMessage:u.Ih}),P=(0,c.Z)((function(e){return(0,r.Z)((0,o.Z)((0,o.Z)((0,o.Z)({},l.oZ),l.VX),(0,l.Bz)(e.spacing(4))))}))(y((function(e){var n=e.classes,t=e.match,o=e.history,i=e.loadingTenant,r=(0,s.useState)([]),c=(0,a.Z)(r,2),l=c[0],p=c[1],Z=(0,s.useState)(!0),x=(0,a.Z)(Z,2),v=x[0],j=x[1],y=(0,s.useState)(!1),P=(0,a.Z)(y,2),E=P[0],S=P[1],T=(0,s.useState)(null),I=(0,a.Z)(T,2),w=I[0],B=I[1],M=(0,s.useState)(""),D=(0,a.Z)(M,2),F=D[0],K=D[1],L=t.params.tenantName,A=t.params.tenantNamespace,O=l.filter((function(e){return e.name.toLowerCase().includes(F.toLowerCase())})),R=[{type:"view",onClick:function(e){o.push("/namespaces/".concat(A,"/tenants/").concat(L,"/pods/").concat(e.name))}},{type:"delete",onClick:function(e){e.tenant=L,e.namespace=A,B(e),S(!0)}}];return(0,s.useEffect)((function(){i&&j(!0)}),[i]),(0,s.useEffect)((function(){v&&m.Z.invoke("GET","/api/v1/namespaces/".concat(A,"/tenants/").concat(L,"/pods")).then((function(e){for(var n=0;n void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\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 { DialogContentText } from \"@mui/material\";\nimport { IPodListElement } from \"../ListTenants/types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\n\ninterface IDeletePod {\n deleteOpen: boolean;\n selectedPod: IPodListElement;\n closeDeleteModalAndRefresh: (refreshList: boolean) => any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeletePod = ({\n deleteOpen,\n selectedPod,\n closeDeleteModalAndRefresh,\n setErrorSnackMessage,\n}: IDeletePod) => {\n const [retypePod, setRetypePod] = useState(\"\");\n\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n if (retypePod !== selectedPod.name) {\n setErrorSnackMessage({\n errorMessage: \"Tenant name is incorrect\",\n detailedError: \"\",\n });\n return;\n }\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/namespaces/${selectedPod.namespace}/tenants/${selectedPod.tenant}/pods/${selectedPod.name}`\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypePod !== selectedPod.name || deleteLoading,\n }}\n confirmationContent={\n \n To continue please type {selectedPod.name} in the box.\n \n ) => {\n setRetypePod(event.target.value);\n }}\n label=\"\"\n value={retypePod}\n />\n \n \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default connector(DeletePod);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n tableStyles,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { niceDays } from \"../../../../common/utils\";\nimport { IPodListElement } from \"../ListTenants/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport api from \"../../../../common/api\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport { AppState } from \"../../../../store\";\nimport { setTenantDetailsLoad } from \"../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport DeletePod from \"./DeletePod\";\nimport { Grid, InputAdornment, TextField } from \"@mui/material\";\nimport SearchIcon from \"../../../../icons/SearchIcon\";\n\ninterface IPodsSummary {\n classes: any;\n match: any;\n history: any;\n loadingTenant: boolean;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst PodsSummary = ({\n classes,\n match,\n history,\n loadingTenant,\n}: IPodsSummary) => {\n const [pods, setPods] = useState([]);\n const [loadingPods, setLoadingPods] = useState(true);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [selectedPod, setSelectedPod] = useState(null);\n const [filter, setFilter] = useState(\"\");\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n const podViewAction = (pod: IPodListElement) => {\n history.push(\n `/namespaces/${tenantNamespace}/tenants/${tenantName}/pods/${pod.name}`\n );\n return;\n };\n\n const closeDeleteModalAndRefresh = (reloadData: boolean) => {\n setDeleteOpen(false);\n setLoadingPods(true);\n };\n\n const confirmDeletePod = (pod: IPodListElement) => {\n pod.tenant = tenantName;\n pod.namespace = tenantNamespace;\n setSelectedPod(pod);\n setDeleteOpen(true);\n };\n\n const filteredRecords: IPodListElement[] = pods.filter((elementItem) =>\n elementItem.name.toLowerCase().includes(filter.toLowerCase())\n );\n\n const podTableActions = [\n { type: \"view\", onClick: podViewAction },\n { type: \"delete\", onClick: confirmDeletePod },\n ];\n\n useEffect(() => {\n if (loadingTenant) {\n setLoadingPods(true);\n }\n }, [loadingTenant]);\n\n useEffect(() => {\n if (loadingPods) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/pods`\n )\n .then((result: IPodListElement[]) => {\n for (let i = 0; i < result.length; i++) {\n let currentTime = (Date.now() / 1000) | 0;\n result[i].time = niceDays(\n (currentTime - parseInt(result[i].timeCreated)).toString()\n );\n }\n setPods(result);\n setLoadingPods(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage({\n errorMessage: \"Error loading pods\",\n detailedError: err.detailedError,\n });\n });\n }\n }, [loadingPods, tenantName, tenantNamespace]);\n\n return (\n \n {deleteOpen && (\n \n )}\n

    Pods

    \n \n \n \n \n ),\n }}\n onChange={(e) => {\n setFilter(e.target.value);\n }}\n variant=\"standard\"\n />\n \n \n {\n return input !== null ? input : 0;\n },\n },\n { label: \"Node\", elementKey: \"node\" },\n ]}\n isLoading={loadingPods}\n records={filteredRecords}\n itemActions={podTableActions}\n entityName=\"Pods\"\n idField=\"name\"\n />\n \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(PodsSummary));\n"],"names":["onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","withStyles","theme","createStyles","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","classes","title","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","className","root","sx","padding","titleText","closeContainer","closeButton","onClick","disableRipple","size","content","actions","cancelButton","disabled","type","variant","color","id","confirmButton","loading","loadingPosition","startIcon","autoFocus","connect","setErrorSnackMessage","deleteOpen","selectedPod","closeDeleteModalAndRefresh","retypePod","setRetypePod","useApi","deleteLoading","invokeDeleteApi","ConfirmDialog","name","namespace","tenant","errorMessage","detailedError","DialogContentText","Grid","item","xs","InputBoxWrapper","onChange","target","value","label","connector","state","loadingTenant","tenants","tenantDetails","tenantDetailsStyles","tableStyles","containerForHeader","spacing","match","history","pods","setPods","loadingPods","setLoadingPods","setDeleteOpen","setSelectedPod","filter","setFilter","tenantName","params","tenantNamespace","filteredRecords","elementItem","toLowerCase","includes","podTableActions","pod","push","useEffect","result","i","length","currentTime","Date","now","time","niceDays","parseInt","timeCreated","toString","Fragment","reloadData","sectionTitle","actionsTray","TextField","placeholder","searchField","InputProps","disableUnderline","startAdornment","InputAdornment","position","SearchIcon","e","tableBlock","TableWrapper","columns","elementKey","width","renderFunction","input","records","itemActions","entityName","idField"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/7331.dcfe1cee.chunk.js","mappings":"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","sources":["screens/Console/Common/Hooks/useApi.tsx","screens/Console/Common/ModalWrapper/ConfirmDialog.tsx","screens/Console/Tenants/TenantDetails/DeletePod.tsx","screens/Console/Tenants/TenantDetails/PodsSummary.tsx"],"sourcesContent":["import { useState } from \"react\";\nimport api from \"../../../../common/api\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\n\ntype NoReturnFunction = (param?: any) => void;\ntype ApiMethodToInvoke = (method: string, url: string, data?: any) => void;\ntype IsApiInProgress = boolean;\n\nconst useApi = (\n onSuccess: NoReturnFunction,\n onError: NoReturnFunction\n): [IsApiInProgress, ApiMethodToInvoke] => {\n const [isLoading, setIsLoading] = useState(false);\n\n const callApi = (method: string, url: string, data?: any) => {\n setIsLoading(true);\n api\n .invoke(method, url, data)\n .then((res: any) => {\n setIsLoading(false);\n onSuccess(res);\n })\n .catch((err: ErrorResponseHandler) => {\n setIsLoading(false);\n onError(err);\n });\n };\n\n return [isLoading, callApi];\n};\n\nexport default useApi;\n","import React from \"react\";\nimport {\n Button,\n ButtonProps,\n Dialog,\n DialogActions,\n DialogContent,\n DialogTitle,\n} from \"@mui/material\";\nimport { LoadingButton } from \"@mui/lab\";\nimport IconButton from \"@mui/material/IconButton\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { deleteDialogStyles } from \"../FormComponents/common/styleLibrary\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n });\n\ntype ConfirmDialogProps = {\n isOpen?: boolean;\n onClose: () => void;\n onCancel?: () => void;\n onConfirm: () => void;\n classes?: any;\n title: string;\n isLoading?: boolean;\n confirmationContent: React.ReactNode | React.ReactNode[];\n cancelText?: string;\n confirmText?: string;\n confirmButtonProps?: Partial;\n cancelButtonProps?: Partial;\n titleIcon?: React.ReactNode;\n};\n\nconst ConfirmDialog = ({\n isOpen = false,\n onClose,\n onCancel,\n onConfirm,\n classes = {},\n title = \"\",\n isLoading,\n confirmationContent,\n cancelText = \"Cancel\",\n confirmText = \"Confirm\",\n confirmButtonProps = {},\n cancelButtonProps = {},\n titleIcon = null,\n}: ConfirmDialogProps) => {\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n sx={{\n \"& .MuiPaper-root\": {\n padding: \"1rem 2rem 2rem 1rem\",\n },\n }}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {confirmationContent}\n \n \n \n {cancelText}\n \n\n }\n autoFocus\n id={\"confirm-ok\"}\n {...confirmButtonProps}\n >\n {confirmText}\n \n \n \n );\n};\n\nexport default withStyles(styles)(ConfirmDialog);\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 { DialogContentText } from \"@mui/material\";\nimport { IPodListElement } from \"../ListTenants/types\";\nimport InputBoxWrapper from \"../../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport Grid from \"@mui/material/Grid\";\nimport { connect } from \"react-redux\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport useApi from \"../../Common/Hooks/useApi\";\nimport ConfirmDialog from \"../../Common/ModalWrapper/ConfirmDialog\";\nimport { ConfirmDeleteIcon } from \"../../../../icons\";\n\ninterface IDeletePod {\n deleteOpen: boolean;\n selectedPod: IPodListElement;\n closeDeleteModalAndRefresh: (refreshList: boolean) => any;\n setErrorSnackMessage: typeof setErrorSnackMessage;\n}\n\nconst DeletePod = ({\n deleteOpen,\n selectedPod,\n closeDeleteModalAndRefresh,\n setErrorSnackMessage,\n}: IDeletePod) => {\n const [retypePod, setRetypePod] = useState(\"\");\n\n const onDelSuccess = () => closeDeleteModalAndRefresh(true);\n const onDelError = (err: ErrorResponseHandler) => setErrorSnackMessage(err);\n const onClose = () => closeDeleteModalAndRefresh(false);\n\n const [deleteLoading, invokeDeleteApi] = useApi(onDelSuccess, onDelError);\n\n const onConfirmDelete = () => {\n if (retypePod !== selectedPod.name) {\n setErrorSnackMessage({\n errorMessage: \"Tenant name is incorrect\",\n detailedError: \"\",\n });\n return;\n }\n invokeDeleteApi(\n \"DELETE\",\n `/api/v1/namespaces/${selectedPod.namespace}/tenants/${selectedPod.tenant}/pods/${selectedPod.name}`\n );\n };\n\n return (\n }\n isLoading={deleteLoading}\n onConfirm={onConfirmDelete}\n onClose={onClose}\n confirmButtonProps={{\n disabled: retypePod !== selectedPod.name || deleteLoading,\n }}\n confirmationContent={\n \n To continue please type {selectedPod.name} in the box.\n \n ) => {\n setRetypePod(event.target.value);\n }}\n label=\"\"\n value={retypePod}\n />\n \n \n }\n />\n );\n};\n\nconst connector = connect(null, {\n setErrorSnackMessage,\n});\n\nexport default connector(DeletePod);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n containerForHeader,\n tableStyles,\n tenantDetailsStyles,\n} from \"../../Common/FormComponents/common/styleLibrary\";\nimport { niceDays } from \"../../../../common/utils\";\nimport { IPodListElement } from \"../ListTenants/types\";\nimport { setErrorSnackMessage } from \"../../../../actions\";\nimport api from \"../../../../common/api\";\nimport TableWrapper from \"../../Common/TableWrapper/TableWrapper\";\nimport { AppState } from \"../../../../store\";\nimport { setTenantDetailsLoad } from \"../actions\";\nimport { ErrorResponseHandler } from \"../../../../common/types\";\nimport DeletePod from \"./DeletePod\";\nimport { Grid, InputAdornment, TextField } from \"@mui/material\";\nimport SearchIcon from \"../../../../icons/SearchIcon\";\n\ninterface IPodsSummary {\n classes: any;\n match: any;\n history: any;\n loadingTenant: boolean;\n setTenantDetailsLoad: typeof setTenantDetailsLoad;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...tenantDetailsStyles,\n ...tableStyles,\n ...containerForHeader(theme.spacing(4)),\n });\n\nconst PodsSummary = ({\n classes,\n match,\n history,\n loadingTenant,\n}: IPodsSummary) => {\n const [pods, setPods] = useState([]);\n const [loadingPods, setLoadingPods] = useState(true);\n const [deleteOpen, setDeleteOpen] = useState(false);\n const [selectedPod, setSelectedPod] = useState(null);\n const [filter, setFilter] = useState(\"\");\n const tenantName = match.params[\"tenantName\"];\n const tenantNamespace = match.params[\"tenantNamespace\"];\n\n const podViewAction = (pod: IPodListElement) => {\n history.push(\n `/namespaces/${tenantNamespace}/tenants/${tenantName}/pods/${pod.name}`\n );\n return;\n };\n\n const closeDeleteModalAndRefresh = (reloadData: boolean) => {\n setDeleteOpen(false);\n setLoadingPods(true);\n };\n\n const confirmDeletePod = (pod: IPodListElement) => {\n pod.tenant = tenantName;\n pod.namespace = tenantNamespace;\n setSelectedPod(pod);\n setDeleteOpen(true);\n };\n\n const filteredRecords: IPodListElement[] = pods.filter((elementItem) =>\n elementItem.name.toLowerCase().includes(filter.toLowerCase())\n );\n\n const podTableActions = [\n { type: \"view\", onClick: podViewAction },\n { type: \"delete\", onClick: confirmDeletePod },\n ];\n\n useEffect(() => {\n if (loadingTenant) {\n setLoadingPods(true);\n }\n }, [loadingTenant]);\n\n useEffect(() => {\n if (loadingPods) {\n api\n .invoke(\n \"GET\",\n `/api/v1/namespaces/${tenantNamespace}/tenants/${tenantName}/pods`\n )\n .then((result: IPodListElement[]) => {\n for (let i = 0; i < result.length; i++) {\n let currentTime = (Date.now() / 1000) | 0;\n result[i].time = niceDays(\n (currentTime - parseInt(result[i].timeCreated)).toString()\n );\n }\n setPods(result);\n setLoadingPods(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setErrorSnackMessage({\n errorMessage: \"Error loading pods\",\n detailedError: err.detailedError,\n });\n });\n }\n }, [loadingPods, tenantName, tenantNamespace]);\n\n return (\n \n {deleteOpen && (\n \n )}\n

    Pods

    \n \n \n \n \n ),\n }}\n onChange={(e) => {\n setFilter(e.target.value);\n }}\n variant=\"standard\"\n />\n \n \n {\n return input !== null ? input : 0;\n },\n },\n { label: \"Node\", elementKey: \"node\" },\n ]}\n isLoading={loadingPods}\n records={filteredRecords}\n itemActions={podTableActions}\n entityName=\"Pods\"\n idField=\"name\"\n />\n \n
    \n );\n};\n\nconst mapState = (state: AppState) => ({\n loadingTenant: state.tenants.tenantDetails.loadingTenant,\n});\n\nconst connector = connect(mapState, {\n setErrorSnackMessage,\n});\n\nexport default withStyles(styles)(connector(PodsSummary));\n"],"names":["onSuccess","onError","useState","isLoading","setIsLoading","method","url","data","api","then","res","catch","err","withStyles","theme","createStyles","deleteDialogStyles","isOpen","onClose","onCancel","onConfirm","classes","title","confirmationContent","cancelText","confirmText","confirmButtonProps","cancelButtonProps","titleIcon","open","event","reason","className","root","sx","padding","titleText","closeContainer","closeButton","onClick","disableRipple","size","content","actions","cancelButton","disabled","type","variant","color","id","confirmButton","loading","loadingPosition","startIcon","autoFocus","connect","setErrorSnackMessage","deleteOpen","selectedPod","closeDeleteModalAndRefresh","retypePod","setRetypePod","useApi","deleteLoading","invokeDeleteApi","ConfirmDialog","name","namespace","tenant","errorMessage","detailedError","DialogContentText","Grid","item","xs","InputBoxWrapper","onChange","target","value","label","connector","state","loadingTenant","tenants","tenantDetails","tenantDetailsStyles","tableStyles","containerForHeader","spacing","match","history","pods","setPods","loadingPods","setLoadingPods","setDeleteOpen","setSelectedPod","filter","setFilter","tenantName","params","tenantNamespace","filteredRecords","elementItem","toLowerCase","includes","podTableActions","pod","push","useEffect","result","i","length","currentTime","Date","now","time","niceDays","parseInt","timeCreated","toString","Fragment","reloadData","sectionTitle","actionsTray","TextField","placeholder","searchField","InputProps","disableUnderline","startAdornment","InputAdornment","position","SearchIcon","e","tableBlock","TableWrapper","columns","elementKey","width","renderFunction","input","records","itemActions","entityName","idField"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7413.e1d784e8.chunk.js b/portal-ui/build/static/js/7413.76bdfa63.chunk.js similarity index 98% rename from portal-ui/build/static/js/7413.e1d784e8.chunk.js rename to portal-ui/build/static/js/7413.76bdfa63.chunk.js index 1af37cd13..b0e4e55b3 100644 --- a/portal-ui/build/static/js/7413.e1d784e8.chunk.js +++ b/portal-ui/build/static/js/7413.76bdfa63.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7413],{64163:function(e,n,s){var t=s(1413),a=s(72791),l=s(61889),i=s(11135),o=s(25787),r=s(23814),c=s(80184);n.Z=(0,o.Z)((function(e){return(0,i.Z)((0,t.Z)({},r.xx))}))((function(e){var n=e.classes,s=e.label,t=void 0===s?"":s,i=e.content,o=e.multiLine,r=void 0!==o&&o;return(0,c.jsx)(a.Fragment,{children:(0,c.jsxs)(l.ZP,{className:n.prefinedContainer,children:[""!==t&&(0,c.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:t}),(0,c.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,c.jsx)(l.ZP,{item:!0,xs:12,className:r?n.innerContentMultiline:n.innerContent,children:i})})]})})}))},56028:function(e,n,s){var t=s(70885),a=s(1413),l=s(72791),i=s(60364),o=s(13400),r=s(55646),c=s(5574),u=s(65661),d=s(39157),m=s(11135),f=s(25787),Z=s(23814),x=s(42649),h=s(29823),p=s(28057),g=s(80184),j=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},Z.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},Z.sN))}))(j((function(e){var n=e.onClose,s=e.modalOpen,i=e.title,m=e.children,f=e.classes,Z=e.wideLimit,x=void 0===Z||Z,j=e.modalSnackMessage,v=e.noContentPadding,b=e.setModalSnackMessage,S=e.titleIcon,k=void 0===S?null:S,N=(0,l.useState)(!1),M=(0,t.Z)(N,2),C=M[0],E=M[1];(0,l.useEffect)((function(){b("")}),[b]),(0,l.useEffect)((function(){if(j){if(""===j.message)return void E(!1);"error"!==j.type&&E(!0)}}),[j]);var P=x?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},y="";return j&&(y=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(y=j.message)),(0,g.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:s,classes:f},P),{},{scroll:"paper",onClose:function(e,s){"backdropClick"!==s&&n()},className:f.root,children:[(0,g.jsxs)(u.Z,{className:f.title,children:[(0,g.jsxs)("div",{className:f.titleText,children:[k," ",i]}),(0,g.jsx)("div",{className:f.closeContainer,children:(0,g.jsx)(o.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,g.jsx)(h.Z,{})})})]}),(0,g.jsx)(p.Z,{isModal:!0}),(0,g.jsx)(r.Z,{open:C,className:f.snackBarModal,onClose:function(){E(!1),b("")},message:y,ContentProps:{className:"".concat(f.snackBar," ").concat(j&&"error"===j.type?f.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,g.jsx)(d.Z,{className:v?"":f.content,children:m})]}))})))},57413:function(e,n,s){s.r(n);var t=s(70885),a=s(1413),l=s(72791),i=s(60364),o=s(11135),r=s(25787),c=s(36151),u=s(40986),d=s(61889),m=s(23814),f=s(42649),Z=s(81207),x=s(40228),h=s(56028),p=s(21435),g=s(37516),j=s(64163),v=s(74833),b=s(80184),S={setModalErrorSnackMessage:f.zb},k=(0,i.$j)(null,S);n.default=(0,r.Z)((function(e){return(0,o.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonContainer:{textAlign:"right"},userSelector:{"& .MuiPaper-root":{padding:0,marginBottom:15}}},m.DF),m.bK),m.ID))}))(k((function(e){var n=e.open,s=e.selectedGroup,a=e.closeModalAndRefresh,i=e.classes,o=e.setModalErrorSnackMessage,r=(0,l.useState)(""),m=(0,t.Z)(r,2),f=m[0],S=m[1],k=(0,l.useState)(!1),N=(0,t.Z)(k,2),M=N[0],C=N[1],E=(0,l.useState)(!1),P=(0,t.Z)(E,2),y=P[0],B=P[1],F=(0,l.useState)([]),U=(0,t.Z)(F,2),w=U[0],T=U[1],R=(0,l.useState)(!1),z=(0,t.Z)(R,2),A=z[0],D=z[1],G=(0,l.useState)(!1),K=(0,t.Z)(G,2),I=K[0],L=K[1];(0,l.useEffect)((function(){null!==s?D(!0):(S(""),T([]))}),[s]),(0,l.useEffect)((function(){L(""!==f.trim())}),[f,w]),(0,l.useEffect)((function(){if(y){null!==s?Z.Z.invoke("PUT","/api/v1/group?name=".concat(encodeURI(f)),{group:f,members:w,status:M?"enabled":"disabled"}).then((function(e){B(!1),a()})).catch((function(e){B(!1),o(e)})):Z.Z.invoke("POST","/api/v1/groups",{group:f,members:w}).then((function(e){B(!1),a()})).catch((function(e){B(!1),o(e)}))}}),[y,f,w,M,s,a,o]),(0,l.useEffect)((function(){if(s&&A){Z.Z.invoke("GET","/api/v1/group?name=".concat(encodeURI(s))).then((function(e){C("enabled"===e.status),S(e.name),T(e.members)})).catch((function(e){o(e),D(!1)}))}}),[A,s,o]);return(0,b.jsxs)(h.Z,{modalOpen:n,onClose:a,title:null!==s?"Edit Group":"Create Group",titleIcon:(0,b.jsx)(v.ye,{}),children:[null!==s&&(0,b.jsx)("div",{className:i.floatingEnabled,children:(0,b.jsx)(g.Z,{indicatorLabels:["Enabled","Disabled"],checked:M,value:"group_enabled",id:"group-status",name:"group-status",onChange:function(e){C(e.target.checked)},switchOnly:!0})}),(0,b.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),B(!0)},children:(0,b.jsxs)(d.ZP,{container:!0,children:[(0,b.jsxs)(d.ZP,{item:!0,xs:12,className:i.modalFormScrollable,children:[null===s?(0,b.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,b.jsx)(p.Z,{id:"group-name",name:"group-name",label:"Group Name",autoFocus:!0,value:f,onChange:function(e){S(e.target.value)}})}):(0,b.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,b.jsx)(j.Z,{label:"Group Name",content:s})}),(0,b.jsx)(d.ZP,{item:!0,xs:12,className:i.userSelector,children:(0,b.jsx)(x.Z,{selectedUsers:w,setSelectedUsers:T,editMode:null!==s})})]}),(0,b.jsxs)(d.ZP,{item:!0,xs:12,className:i.buttonContainer,children:[(0,b.jsx)(c.Z,{type:"button",variant:"outlined",color:"primary",className:i.spacerRight,onClick:function(){null===s&&S(""),T([])},children:"Clear"}),(0,b.jsx)(c.Z,{type:"submit",variant:"contained",color:"primary",disabled:y||!I,children:"Save"})]}),y&&(0,b.jsx)(d.ZP,{item:!0,xs:12,children:(0,b.jsx)(u.Z,{})})]})})]})})))},40228:function(e,n,s){var t=s(42982),a=s(70885),l=s(1413),i=s(72791),o=s(60364),r=s(11135),c=s(25787),u=s(40986),d=s(26181),m=s.n(d),f=s(10703),Z=s(61889),x=s(21639),h=s(23814),p=s(42649),g=s(81207),j=s(92983),v=s(59114),b=s(80184),S={setModalErrorSnackMessage:p.zb},k=(0,o.$j)(null,S);n.Z=(0,c.Z)((function(e){return(0,r.Z)((0,l.Z)((0,l.Z)({paper:{display:"flex",overflow:"auto",flexDirection:"column",boxShadow:"none",border:0},tableBlock:(0,l.Z)({},h.VX.tableBlock),searchBox:{flex:1}},h.OR),{},{actionsTitle:{fontSize:14,alignSelf:"center",minWidth:160,marginRight:10},noFound:{textAlign:"center",padding:e.spacing(3),border:"1px solid #EAEAEA",fontSize:".9rem"}},h.jY))}))(k((function(e){var n=e.classes,s=e.selectedUsers,l=e.setSelectedUsers,o=e.editMode,r=void 0!==o&&o,c=e.setModalErrorSnackMessage,d=(0,i.useState)([]),h=(0,a.Z)(d,2),p=h[0],S=h[1],k=(0,i.useState)(!1),N=(0,a.Z)(k,2),M=N[0],C=N[1],E=(0,i.useState)(""),P=(0,a.Z)(E,2),y=P[0],B=P[1],F=(0,i.useCallback)((function(){g.Z.invoke("GET","/api/v1/users").then((function(e){var n=m()(e,"users",[]);n||(n=[]),S(n.sort(x.LQ)),C(!1)})).catch((function(e){c(e),C(!1)}))}),[c]);(0,i.useEffect)((function(){C(!0)}),[]),(0,i.useEffect)((function(){M&&F()}),[M,F]);var U=s||[],w=p.filter((function(e){return e.accessKey.includes(y)}));return(0,b.jsx)(i.Fragment,{children:(0,b.jsx)(Z.ZP,{item:!0,xs:12,children:(0,b.jsxs)(f.Z,{className:n.paper,children:[M&&(0,b.jsx)(u.Z,{}),null!==p&&p.length>0?(0,b.jsxs)(i.Fragment,{children:[(0,b.jsxs)(Z.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,b.jsx)("label",{className:n.actionsTitle,children:r?"Edit Members":"Assign Users"}),(0,b.jsx)("div",{className:n.searchBox,children:(0,b.jsx)(v.Z,{placeholder:"Filter Users",adornmentPosition:"end",onChange:B,value:y})})]}),(0,b.jsx)(Z.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,b.jsx)(j.Z,{columns:[{label:"Access Key",elementKey:"accessKey"}],onSelect:function(e){var n=e.target,s=n.value,a=n.checked,i=(0,t.Z)(U);return a?i.push(s):i=i.filter((function(e){return e!==s})),l(i),i},selectedItems:U,isLoading:M,records:w,entityName:"Users",idField:"accessKey",customPaperHeight:n.multiSelectTable})})]}):(0,b.jsx)("div",{className:n.noFound,children:"No Users to display"})]})})})})))},29823:function(e,n,s){var t=s(95318);n.Z=void 0;var a=t(s(45649)),l=s(80184),i=(0,a.default)((0,l.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");n.Z=i}}]); -//# sourceMappingURL=7413.e1d784e8.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7413],{64163:function(e,n,s){var t=s(1413),a=s(72791),l=s(61889),i=s(11135),o=s(25787),r=s(23814),c=s(80184);n.Z=(0,o.Z)((function(e){return(0,i.Z)((0,t.Z)({},r.xx))}))((function(e){var n=e.classes,s=e.label,t=void 0===s?"":s,i=e.content,o=e.multiLine,r=void 0!==o&&o;return(0,c.jsx)(a.Fragment,{children:(0,c.jsxs)(l.ZP,{className:n.prefinedContainer,children:[""!==t&&(0,c.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:t}),(0,c.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,c.jsx)(l.ZP,{item:!0,xs:12,className:r?n.innerContentMultiline:n.innerContent,children:i})})]})})}))},56028:function(e,n,s){var t=s(70885),a=s(1413),l=s(72791),i=s(60364),o=s(13400),r=s(55646),c=s(5574),u=s(65661),d=s(39157),m=s(11135),f=s(25787),Z=s(23814),x=s(42649),h=s(29823),p=s(28057),g=s(80184),j=(0,i.$j)((function(e){return{modalSnackMessage:e.system.modalSnackBar}}),{setModalSnackMessage:x.MK});n.Z=(0,f.Z)((function(e){return(0,m.Z)((0,a.Z)((0,a.Z)({},Z.Qw),{},{content:{padding:25,paddingBottom:0},customDialogSize:{width:"100%",maxWidth:765}},Z.sN))}))(j((function(e){var n=e.onClose,s=e.modalOpen,i=e.title,m=e.children,f=e.classes,Z=e.wideLimit,x=void 0===Z||Z,j=e.modalSnackMessage,v=e.noContentPadding,b=e.setModalSnackMessage,S=e.titleIcon,k=void 0===S?null:S,N=(0,l.useState)(!1),M=(0,t.Z)(N,2),C=M[0],E=M[1];(0,l.useEffect)((function(){b("")}),[b]),(0,l.useEffect)((function(){if(j){if(""===j.message)return void E(!1);"error"!==j.type&&E(!0)}}),[j]);var P=x?{classes:{paper:f.customDialogSize}}:{maxWidth:"lg",fullWidth:!0},y="";return j&&(y=j.detailedErrorMsg,(""===j.detailedErrorMsg||j.detailedErrorMsg.length<5)&&(y=j.message)),(0,g.jsxs)(c.Z,(0,a.Z)((0,a.Z)({open:s,classes:f},P),{},{scroll:"paper",onClose:function(e,s){"backdropClick"!==s&&n()},className:f.root,children:[(0,g.jsxs)(u.Z,{className:f.title,children:[(0,g.jsxs)("div",{className:f.titleText,children:[k," ",i]}),(0,g.jsx)("div",{className:f.closeContainer,children:(0,g.jsx)(o.Z,{"aria-label":"close",id:"close",className:f.closeButton,onClick:n,disableRipple:!0,size:"small",children:(0,g.jsx)(h.Z,{})})})]}),(0,g.jsx)(p.Z,{isModal:!0}),(0,g.jsx)(r.Z,{open:C,className:f.snackBarModal,onClose:function(){E(!1),b("")},message:y,ContentProps:{className:"".concat(f.snackBar," ").concat(j&&"error"===j.type?f.errorSnackBar:"")},autoHideDuration:j&&"error"===j.type?1e4:5e3}),(0,g.jsx)(d.Z,{className:v?"":f.content,children:m})]}))})))},57413:function(e,n,s){s.r(n);var t=s(70885),a=s(1413),l=s(72791),i=s(60364),o=s(11135),r=s(25787),c=s(36151),u=s(40986),d=s(61889),m=s(23814),f=s(42649),Z=s(81207),x=s(40228),h=s(56028),p=s(21435),g=s(37516),j=s(64163),v=s(13048),b=s(80184),S={setModalErrorSnackMessage:f.zb},k=(0,i.$j)(null,S);n.default=(0,r.Z)((function(e){return(0,o.Z)((0,a.Z)((0,a.Z)((0,a.Z)({buttonContainer:{textAlign:"right"},userSelector:{"& .MuiPaper-root":{padding:0,marginBottom:15}}},m.DF),m.bK),m.ID))}))(k((function(e){var n=e.open,s=e.selectedGroup,a=e.closeModalAndRefresh,i=e.classes,o=e.setModalErrorSnackMessage,r=(0,l.useState)(""),m=(0,t.Z)(r,2),f=m[0],S=m[1],k=(0,l.useState)(!1),N=(0,t.Z)(k,2),M=N[0],C=N[1],E=(0,l.useState)(!1),P=(0,t.Z)(E,2),y=P[0],B=P[1],F=(0,l.useState)([]),U=(0,t.Z)(F,2),w=U[0],T=U[1],R=(0,l.useState)(!1),z=(0,t.Z)(R,2),A=z[0],D=z[1],G=(0,l.useState)(!1),K=(0,t.Z)(G,2),I=K[0],L=K[1];(0,l.useEffect)((function(){null!==s?D(!0):(S(""),T([]))}),[s]),(0,l.useEffect)((function(){L(""!==f.trim())}),[f,w]),(0,l.useEffect)((function(){if(y){null!==s?Z.Z.invoke("PUT","/api/v1/group?name=".concat(encodeURI(f)),{group:f,members:w,status:M?"enabled":"disabled"}).then((function(e){B(!1),a()})).catch((function(e){B(!1),o(e)})):Z.Z.invoke("POST","/api/v1/groups",{group:f,members:w}).then((function(e){B(!1),a()})).catch((function(e){B(!1),o(e)}))}}),[y,f,w,M,s,a,o]),(0,l.useEffect)((function(){if(s&&A){Z.Z.invoke("GET","/api/v1/group?name=".concat(encodeURI(s))).then((function(e){C("enabled"===e.status),S(e.name),T(e.members)})).catch((function(e){o(e),D(!1)}))}}),[A,s,o]);return(0,b.jsxs)(h.Z,{modalOpen:n,onClose:a,title:null!==s?"Edit Group":"Create Group",titleIcon:(0,b.jsx)(v.ye,{}),children:[null!==s&&(0,b.jsx)("div",{className:i.floatingEnabled,children:(0,b.jsx)(g.Z,{indicatorLabels:["Enabled","Disabled"],checked:M,value:"group_enabled",id:"group-status",name:"group-status",onChange:function(e){C(e.target.checked)},switchOnly:!0})}),(0,b.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){e.preventDefault(),B(!0)},children:(0,b.jsxs)(d.ZP,{container:!0,children:[(0,b.jsxs)(d.ZP,{item:!0,xs:12,className:i.modalFormScrollable,children:[null===s?(0,b.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,b.jsx)(p.Z,{id:"group-name",name:"group-name",label:"Group Name",autoFocus:!0,value:f,onChange:function(e){S(e.target.value)}})}):(0,b.jsx)(d.ZP,{item:!0,xs:12,className:i.formFieldRow,children:(0,b.jsx)(j.Z,{label:"Group Name",content:s})}),(0,b.jsx)(d.ZP,{item:!0,xs:12,className:i.userSelector,children:(0,b.jsx)(x.Z,{selectedUsers:w,setSelectedUsers:T,editMode:null!==s})})]}),(0,b.jsxs)(d.ZP,{item:!0,xs:12,className:i.buttonContainer,children:[(0,b.jsx)(c.Z,{type:"button",variant:"outlined",color:"primary",className:i.spacerRight,onClick:function(){null===s&&S(""),T([])},children:"Clear"}),(0,b.jsx)(c.Z,{type:"submit",variant:"contained",color:"primary",disabled:y||!I,children:"Save"})]}),y&&(0,b.jsx)(d.ZP,{item:!0,xs:12,children:(0,b.jsx)(u.Z,{})})]})})]})})))},40228:function(e,n,s){var t=s(42982),a=s(70885),l=s(1413),i=s(72791),o=s(60364),r=s(11135),c=s(25787),u=s(40986),d=s(26181),m=s.n(d),f=s(10703),Z=s(61889),x=s(21639),h=s(23814),p=s(42649),g=s(81207),j=s(92983),v=s(59114),b=s(80184),S={setModalErrorSnackMessage:p.zb},k=(0,o.$j)(null,S);n.Z=(0,c.Z)((function(e){return(0,r.Z)((0,l.Z)((0,l.Z)({paper:{display:"flex",overflow:"auto",flexDirection:"column",boxShadow:"none",border:0},tableBlock:(0,l.Z)({},h.VX.tableBlock),searchBox:{flex:1}},h.OR),{},{actionsTitle:{fontSize:14,alignSelf:"center",minWidth:160,marginRight:10},noFound:{textAlign:"center",padding:e.spacing(3),border:"1px solid #EAEAEA",fontSize:".9rem"}},h.jY))}))(k((function(e){var n=e.classes,s=e.selectedUsers,l=e.setSelectedUsers,o=e.editMode,r=void 0!==o&&o,c=e.setModalErrorSnackMessage,d=(0,i.useState)([]),h=(0,a.Z)(d,2),p=h[0],S=h[1],k=(0,i.useState)(!1),N=(0,a.Z)(k,2),M=N[0],C=N[1],E=(0,i.useState)(""),P=(0,a.Z)(E,2),y=P[0],B=P[1],F=(0,i.useCallback)((function(){g.Z.invoke("GET","/api/v1/users").then((function(e){var n=m()(e,"users",[]);n||(n=[]),S(n.sort(x.LQ)),C(!1)})).catch((function(e){c(e),C(!1)}))}),[c]);(0,i.useEffect)((function(){C(!0)}),[]),(0,i.useEffect)((function(){M&&F()}),[M,F]);var U=s||[],w=p.filter((function(e){return e.accessKey.includes(y)}));return(0,b.jsx)(i.Fragment,{children:(0,b.jsx)(Z.ZP,{item:!0,xs:12,children:(0,b.jsxs)(f.Z,{className:n.paper,children:[M&&(0,b.jsx)(u.Z,{}),null!==p&&p.length>0?(0,b.jsxs)(i.Fragment,{children:[(0,b.jsxs)(Z.ZP,{item:!0,xs:12,className:n.actionsTray,children:[(0,b.jsx)("label",{className:n.actionsTitle,children:r?"Edit Members":"Assign Users"}),(0,b.jsx)("div",{className:n.searchBox,children:(0,b.jsx)(v.Z,{placeholder:"Filter Users",adornmentPosition:"end",onChange:B,value:y})})]}),(0,b.jsx)(Z.ZP,{item:!0,xs:12,className:n.tableBlock,children:(0,b.jsx)(j.Z,{columns:[{label:"Access Key",elementKey:"accessKey"}],onSelect:function(e){var n=e.target,s=n.value,a=n.checked,i=(0,t.Z)(U);return a?i.push(s):i=i.filter((function(e){return e!==s})),l(i),i},selectedItems:U,isLoading:M,records:w,entityName:"Users",idField:"accessKey",customPaperHeight:n.multiSelectTable})})]}):(0,b.jsx)("div",{className:n.noFound,children:"No Users to display"})]})})})})))},29823:function(e,n,s){var t=s(95318);n.Z=void 0;var a=t(s(45649)),l=s(80184),i=(0,a.default)((0,l.jsx)("path",{d:"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"}),"Close");n.Z=i}}]); +//# sourceMappingURL=7413.76bdfa63.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7413.e1d784e8.chunk.js.map b/portal-ui/build/static/js/7413.76bdfa63.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/7413.e1d784e8.chunk.js.map rename to portal-ui/build/static/js/7413.76bdfa63.chunk.js.map index ea754973b..191d20a05 100644 --- a/portal-ui/build/static/js/7413.e1d784e8.chunk.js.map +++ b/portal-ui/build/static/js/7413.76bdfa63.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/7413.e1d784e8.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Groups/AddGroup.tsx","screens/Console/Groups/UsersSelectors.tsx","../node_modules/@mui/icons-material/Close.js"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { predefinedList } from \"../common/styleLibrary\";\n\ninterface IPredefinedList {\n classes: any;\n label?: string;\n content: any;\n multiLine?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...predefinedList,\n });\n\nconst PredefinedList = ({\n classes,\n label = \"\",\n content,\n multiLine = false,\n}: IPredefinedList) => {\n return (\n \n \n {label !== \"\" && (\n \n {label}\n \n )}\n \n \n {content}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(PredefinedList);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport UsersSelectors from \"./UsersSelectors\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport PredefinedList from \"../Common/FormComponents/PredefinedList/PredefinedList\";\nimport { CreateGroupIcon } from \"../../../icons\";\n\ninterface IGroupProps {\n open: boolean;\n selectedGroup: any;\n closeModalAndRefresh: any;\n classes: any;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\ninterface MainGroupProps {\n members: string[];\n name: string;\n status: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n userSelector: {\n \"& .MuiPaper-root\": {\n padding: 0,\n marginBottom: 15,\n },\n },\n ...formFieldStyles,\n ...spacingUtils,\n ...modalStyleUtils,\n });\n\nconst AddGroup = ({\n open,\n selectedGroup,\n closeModalAndRefresh,\n classes,\n setModalErrorSnackMessage,\n}: IGroupProps) => {\n //Local States\n const [groupName, setGroupName] = useState(\"\");\n const [groupEnabled, setGroupEnabled] = useState(false);\n const [saving, isSaving] = useState(false);\n const [selectedUsers, setSelectedUsers] = useState([]);\n const [loadingGroup, isLoadingGroup] = useState(false);\n const [validGroup, setValidGroup] = useState(false);\n\n //Effects\n useEffect(() => {\n if (selectedGroup !== null) {\n isLoadingGroup(true);\n } else {\n setGroupName(\"\");\n setSelectedUsers([]);\n }\n }, [selectedGroup]);\n\n useEffect(() => {\n setValidGroup(groupName.trim() !== \"\");\n }, [groupName, selectedUsers]);\n\n useEffect(() => {\n if (saving) {\n const saveRecord = () => {\n if (selectedGroup !== null) {\n api\n .invoke(\"PUT\", `/api/v1/group?name=${encodeURI(groupName)}`, {\n group: groupName,\n members: selectedUsers,\n status: groupEnabled ? \"enabled\" : \"disabled\",\n })\n .then((res) => {\n isSaving(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n isSaving(false);\n setModalErrorSnackMessage(err);\n });\n } else {\n api\n .invoke(\"POST\", \"/api/v1/groups\", {\n group: groupName,\n members: selectedUsers,\n })\n .then((res) => {\n isSaving(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n isSaving(false);\n setModalErrorSnackMessage(err);\n });\n }\n };\n saveRecord();\n }\n }, [\n saving,\n groupName,\n selectedUsers,\n groupEnabled,\n selectedGroup,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n ]);\n\n useEffect(() => {\n if (selectedGroup && loadingGroup) {\n const fetchGroupInfo = () => {\n api\n .invoke(\"GET\", `/api/v1/group?name=${encodeURI(selectedGroup)}`)\n .then((res: MainGroupProps) => {\n setGroupEnabled(res.status === \"enabled\");\n setGroupName(res.name);\n setSelectedUsers(res.members);\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n isLoadingGroup(false);\n });\n };\n fetchGroupInfo();\n }\n }, [loadingGroup, selectedGroup, setModalErrorSnackMessage]);\n\n //Fetch Actions\n const setSaving = (event: React.FormEvent) => {\n event.preventDefault();\n\n isSaving(true);\n };\n\n const resetForm = () => {\n if (selectedGroup === null) {\n setGroupName(\"\");\n }\n\n setSelectedUsers([]);\n };\n\n return (\n }\n >\n {selectedGroup !== null && (\n
    \n {\n setGroupEnabled(e.target.checked);\n }}\n switchOnly\n />\n
    \n )}\n
    \n \n \n {selectedGroup === null ? (\n \n ) => {\n setGroupName(e.target.value);\n }}\n />\n \n ) : (\n \n \n \n )}\n \n \n \n \n \n \n Clear\n \n\n \n Save\n \n \n {saving && (\n \n \n \n )}\n \n
    \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(AddGroup));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport Paper from \"@mui/material/Paper\";\nimport Grid from \"@mui/material/Grid\";\nimport { UsersList } from \"../Users/types\";\nimport { usersSort } from \"../../../utils/sortFunctions\";\nimport {\n actionsTray,\n selectorsCommon,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport SearchBox from \"../Common/SearchBox\";\n\ninterface IGroupsProps {\n classes: any;\n selectedUsers: string[];\n setSelectedUsers: any;\n editMode?: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n paper: {\n display: \"flex\",\n overflow: \"auto\",\n flexDirection: \"column\",\n // paddingTop: 15,\n boxShadow: \"none\",\n border: 0,\n },\n\n tableBlock: {\n ...tableStyles.tableBlock,\n },\n searchBox: {\n flex: 1,\n },\n ...actionsTray,\n actionsTitle: {\n fontSize: 14,\n alignSelf: \"center\",\n minWidth: 160,\n marginRight: 10,\n },\n noFound: {\n textAlign: \"center\",\n padding: theme.spacing(3),\n border: \"1px solid #EAEAEA\",\n fontSize: \".9rem\",\n },\n ...selectorsCommon,\n });\n\nconst UsersSelectors = ({\n classes,\n selectedUsers,\n setSelectedUsers,\n editMode = false,\n setModalErrorSnackMessage,\n}: IGroupsProps) => {\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\n .invoke(\"GET\", `/api/v1/users`)\n .then((res: UsersList) => {\n let users = get(res, \"users\", []);\n\n if (!users) {\n users = [];\n }\n\n setRecords(users.sort(usersSort));\n isLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n isLoading(false);\n });\n }, [setModalErrorSnackMessage]);\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 \n {loading && }\n {records !== null && records.length > 0 ? (\n \n \n \n
    \n \n
    \n
    \n \n \n \n
    \n ) : (\n
    No Users to display
    \n )}\n
    \n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(UsersSelectors));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","predefinedList","classes","label","content","multiLine","Fragment","className","prefinedContainer","item","xs","predefinedTitle","innerContentMultiline","innerContent","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","children","wideLimit","noContentPadding","titleIcon","useState","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","root","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","setModalErrorSnackMessage","buttonContainer","textAlign","userSelector","marginBottom","formFieldStyles","spacingUtils","modalStyleUtils","selectedGroup","closeModalAndRefresh","groupName","setGroupName","groupEnabled","setGroupEnabled","saving","isSaving","selectedUsers","setSelectedUsers","loadingGroup","isLoadingGroup","validGroup","setValidGroup","trim","api","encodeURI","group","members","status","then","res","catch","err","name","floatingEnabled","indicatorLabels","checked","value","onChange","e","target","switchOnly","noValidate","autoComplete","onSubmit","preventDefault","container","modalFormScrollable","formFieldRow","autoFocus","editMode","variant","color","spacerRight","disabled","display","overflow","flexDirection","boxShadow","border","tableBlock","tableStyles","searchBox","flex","actionsTray","actionsTitle","fontSize","alignSelf","minWidth","marginRight","noFound","spacing","selectorsCommon","records","setRecords","loading","isLoading","filter","setFilter","fetchUsers","useCallback","users","get","sort","usersSort","selUsers","filteredRecords","elementItem","accessKey","includes","placeholder","adornmentPosition","columns","elementKey","onSelect","targetD","elements","push","element","selectedItems","entityName","idField","customPaperHeight","multiSelectTable","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file +{"version":3,"file":"static/js/7413.76bdfa63.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Common/ModalWrapper/ModalWrapper.tsx","screens/Console/Groups/AddGroup.tsx","screens/Console/Groups/UsersSelectors.tsx","../node_modules/@mui/icons-material/Close.js"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { predefinedList } from \"../common/styleLibrary\";\n\ninterface IPredefinedList {\n classes: any;\n label?: string;\n content: any;\n multiLine?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...predefinedList,\n });\n\nconst PredefinedList = ({\n classes,\n label = \"\",\n content,\n multiLine = false,\n}: IPredefinedList) => {\n return (\n \n \n {label !== \"\" && (\n \n {label}\n \n )}\n \n \n {content}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(PredefinedList);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport IconButton from \"@mui/material/IconButton\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { Dialog, DialogContent, DialogTitle } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n deleteDialogStyles,\n snackBarCommon,\n} from \"../FormComponents/common/styleLibrary\";\nimport { AppState } from \"../../../../store\";\nimport { snackBarMessage } from \"../../../../types\";\nimport { setModalSnackMessage } from \"../../../../actions\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport MainError from \"../MainError/MainError\";\n\ninterface IModalProps {\n classes: any;\n onClose: () => void;\n modalOpen: boolean;\n title: string | React.ReactNode;\n children: any;\n wideLimit?: boolean;\n modalSnackMessage?: snackBarMessage;\n noContentPadding?: boolean;\n setModalSnackMessage: typeof setModalSnackMessage;\n titleIcon?: React.ReactNode;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...deleteDialogStyles,\n content: {\n padding: 25,\n paddingBottom: 0,\n },\n customDialogSize: {\n width: \"100%\",\n maxWidth: 765,\n },\n ...snackBarCommon,\n });\n\nconst ModalWrapper = ({\n onClose,\n modalOpen,\n title,\n children,\n classes,\n wideLimit = true,\n modalSnackMessage,\n noContentPadding,\n setModalSnackMessage,\n titleIcon = null,\n}: IModalProps) => {\n const [openSnackbar, setOpenSnackbar] = useState(false);\n\n useEffect(() => {\n setModalSnackMessage(\"\");\n }, [setModalSnackMessage]);\n\n useEffect(() => {\n if (modalSnackMessage) {\n if (modalSnackMessage.message === \"\") {\n setOpenSnackbar(false);\n return;\n }\n // Open SnackBar\n if (modalSnackMessage.type !== \"error\") {\n setOpenSnackbar(true);\n }\n }\n }, [modalSnackMessage]);\n\n const closeSnackBar = () => {\n setOpenSnackbar(false);\n setModalSnackMessage(\"\");\n };\n\n const customSize = wideLimit\n ? {\n classes: {\n paper: classes.customDialogSize,\n },\n }\n : { maxWidth: \"lg\" as const, fullWidth: true };\n\n let message = \"\";\n\n if (modalSnackMessage) {\n message = modalSnackMessage.detailedErrorMsg;\n if (\n modalSnackMessage.detailedErrorMsg === \"\" ||\n modalSnackMessage.detailedErrorMsg.length < 5\n ) {\n message = modalSnackMessage.message;\n }\n }\n\n return (\n {\n if (reason !== \"backdropClick\") {\n onClose(); // close on Esc but not on click outside\n }\n }}\n className={classes.root}\n >\n \n
    \n {titleIcon} {title}\n
    \n
    \n \n \n \n
    \n
    \n\n \n {\n closeSnackBar();\n }}\n message={message}\n ContentProps={{\n className: `${classes.snackBar} ${\n modalSnackMessage && modalSnackMessage.type === \"error\"\n ? classes.errorSnackBar\n : \"\"\n }`,\n }}\n autoHideDuration={\n modalSnackMessage && modalSnackMessage.type === \"error\" ? 10000 : 5000\n }\n />\n \n {children}\n \n \n );\n};\n\nconst mapState = (state: AppState) => ({\n modalSnackMessage: state.system.modalSnackBar,\n});\n\nconst connector = connect(mapState, {\n setModalSnackMessage,\n});\n\nexport default withStyles(styles)(connector(ModalWrapper));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { Button, LinearProgress } from \"@mui/material\";\nimport Grid from \"@mui/material/Grid\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport UsersSelectors from \"./UsersSelectors\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport PredefinedList from \"../Common/FormComponents/PredefinedList/PredefinedList\";\nimport { CreateGroupIcon } from \"../../../icons\";\n\ninterface IGroupProps {\n open: boolean;\n selectedGroup: any;\n closeModalAndRefresh: any;\n classes: any;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\ninterface MainGroupProps {\n members: string[];\n name: string;\n status: string;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n buttonContainer: {\n textAlign: \"right\",\n },\n userSelector: {\n \"& .MuiPaper-root\": {\n padding: 0,\n marginBottom: 15,\n },\n },\n ...formFieldStyles,\n ...spacingUtils,\n ...modalStyleUtils,\n });\n\nconst AddGroup = ({\n open,\n selectedGroup,\n closeModalAndRefresh,\n classes,\n setModalErrorSnackMessage,\n}: IGroupProps) => {\n //Local States\n const [groupName, setGroupName] = useState(\"\");\n const [groupEnabled, setGroupEnabled] = useState(false);\n const [saving, isSaving] = useState(false);\n const [selectedUsers, setSelectedUsers] = useState([]);\n const [loadingGroup, isLoadingGroup] = useState(false);\n const [validGroup, setValidGroup] = useState(false);\n\n //Effects\n useEffect(() => {\n if (selectedGroup !== null) {\n isLoadingGroup(true);\n } else {\n setGroupName(\"\");\n setSelectedUsers([]);\n }\n }, [selectedGroup]);\n\n useEffect(() => {\n setValidGroup(groupName.trim() !== \"\");\n }, [groupName, selectedUsers]);\n\n useEffect(() => {\n if (saving) {\n const saveRecord = () => {\n if (selectedGroup !== null) {\n api\n .invoke(\"PUT\", `/api/v1/group?name=${encodeURI(groupName)}`, {\n group: groupName,\n members: selectedUsers,\n status: groupEnabled ? \"enabled\" : \"disabled\",\n })\n .then((res) => {\n isSaving(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n isSaving(false);\n setModalErrorSnackMessage(err);\n });\n } else {\n api\n .invoke(\"POST\", \"/api/v1/groups\", {\n group: groupName,\n members: selectedUsers,\n })\n .then((res) => {\n isSaving(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n isSaving(false);\n setModalErrorSnackMessage(err);\n });\n }\n };\n saveRecord();\n }\n }, [\n saving,\n groupName,\n selectedUsers,\n groupEnabled,\n selectedGroup,\n closeModalAndRefresh,\n setModalErrorSnackMessage,\n ]);\n\n useEffect(() => {\n if (selectedGroup && loadingGroup) {\n const fetchGroupInfo = () => {\n api\n .invoke(\"GET\", `/api/v1/group?name=${encodeURI(selectedGroup)}`)\n .then((res: MainGroupProps) => {\n setGroupEnabled(res.status === \"enabled\");\n setGroupName(res.name);\n setSelectedUsers(res.members);\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n isLoadingGroup(false);\n });\n };\n fetchGroupInfo();\n }\n }, [loadingGroup, selectedGroup, setModalErrorSnackMessage]);\n\n //Fetch Actions\n const setSaving = (event: React.FormEvent) => {\n event.preventDefault();\n\n isSaving(true);\n };\n\n const resetForm = () => {\n if (selectedGroup === null) {\n setGroupName(\"\");\n }\n\n setSelectedUsers([]);\n };\n\n return (\n }\n >\n {selectedGroup !== null && (\n
    \n {\n setGroupEnabled(e.target.checked);\n }}\n switchOnly\n />\n
    \n )}\n
    \n \n \n {selectedGroup === null ? (\n \n ) => {\n setGroupName(e.target.value);\n }}\n />\n \n ) : (\n \n \n \n )}\n \n \n \n \n \n \n Clear\n \n\n \n Save\n \n \n {saving && (\n \n \n \n )}\n \n
    \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(AddGroup));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { LinearProgress } from \"@mui/material\";\nimport get from \"lodash/get\";\nimport Paper from \"@mui/material/Paper\";\nimport Grid from \"@mui/material/Grid\";\nimport { UsersList } from \"../Users/types\";\nimport { usersSort } from \"../../../utils/sortFunctions\";\nimport {\n actionsTray,\n selectorsCommon,\n tableStyles,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport TableWrapper from \"../Common/TableWrapper/TableWrapper\";\nimport SearchBox from \"../Common/SearchBox\";\n\ninterface IGroupsProps {\n classes: any;\n selectedUsers: string[];\n setSelectedUsers: any;\n editMode?: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n paper: {\n display: \"flex\",\n overflow: \"auto\",\n flexDirection: \"column\",\n // paddingTop: 15,\n boxShadow: \"none\",\n border: 0,\n },\n\n tableBlock: {\n ...tableStyles.tableBlock,\n },\n searchBox: {\n flex: 1,\n },\n ...actionsTray,\n actionsTitle: {\n fontSize: 14,\n alignSelf: \"center\",\n minWidth: 160,\n marginRight: 10,\n },\n noFound: {\n textAlign: \"center\",\n padding: theme.spacing(3),\n border: \"1px solid #EAEAEA\",\n fontSize: \".9rem\",\n },\n ...selectorsCommon,\n });\n\nconst UsersSelectors = ({\n classes,\n selectedUsers,\n setSelectedUsers,\n editMode = false,\n setModalErrorSnackMessage,\n}: IGroupsProps) => {\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\n .invoke(\"GET\", `/api/v1/users`)\n .then((res: UsersList) => {\n let users = get(res, \"users\", []);\n\n if (!users) {\n users = [];\n }\n\n setRecords(users.sort(usersSort));\n isLoading(false);\n })\n .catch((err: ErrorResponseHandler) => {\n setModalErrorSnackMessage(err);\n isLoading(false);\n });\n }, [setModalErrorSnackMessage]);\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 \n {loading && }\n {records !== null && records.length > 0 ? (\n \n \n \n
    \n \n
    \n
    \n \n \n \n
    \n ) : (\n
    No Users to display
    \n )}\n
    \n
    \n
    \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(UsersSelectors));\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _jsxRuntime = require(\"react/jsx-runtime\");\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M19 6.41 17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');\n\nexports.default = _default;"],"names":["withStyles","theme","createStyles","predefinedList","classes","label","content","multiLine","Fragment","className","prefinedContainer","item","xs","predefinedTitle","innerContentMultiline","innerContent","connector","connect","state","modalSnackMessage","system","modalSnackBar","setModalSnackMessage","deleteDialogStyles","padding","paddingBottom","customDialogSize","width","maxWidth","snackBarCommon","onClose","modalOpen","title","children","wideLimit","noContentPadding","titleIcon","useState","openSnackbar","setOpenSnackbar","useEffect","message","type","customSize","paper","fullWidth","detailedErrorMsg","length","open","scroll","event","reason","root","titleText","closeContainer","id","closeButton","onClick","disableRipple","size","isModal","snackBarModal","ContentProps","snackBar","errorSnackBar","autoHideDuration","mapDispatchToProps","setModalErrorSnackMessage","buttonContainer","textAlign","userSelector","marginBottom","formFieldStyles","spacingUtils","modalStyleUtils","selectedGroup","closeModalAndRefresh","groupName","setGroupName","groupEnabled","setGroupEnabled","saving","isSaving","selectedUsers","setSelectedUsers","loadingGroup","isLoadingGroup","validGroup","setValidGroup","trim","api","encodeURI","group","members","status","then","res","catch","err","name","floatingEnabled","indicatorLabels","checked","value","onChange","e","target","switchOnly","noValidate","autoComplete","onSubmit","preventDefault","container","modalFormScrollable","formFieldRow","autoFocus","editMode","variant","color","spacerRight","disabled","display","overflow","flexDirection","boxShadow","border","tableBlock","tableStyles","searchBox","flex","actionsTray","actionsTitle","fontSize","alignSelf","minWidth","marginRight","noFound","spacing","selectorsCommon","records","setRecords","loading","isLoading","filter","setFilter","fetchUsers","useCallback","users","get","sort","usersSort","selUsers","filteredRecords","elementItem","accessKey","includes","placeholder","adornmentPosition","columns","elementKey","onSelect","targetD","elements","push","element","selectedItems","entityName","idField","customPaperHeight","multiSelectTable","_interopRequireDefault","require","exports","_createSvgIcon","_jsxRuntime","_default","default","jsx","d"],"sourceRoot":""} \ No newline at end of file diff --git a/portal-ui/build/static/js/7524.cf07d407.chunk.js b/portal-ui/build/static/js/7524.a91225d5.chunk.js similarity index 96% rename from portal-ui/build/static/js/7524.cf07d407.chunk.js rename to portal-ui/build/static/js/7524.a91225d5.chunk.js index f8bda8924..dd8c5e305 100644 --- a/portal-ui/build/static/js/7524.cf07d407.chunk.js +++ b/portal-ui/build/static/js/7524.a91225d5.chunk.js @@ -1,2 +1,2 @@ -"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7524],{64163:function(e,n,s){var t=s(1413),a=s(72791),l=s(61889),i=s(11135),r=s(25787),c=s(23814),o=s(80184);n.Z=(0,r.Z)((function(e){return(0,i.Z)((0,t.Z)({},c.xx))}))((function(e){var n=e.classes,s=e.label,t=void 0===s?"":s,i=e.content,r=e.multiLine,c=void 0!==r&&r;return(0,o.jsx)(a.Fragment,{children:(0,o.jsxs)(l.ZP,{className:n.prefinedContainer,children:[""!==t&&(0,o.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:t}),(0,o.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,o.jsx)(l.ZP,{item:!0,xs:12,className:c?n.innerContentMultiline:n.innerContent,children:i})})]})})}))},67524:function(e,n,s){s.r(n);var t=s(70885),a=s(1413),l=s(72791),i=s(60364),r=s(61889),c=s(18073),o=s(43896),u=s(40986),d=s(36151),x=s(11135),m=s(25787),h=s(23814),Z=s(42649),f=s(81207),p=s(83658),j=s(56028),b=s(21435),v=s(37516),g=s(64163),y=s(58400),P=s(19847),C=s(74833),S=s(80184),k={setModalErrorSnackMessage:Z.zb},N=(0,i.$j)(null,k);n.default=(0,m.Z)((function(e){return(0,x.Z)((0,a.Z)((0,a.Z)((0,a.Z)({tabsHeader:{marginBottom:"1rem"}},h.ID),h.DF),h.bK))}))(N((function(e){var n=e.classes,s=e.closeModalAndRefresh,a=e.selectedUser,i=e.open,x=e.setModalErrorSnackMessage,m=(0,l.useState)(!1),h=(0,t.Z)(m,2),Z=h[0],k=h[1],N=(0,l.useState)(""),w=(0,t.Z)(N,2),E=w[0],K=w[1],F=(0,l.useState)(""),M=(0,t.Z)(F,2),U=M[0],G=M[1],O=(0,l.useState)(!1),R=(0,t.Z)(O,2),T=R[0],D=R[1],I=(0,l.useState)([]),B=(0,t.Z)(I,2),L=B[0],_=B[1],A=(0,l.useState)([]),H=(0,t.Z)(A,2),z=H[0],V=H[1],$=(0,l.useState)([]),q=(0,t.Z)($,2),J=q[0],Q=q[1],W=(0,l.useState)(0),X=(0,t.Z)(W,2),Y=X[0],ee=X[1],ne=(0,l.useCallback)((function(){if(!a)return null;f.Z.invoke("GET","/api/v1/user?name=".concat(encodeURI(a.accessKey))).then((function(e){k(!1),K(e.accessKey),_(e.memberOf||[]),Q(e.memberOf||[]),D("enabled"===e.status)})).catch((function(e){k(!1),x(e)}))}),[a,x]);(0,l.useEffect)((function(){null===a?(K(""),G(""),_([])):ne()}),[a,ne]);var se=""!==E.trim()&&(""!==U.trim()&&null===a||null!==a);return(0,S.jsxs)(j.Z,{onClose:function(){s()},modalOpen:i,title:null!==a?"Edit User":"Create User",titleIcon:(0,S.jsx)(C.P3,{}),children:[null!==a&&(0,S.jsx)("div",{className:n.floatingEnabled,children:(0,S.jsx)(v.Z,{indicatorLabels:["Enabled","Disabled"],checked:T,value:"user_enabled",id:"user-status",name:"user-status",onChange:function(e){D(e.target.checked)},switchOnly:!0})}),(0,S.jsx)(l.Fragment,{children:(0,S.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){if(e.preventDefault(),U.length<8)return x({errorMessage:"Passwords must be at least 8 characters long",detailedError:""}),void k(!1);Z||(k(!0),null!==a?f.Z.invoke("PUT","/api/v1/user?name=".concat(encodeURI(a.accessKey)),{status:T?"enabled":"disabled",groups:L,policies:z}).then((function(e){k(!1),s()})).catch((function(e){k(!1),x(e)})):f.Z.invoke("POST","/api/v1/users",{accessKey:E,secretKey:U,groups:L,policies:z}).then((function(e){k(!1),s()})).catch((function(e){k(!1),x(e)})))}(e)},children:(0,S.jsxs)(r.ZP,{container:!0,children:[(0,S.jsxs)(r.ZP,{item:!0,xs:12,children:[(0,S.jsx)("div",{className:n.formFieldRow,children:(0,S.jsx)(b.Z,{id:"accesskey-input",name:"accesskey-input",label:"Access Key",value:E,autoFocus:!0,onChange:function(e){K(e.target.value)},disabled:null!==a})}),null!==a?(0,S.jsx)(g.Z,{label:"Current Groups",content:J.join(", ")}):(0,S.jsx)("div",{className:n.formFieldRow,children:(0,S.jsx)(b.Z,{id:"standard-multiline-static",name:"standard-multiline-static",label:"Secret Key",type:"password",value:U,onChange:function(e){G(e.target.value)},autoComplete:"current-password"})}),(0,S.jsx)(r.ZP,{item:!0,xs:12,className:n.tabsHeader,children:(0,S.jsxs)(c.Z,{value:Y,onChange:function(e,n){ee(n)},children:[(0,S.jsx)(o.Z,{label:"Policies"}),(0,S.jsx)(o.Z,{label:"Groups"})]})}),(0,S.jsx)(P.x,{value:Y,index:0,children:(0,S.jsx)(r.ZP,{item:!0,xs:12,children:(0,S.jsx)(y.Z,{selectedPolicy:z,setSelectedPolicy:V})})}),(0,S.jsx)(P.x,{value:Y,index:1,children:(0,S.jsx)(r.ZP,{item:!0,xs:12,children:(0,S.jsx)(p.Z,{selectedGroups:L,setSelectedGroups:function(e){_(e)}})})}),Z&&(0,S.jsx)(r.ZP,{item:!0,xs:12,children:(0,S.jsx)(u.Z,{})})]}),(0,S.jsxs)(r.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,S.jsx)(d.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){null===a?(K(""),G(""),_([])):_([])},children:"Clear"}),(0,S.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary",disabled:Z||!se,children:"Save"})]})]})})})]})})))},19847:function(e,n,s){s.d(n,{x:function(){return c}});var t=s(1413),a=s(45987),l=s(72791),i=s(80184),r=["children","value","index"],c=function(e){var n=e.children,s=e.value,c=e.index,o=(0,a.Z)(e,r);return(0,i.jsx)("div",(0,t.Z)((0,t.Z)({role:"tabpanel",hidden:s!==c,id:"simple-tabpanel-".concat(c),"aria-labelledby":"simple-tab-".concat(c),style:{marginTop:"5px"}},o),{},{children:s===c&&(0,i.jsx)(l.Fragment,{children:n})}))}}}]); -//# sourceMappingURL=7524.cf07d407.chunk.js.map \ No newline at end of file +"use strict";(self.webpackChunkportal_ui=self.webpackChunkportal_ui||[]).push([[7524],{64163:function(e,n,s){var t=s(1413),a=s(72791),l=s(61889),i=s(11135),r=s(25787),c=s(23814),o=s(80184);n.Z=(0,r.Z)((function(e){return(0,i.Z)((0,t.Z)({},c.xx))}))((function(e){var n=e.classes,s=e.label,t=void 0===s?"":s,i=e.content,r=e.multiLine,c=void 0!==r&&r;return(0,o.jsx)(a.Fragment,{children:(0,o.jsxs)(l.ZP,{className:n.prefinedContainer,children:[""!==t&&(0,o.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedTitle,children:t}),(0,o.jsx)(l.ZP,{item:!0,xs:12,className:n.predefinedList,children:(0,o.jsx)(l.ZP,{item:!0,xs:12,className:c?n.innerContentMultiline:n.innerContent,children:i})})]})})}))},67524:function(e,n,s){s.r(n);var t=s(70885),a=s(1413),l=s(72791),i=s(60364),r=s(61889),c=s(18073),o=s(43896),u=s(40986),d=s(36151),x=s(11135),m=s(25787),h=s(23814),Z=s(42649),f=s(81207),p=s(83658),j=s(56028),b=s(21435),v=s(37516),g=s(64163),y=s(58400),P=s(19847),C=s(13048),S=s(80184),k={setModalErrorSnackMessage:Z.zb},N=(0,i.$j)(null,k);n.default=(0,m.Z)((function(e){return(0,x.Z)((0,a.Z)((0,a.Z)((0,a.Z)({tabsHeader:{marginBottom:"1rem"}},h.ID),h.DF),h.bK))}))(N((function(e){var n=e.classes,s=e.closeModalAndRefresh,a=e.selectedUser,i=e.open,x=e.setModalErrorSnackMessage,m=(0,l.useState)(!1),h=(0,t.Z)(m,2),Z=h[0],k=h[1],N=(0,l.useState)(""),w=(0,t.Z)(N,2),E=w[0],K=w[1],F=(0,l.useState)(""),M=(0,t.Z)(F,2),U=M[0],G=M[1],O=(0,l.useState)(!1),R=(0,t.Z)(O,2),T=R[0],D=R[1],I=(0,l.useState)([]),B=(0,t.Z)(I,2),L=B[0],_=B[1],A=(0,l.useState)([]),H=(0,t.Z)(A,2),z=H[0],V=H[1],$=(0,l.useState)([]),q=(0,t.Z)($,2),J=q[0],Q=q[1],W=(0,l.useState)(0),X=(0,t.Z)(W,2),Y=X[0],ee=X[1],ne=(0,l.useCallback)((function(){if(!a)return null;f.Z.invoke("GET","/api/v1/user?name=".concat(encodeURI(a.accessKey))).then((function(e){k(!1),K(e.accessKey),_(e.memberOf||[]),Q(e.memberOf||[]),D("enabled"===e.status)})).catch((function(e){k(!1),x(e)}))}),[a,x]);(0,l.useEffect)((function(){null===a?(K(""),G(""),_([])):ne()}),[a,ne]);var se=""!==E.trim()&&(""!==U.trim()&&null===a||null!==a);return(0,S.jsxs)(j.Z,{onClose:function(){s()},modalOpen:i,title:null!==a?"Edit User":"Create User",titleIcon:(0,S.jsx)(C.P3,{}),children:[null!==a&&(0,S.jsx)("div",{className:n.floatingEnabled,children:(0,S.jsx)(v.Z,{indicatorLabels:["Enabled","Disabled"],checked:T,value:"user_enabled",id:"user-status",name:"user-status",onChange:function(e){D(e.target.checked)},switchOnly:!0})}),(0,S.jsx)(l.Fragment,{children:(0,S.jsx)("form",{noValidate:!0,autoComplete:"off",onSubmit:function(e){!function(e){if(e.preventDefault(),U.length<8)return x({errorMessage:"Passwords must be at least 8 characters long",detailedError:""}),void k(!1);Z||(k(!0),null!==a?f.Z.invoke("PUT","/api/v1/user?name=".concat(encodeURI(a.accessKey)),{status:T?"enabled":"disabled",groups:L,policies:z}).then((function(e){k(!1),s()})).catch((function(e){k(!1),x(e)})):f.Z.invoke("POST","/api/v1/users",{accessKey:E,secretKey:U,groups:L,policies:z}).then((function(e){k(!1),s()})).catch((function(e){k(!1),x(e)})))}(e)},children:(0,S.jsxs)(r.ZP,{container:!0,children:[(0,S.jsxs)(r.ZP,{item:!0,xs:12,children:[(0,S.jsx)("div",{className:n.formFieldRow,children:(0,S.jsx)(b.Z,{id:"accesskey-input",name:"accesskey-input",label:"Access Key",value:E,autoFocus:!0,onChange:function(e){K(e.target.value)},disabled:null!==a})}),null!==a?(0,S.jsx)(g.Z,{label:"Current Groups",content:J.join(", ")}):(0,S.jsx)("div",{className:n.formFieldRow,children:(0,S.jsx)(b.Z,{id:"standard-multiline-static",name:"standard-multiline-static",label:"Secret Key",type:"password",value:U,onChange:function(e){G(e.target.value)},autoComplete:"current-password"})}),(0,S.jsx)(r.ZP,{item:!0,xs:12,className:n.tabsHeader,children:(0,S.jsxs)(c.Z,{value:Y,onChange:function(e,n){ee(n)},children:[(0,S.jsx)(o.Z,{label:"Policies"}),(0,S.jsx)(o.Z,{label:"Groups"})]})}),(0,S.jsx)(P.x,{value:Y,index:0,children:(0,S.jsx)(r.ZP,{item:!0,xs:12,children:(0,S.jsx)(y.Z,{selectedPolicy:z,setSelectedPolicy:V})})}),(0,S.jsx)(P.x,{value:Y,index:1,children:(0,S.jsx)(r.ZP,{item:!0,xs:12,children:(0,S.jsx)(p.Z,{selectedGroups:L,setSelectedGroups:function(e){_(e)}})})}),Z&&(0,S.jsx)(r.ZP,{item:!0,xs:12,children:(0,S.jsx)(u.Z,{})})]}),(0,S.jsxs)(r.ZP,{item:!0,xs:12,className:n.modalButtonBar,children:[(0,S.jsx)(d.Z,{type:"button",variant:"outlined",color:"primary",onClick:function(){null===a?(K(""),G(""),_([])):_([])},children:"Clear"}),(0,S.jsx)(d.Z,{type:"submit",variant:"contained",color:"primary",disabled:Z||!se,children:"Save"})]})]})})})]})})))},19847:function(e,n,s){s.d(n,{x:function(){return c}});var t=s(1413),a=s(45987),l=s(72791),i=s(80184),r=["children","value","index"],c=function(e){var n=e.children,s=e.value,c=e.index,o=(0,a.Z)(e,r);return(0,i.jsx)("div",(0,t.Z)((0,t.Z)({role:"tabpanel",hidden:s!==c,id:"simple-tabpanel-".concat(c),"aria-labelledby":"simple-tab-".concat(c),style:{marginTop:"5px"}},o),{},{children:s===c&&(0,i.jsx)(l.Fragment,{children:n})}))}}}]); +//# sourceMappingURL=7524.a91225d5.chunk.js.map \ No newline at end of file diff --git a/portal-ui/build/static/js/7524.cf07d407.chunk.js.map b/portal-ui/build/static/js/7524.a91225d5.chunk.js.map similarity index 99% rename from portal-ui/build/static/js/7524.cf07d407.chunk.js.map rename to portal-ui/build/static/js/7524.a91225d5.chunk.js.map index f0f97e7b6..dd347b7d2 100644 --- a/portal-ui/build/static/js/7524.cf07d407.chunk.js.map +++ b/portal-ui/build/static/js/7524.a91225d5.chunk.js.map @@ -1 +1 @@ -{"version":3,"file":"static/js/7524.cf07d407.chunk.js","mappings":"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","sources":["screens/Console/Common/FormComponents/PredefinedList/PredefinedList.tsx","screens/Console/Users/AddUser.tsx","screens/shared/tabs.tsx"],"sourcesContent":["import React, { Fragment } from \"react\";\nimport Grid from \"@mui/material/Grid\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport { predefinedList } from \"../common/styleLibrary\";\n\ninterface IPredefinedList {\n classes: any;\n label?: string;\n content: any;\n multiLine?: boolean;\n}\n\nconst styles = (theme: Theme) =>\n createStyles({\n ...predefinedList,\n });\n\nconst PredefinedList = ({\n classes,\n label = \"\",\n content,\n multiLine = false,\n}: IPredefinedList) => {\n return (\n \n \n {label !== \"\" && (\n \n {label}\n \n )}\n \n \n {content}\n \n \n \n \n );\n};\n\nexport default withStyles(styles)(PredefinedList);\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { useCallback, useEffect, useState } from \"react\";\nimport { connect } from \"react-redux\";\nimport Grid from \"@mui/material/Grid\";\nimport { Button, LinearProgress, Tab, Tabs } from \"@mui/material\";\nimport { Theme } from \"@mui/material/styles\";\nimport createStyles from \"@mui/styles/createStyles\";\nimport withStyles from \"@mui/styles/withStyles\";\nimport {\n formFieldStyles,\n modalStyleUtils,\n spacingUtils,\n} from \"../Common/FormComponents/common/styleLibrary\";\nimport { User } from \"./types\";\nimport { setModalErrorSnackMessage } from \"../../../actions\";\nimport { ErrorResponseHandler } from \"../../../common/types\";\nimport api from \"../../../common/api\";\nimport GroupsSelectors from \"./GroupsSelectors\";\nimport ModalWrapper from \"../Common/ModalWrapper/ModalWrapper\";\nimport InputBoxWrapper from \"../Common/FormComponents/InputBoxWrapper/InputBoxWrapper\";\nimport FormSwitchWrapper from \"../Common/FormComponents/FormSwitchWrapper/FormSwitchWrapper\";\nimport PredefinedList from \"../Common/FormComponents/PredefinedList/PredefinedList\";\nimport PolicySelectors from \"../Policies/PolicySelectors\";\nimport { TabPanel } from \"../../shared/tabs\";\nimport { CreateUserIcon } from \"../../../icons\";\n\nconst styles = (theme: Theme) =>\n createStyles({\n tabsHeader: {\n marginBottom: \"1rem\",\n },\n ...modalStyleUtils,\n ...formFieldStyles,\n ...spacingUtils,\n });\n\ninterface IAddUserContentProps {\n classes: any;\n closeModalAndRefresh: () => void;\n selectedUser: User | null;\n open: boolean;\n setModalErrorSnackMessage: typeof setModalErrorSnackMessage;\n}\n\nconst AddUser = ({\n classes,\n closeModalAndRefresh,\n selectedUser,\n open,\n setModalErrorSnackMessage,\n}: IAddUserContentProps) => {\n const [addLoading, setAddLoading] = useState(false);\n const [accessKey, setAccessKey] = useState(\"\");\n const [secretKey, setSecretKey] = useState(\"\");\n const [enabled, setEnabled] = useState(false);\n const [selectedGroups, setSelectedGroups] = useState([]);\n const [selectedPolicies, setSelectedPolicies] = useState([]);\n const [currentGroups, setCurrentGroups] = useState([]);\n const [currenTab, setCurrenTab] = useState(0);\n\n const getUserInformation = useCallback(() => {\n if (!selectedUser) {\n return null;\n }\n\n api\n .invoke(\"GET\", `/api/v1/user?name=${encodeURI(selectedUser.accessKey)}`)\n .then((res) => {\n setAddLoading(false);\n setAccessKey(res.accessKey);\n setSelectedGroups(res.memberOf || []);\n setCurrentGroups(res.memberOf || []);\n setEnabled(res.status === \"enabled\");\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n }, [selectedUser, setModalErrorSnackMessage]);\n\n useEffect(() => {\n if (selectedUser === null) {\n setAccessKey(\"\");\n setSecretKey(\"\");\n setSelectedGroups([]);\n } else {\n getUserInformation();\n }\n }, [selectedUser, getUserInformation]);\n\n const saveRecord = (event: React.FormEvent) => {\n event.preventDefault();\n\n if (secretKey.length < 8) {\n setModalErrorSnackMessage({\n errorMessage: \"Passwords must be at least 8 characters long\",\n detailedError: \"\",\n });\n setAddLoading(false);\n return;\n }\n\n if (addLoading) {\n return;\n }\n setAddLoading(true);\n if (selectedUser !== null) {\n api\n .invoke(\n \"PUT\",\n `/api/v1/user?name=${encodeURI(selectedUser.accessKey)}`,\n {\n status: enabled ? \"enabled\" : \"disabled\",\n groups: selectedGroups,\n policies: selectedPolicies,\n }\n )\n .then((res) => {\n setAddLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n } else {\n api\n .invoke(\"POST\", \"/api/v1/users\", {\n accessKey,\n secretKey,\n groups: selectedGroups,\n policies: selectedPolicies,\n })\n .then((res) => {\n setAddLoading(false);\n closeModalAndRefresh();\n })\n .catch((err: ErrorResponseHandler) => {\n setAddLoading(false);\n setModalErrorSnackMessage(err);\n });\n }\n };\n\n const resetForm = () => {\n if (selectedUser !== null) {\n setSelectedGroups([]);\n return;\n }\n setAccessKey(\"\");\n setSecretKey(\"\");\n setSelectedGroups([]);\n };\n\n const sendEnabled =\n accessKey.trim() !== \"\" &&\n ((secretKey.trim() !== \"\" && selectedUser === null) ||\n selectedUser !== null);\n return (\n {\n closeModalAndRefresh();\n }}\n modalOpen={open}\n title={selectedUser !== null ? \"Edit User\" : \"Create User\"}\n titleIcon={}\n >\n {selectedUser !== null && (\n
    \n {\n setEnabled(e.target.checked);\n }}\n switchOnly\n />\n
    \n )}\n\n \n ) => {\n saveRecord(e);\n }}\n >\n \n \n
    \n ) => {\n setAccessKey(e.target.value);\n }}\n disabled={selectedUser !== null}\n />\n
    \n\n {selectedUser !== null ? (\n \n ) : (\n
    \n ) => {\n setSecretKey(e.target.value);\n }}\n autoComplete=\"current-password\"\n />\n
    \n )}\n \n {\n setCurrenTab(nv);\n }}\n >\n \n \n \n \n \n \n \n \n \n \n \n {\n setSelectedGroups(elements);\n }}\n />\n \n \n\n {addLoading && (\n \n \n \n )}\n
    \n \n \n Clear\n \n\n \n Save\n \n \n
    \n \n
    \n \n );\n};\n\nconst mapDispatchToProps = {\n setModalErrorSnackMessage,\n};\n\nconst connector = connect(null, mapDispatchToProps);\n\nexport default withStyles(styles)(connector(AddUser));\n","// This file is part of MinIO Console Server\n// Copyright (c) 2021 MinIO, Inc.\n//\n// This program is free software: you can redistribute it and/or modify\n// it under the terms of the GNU Affero General Public License as published by\n// the Free Software Foundation, either version 3 of the License, or\n// (at your option) any later version.\n//\n// This program is distributed in the hope that it will be useful,\n// but WITHOUT ANY WARRANTY; without even the implied warranty of\n// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n// GNU Affero General Public License for more details.\n//\n// You should have received a copy of the GNU Affero General Public License\n// along with this program. If not, see .\n\nimport React, { Fragment } from \"react\";\n\ninterface TabPanelProps {\n children?: React.ReactNode;\n index: any;\n value: any;\n}\n\nexport const TabPanel = (props: TabPanelProps) => {\n const { children, value, index, ...other } = props;\n\n return (\n